自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

測(cè)試工程師應(yīng)知應(yīng)會(huì)之行為驅(qū)動(dòng)測(cè)試BDD

開(kāi)發(fā) 項(xiàng)目管理
測(cè)試用例執(zhí)行完畢之后會(huì)給出測(cè)試報(bào)告,JBehave提供了多種測(cè)試報(bào)告可供使用,包括控制臺(tái)、文本文件、XML文件、HTML頁(yè)面等。

很多工程師都了解測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(Test Driven Development,TDD),但是了解行為驅(qū)動(dòng)開(kāi)發(fā)的人卻不是很多。

行為驅(qū)動(dòng)開(kāi)發(fā)(Behavior Driven Development,BDD),是測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的延伸,旨在使用簡(jiǎn)單的,特定于領(lǐng)域的腳本語(yǔ)言(軟件外包行業(yè)的最大問(wèn)題?從領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)說(shuō)起),通過(guò)結(jié)構(gòu)化的方法,將自然語(yǔ)言文本轉(zhuǎn)換為可執(zhí)行的測(cè)試用例。從而在技術(shù)與實(shí)際的業(yè)務(wù)需求者之間,建立起一條易于理解的道路。這樣,不理解程序員們正在做什么的業(yè)務(wù)方,就可以更容易的理解他們的工作。

在行為驅(qū)動(dòng)開(kāi)發(fā)中,最關(guān)注的核心是業(yè)務(wù)的設(shè)計(jì)。而測(cè)試驅(qū)動(dòng)開(kāi)發(fā),則更關(guān)心是的使用代碼來(lái)描述測(cè)試用例。因此,在行為驅(qū)動(dòng)開(kāi)發(fā)相關(guān)的框架中,采用了多種技術(shù)手段,構(gòu)造自然語(yǔ)言與代碼之間的連接關(guān)系,使得關(guān)注于業(yè)務(wù)邏輯的使用者,能夠使用更容易理解的語(yǔ)言,向測(cè)試代碼下達(dá)他們的指令。

下面我們通過(guò)當(dāng)前最為流行的BDD 框架JBehave來(lái)介紹一下BDD對(duì)于這種設(shè)計(jì)的實(shí)現(xiàn)。

在JBehave中,完全一個(gè)測(cè)試用例需要5個(gè)步驟。

一、編寫(xiě)測(cè)試用例

在JBehave中,一個(gè)測(cè)試用例由一系列場(chǎng)景(Scenario)組成。而一個(gè)場(chǎng)景的編寫(xiě),需要符合JBehave定義的語(yǔ)法格式。主要格式內(nèi)容如下:

Story := Description? Meta? Narrative? GivenStories? Lifecycle? Scenario+ ;

Narrative:= "Narrative:" ( InOrderTo AsA IWantTo | AsA IWantTo SoThat ) ;

InOrderTo:= "In order to" NarrativeElementContent ;

IWantTo:= "I want to" NarrativeElementContent ;

SoThat:= "So that" NarrativeElementContent ;

NarrativeStartingWord := ("In order to" | "As a" | "I want to" | "So that") ;

GivenStories:= "GivenStories:" (StoryPath ','?)+ ;

Lifecycle:= "Lifecycle:" LifecycleBefore? LifecycleAfter? Examples?

LifecycleBefore:= "Before:" (Scope? Step+)+

LifecycleAfter:= "After:" (Scope? Outcome? MetaFilter? Step+)+

Scope:= "Scope:" "STEP" | "SCENARIO" | "STORY"

Outcome:= "Outcome:" "ANY" | "SUCCESS" | "FAILURE" ;

在語(yǔ)法格式中,規(guī)定了一個(gè)測(cè)試用例的寫(xiě)法,以及其中特定的關(guān)鍵字,而這種寫(xiě)法力圖貼近于自然語(yǔ)言,并且能夠被框架所解析。

圖片

二、將測(cè)試用例映射到Java

編寫(xiě)好測(cè)試用例之后,JBehave會(huì)將測(cè)試用例映射成Java。這種映射主要通過(guò)RegexStoryParser(正則表達(dá)式)或者是GherkinStoryParser這兩種解析器來(lái)實(shí)現(xiàn)。

通過(guò)類似于

@Given("a stock of symbol $symbol and a threshold of $threshold")

public void stock(String symbol, double threshold) {

stock = new Stock(symbol, threshold);

}

的方式,可以將測(cè)試用例中的輸入映射進(jìn)Java函數(shù)的輸入?yún)?shù)中,盡管保持入?yún)⒌拿趾虭Given語(yǔ)句中的參數(shù)名字一致是一種好的習(xí)慣,但是JBehave是按照參數(shù)的順序來(lái)賦值的,并不要求名稱完全一致。

圖片

三、配置測(cè)試用例

JBehave的核心是配置的嵌入類,這是提供給IDE的可執(zhí)行入口,通過(guò)執(zhí)行該嵌入類,系統(tǒng)可以調(diào)用框架的相關(guān)方法,從而能夠完成JBehave提供的相關(guān)功能。

JBehave提供的可嵌入類主要有ConfigurableEmbedder和InjectableEmbedder兩種。

圖片

 

四、運(yùn)行測(cè)試用例

配置好嵌入類之后,就可以通過(guò)JUnit在IDE或者是命令行中運(yùn)行測(cè)試用例了。

圖片

五、查看報(bào)告

測(cè)試用例執(zhí)行完畢之后會(huì)給出測(cè)試報(bào)告,JBehave提供了多種測(cè)試報(bào)告可供使用,包括控制臺(tái)、文本文件、XML文件、HTML頁(yè)面等。


圖片


責(zé)任編輯:武曉燕 來(lái)源: 信息時(shí)代風(fēng)之影
相關(guān)推薦

2022-11-04 07:12:24

JavaScript基準(zhǔn)測(cè)試

2011-05-19 15:27:39

測(cè)試工程師

2009-02-23 09:41:29

面試軟件測(cè)試工程師

2015-02-13 19:52:47

測(cè)試工程師APPTestin云測(cè)

2012-10-10 09:42:58

谷歌測(cè)試測(cè)試工程師

2021-05-22 10:01:45

PythonPython列表Python程序開(kāi)發(fā)

2018-04-05 23:13:21

Fiddler調(diào)試工具測(cè)試

2019-11-08 11:08:29

測(cè)試工程師AI人工智能

2025-03-14 10:00:00

黑客AI網(wǎng)絡(luò)安全

2018-12-29 15:10:22

工程師爬蟲(chóng)Python

2012-03-02 08:56:25

軟件測(cè)試

2016-03-25 13:43:19

飛象網(wǎng)

2012-09-07 10:20:53

2009-03-05 09:39:07

工程師軟件測(cè)試加班經(jīng)歷

2009-06-16 11:36:34

軟件測(cè)試工程師獵頭職業(yè)

2011-04-18 16:41:01

測(cè)試工程師軟件測(cè)試

2009-02-24 10:31:33

軟件測(cè)試工程師角色定位

2022-07-20 00:03:10

Python列表字典推導(dǎo)

2012-08-01 09:29:03

測(cè)試測(cè)試工程師

2019-09-11 15:29:08

工程師瀏覽器軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)