国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

回歸測試用例設(shè)計(jì)策略

2017-06-05 09:07:29王榮麗侯秀萍
關(guān)鍵詞:購物車測試用例用例

王榮麗, 侯秀萍

(長春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 吉林 長春 130012)

?

回歸測試用例設(shè)計(jì)策略

王榮麗, 侯秀萍*

(長春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 吉林 長春 130012)

通過DAG圖將部分測試用例重新整合,形成回歸測試的測試用例,對修改的功能及其相關(guān)功能進(jìn)行測試,還可以測試程序的業(yè)務(wù)流程。

測試用例; 依賴關(guān)系; DAG圖

0 引 言

在軟件開發(fā)過程中,軟件測試越來越受到重視,測試能夠幫助開發(fā)人員開發(fā)出更健壯、易用性更強(qiáng)、適應(yīng)性更好的程序。為了更快地執(zhí)行測試,有很多學(xué)者研究了云測試[1-3],將測試任務(wù)分發(fā)至云平臺,并行執(zhí)行測試。針對回歸測試,有效地執(zhí)行測試用例則是測試過程中最重要的任務(wù),如何設(shè)計(jì)高效的回歸測試用例是文中主要研究的問題。提出一種將測試任務(wù)重新整理的辦法,設(shè)計(jì)出回歸測試的測試用例,用來定位功能性錯(cuò)誤的位置。

功能測試主要分為功能模塊測試和業(yè)務(wù)流程測試。各個(gè)功能模塊之間可能存在依賴關(guān)系,一般白盒測試中設(shè)計(jì)測試用例時(shí),會采用插裝的方式來屏蔽掉這種依賴關(guān)系。但黑盒測試如何處理這種依賴關(guān)系是需要解決的問題。

測試用例的執(zhí)行策略直接影響到測試的進(jìn)度和結(jié)果,測試任務(wù)間的依賴關(guān)系也制約著測試用例的執(zhí)行順序。有很多學(xué)者研究過測試用例的執(zhí)行順序問題。載如昕[4]等對測試用例的優(yōu)先級進(jìn)行調(diào)整來提高測試的錯(cuò)誤檢測率,但沒有對有依賴關(guān)系的測試用例進(jìn)行處理;陳翔[5]等對回歸測試中的測試用例優(yōu)先排序技術(shù)進(jìn)行了總結(jié),通過實(shí)例分析闡述了用例優(yōu)先級對測試的影響;蘇小紅[6]等實(shí)現(xiàn)了結(jié)合測試用例約簡與聯(lián)合依賴概率建模對軟件進(jìn)行錯(cuò)誤定位的方法;張艷梅[7]分別針對類單元測試中的路徑覆蓋測試數(shù)據(jù)生成問題和集成測試中類測試順序的確定問題研究了類間依賴關(guān)系。

將依賴關(guān)系整理清楚,有利于對測試進(jìn)行更好的規(guī)劃。測試任務(wù)之間的依賴關(guān)系可以通過DAG圖來表示,深度遍歷DAG圖并設(shè)計(jì)修改測試用例,文中將有依賴關(guān)系的測試用例進(jìn)行整合,形成適合回歸測試[8]的新用例,這些用例間將不存在依賴關(guān)系。在云測試環(huán)境下,使得回歸測試用例可以并行執(zhí)行。

1 相關(guān)概念

1)測試任務(wù)。是用戶用來管理測試的基本單位,其中包括測試所需環(huán)境的要求,要執(zhí)行的相關(guān)測試用例等。可以包含一個(gè)功能模塊的測試用例,也可以包含多個(gè)模塊的測試用例。

2)測試用例(Test Case)[9]。能有效地發(fā)現(xiàn)軟件缺陷的最小測試執(zhí)行單元,一個(gè)測試任務(wù)可能對應(yīng)一個(gè)或多個(gè)測試用例??梢詫⒁粋€(gè)測試任務(wù)的測試用例集形式化表示為:

Tests={T1,T2,…,Ti,…}

Ti={Target,ID,Input,Resullts}

式中:Tests----測試用例集;

Ti----其中一個(gè)測試用例;

Target----測試的目標(biāo)項(xiàng);

ID----測試用例的編號;

Input----描述、輸入、操作;

Results----預(yù)期結(jié)果。

3)測試任務(wù)之間的依賴關(guān)系。對于一個(gè)測試任務(wù),有可能與其他測試任務(wù)之間有依賴關(guān)系,即一個(gè)測試任務(wù)的執(zhí)行可能影響到另一個(gè)測試任務(wù)的執(zhí)行。一個(gè)測試任務(wù)的輸出可能成為另外一個(gè)測試任務(wù)的輸入。

4)測試任務(wù)DAG圖。是有向無環(huán)圖G={V,E},V={v1,v2,…,vn},用來表示測試任務(wù)集合。E是邊集合,記E={e1,e2,…,en},其中,ei=(i,j∈n且i≠j),表示測試任務(wù)之間存在依賴關(guān)系。

DAG圖如圖1所示。

圖1 DAG圖

圖中每個(gè)頂點(diǎn)代表一個(gè)測試任務(wù),B任務(wù)依賴于A任務(wù),G是個(gè)孤立的節(jié)點(diǎn),與其他任務(wù)都不存在依賴關(guān)系。

5)所有的測試任務(wù)可以在一張DAG圖中表示,從圖中一個(gè)節(jié)點(diǎn)出發(fā),能到達(dá)另一個(gè)節(jié)點(diǎn),稱這兩個(gè)節(jié)點(diǎn)之間存在路徑。存在路徑的任務(wù)之間一定存在直接或間接依賴關(guān)系。vi與vj的路徑p=vivi+1,…,vj-1vj,其中,vi與vi+1之間存在邊,vj-1與vj之間存在邊。圖1中,A與B、C、D、E、F均存在路徑,G是一個(gè)孤立的節(jié)點(diǎn),與其他節(jié)點(diǎn)均不存在路徑。

2 測試用例整合策略

通常功能測試中,總會存在功能之間的依賴關(guān)系,即有些功能測試的前提條件是其他功能成功通過測試。如在ATM機(jī)上做取款操作,前提是賬戶里有存款金額且大于要取款的金額,那么取款功能就是依賴于存款功能的。在回歸測試中,主要對修改過的部分進(jìn)行測試。文中通過功能關(guān)系抽象出DAG圖,將存在依賴關(guān)系的功能測試用例重新整合,形成部分新的測試用例。對修改功能代碼的測試用例整合策略按照步驟執(zhí)行如下:

1)對于修改過的測試任務(wù)vi,根據(jù)功能需求,抽象出與vi相關(guān)任務(wù)的DAG圖。

2)如果修改的測試任務(wù)vi是孤立節(jié)點(diǎn),則用其原有測試用例Testsvi={Tvi1,Tvi2,…,Tvii,…}對其進(jìn)行測試;如果不是孤立節(jié)點(diǎn),不改變其原有測試用例,然后從原有Testsvi中選擇Tvii,其中Tvii滿足可以正確執(zhí)行并可以跳轉(zhuǎn)到以vi為初始節(jié)點(diǎn)路徑中的下一節(jié)點(diǎn)vj。

3)深度優(yōu)先遍歷該DAG圖,每遍歷一個(gè)節(jié)點(diǎn),都做如下操作:

如果這個(gè)節(jié)點(diǎn)vj是一條路徑中最后一個(gè)節(jié)點(diǎn),則遍歷后不對測試用例做修改;

如果不是一條路徑中最后一個(gè)節(jié)點(diǎn),則對路徑中下一節(jié)點(diǎn)vj的測試用例Testsvj={Tvj1,Tvj2,…,Tvji,…}與2)中選中的Tvii按照4)中方法整合。

4)結(jié)合方法為:原測試用例Tvii={Target,ID,Input,Resullts},將Testsvj中所有測試用例分別與Tvii合并,形成新的測試用例集NTestsvj={NTvj1,NTvj2,…,NTvji,…}。將Tvii分別與Tvji合并,形成新的測試用例NTvji={Target,ID,Input,Resullts},其中,Target=Tvji.Target,ID=Tvji.ID,Input=Tii.Input+Tvji.Input,Results=Tvji.Results。

5)從NTestsvj中選出NTvji,其中,NTvji滿足可以正確執(zhí)行并可以跳轉(zhuǎn)到遍歷路徑中下一節(jié)點(diǎn)。

6)反復(fù)執(zhí)行以上過程,將新用例與路徑中下一節(jié)點(diǎn)用例結(jié)合,直到遍歷到所有節(jié)點(diǎn)并形成對應(yīng)的新測試用例。

新的測試用例專門測試該路徑中最后一個(gè)節(jié)點(diǎn)任務(wù),并且可以測試這條路徑是否有BUG,即程序的流程是否正確執(zhí)行,這樣的測試用例有利于缺陷定位。

3 實(shí)例分析

以購物網(wǎng)站頁面的部分功能測試用例為例進(jìn)行整合。如果對登錄頁面進(jìn)行了源碼修改,那么與其有依賴關(guān)系的功能都應(yīng)該進(jìn)行回歸測試,為了測試功能及業(yè)務(wù)流程是否暢通,將測試用例整合。用界面原型工具畫出其業(yè)務(wù)跳轉(zhuǎn)流程,如圖2所示。

每個(gè)頁面都是要進(jìn)行測試的一個(gè)功能點(diǎn),對應(yīng)DAG圖中的一個(gè)節(jié)點(diǎn),即一個(gè)測試任務(wù)。每個(gè)測試任務(wù)都有其對應(yīng)的局部測試用例,如改動一部分功能的源碼,將與其有路徑的功能點(diǎn)的測試用例做整合。

圖2對應(yīng)的DAG圖如圖3所示。

為了方便表示,將節(jié)點(diǎn)名稱分別用字母表示,對照表見表1。

原始測試用例見表2。

最后的刪除、付款成功、付款失敗界面是為了展示最終結(jié)果的,所以沒有設(shè)置它們的測試用例。

由于是對登錄功能進(jìn)行修改,所以A的測試用例T1、T2、T3不做改變,從中選擇可以正確執(zhí)行到下一個(gè)路徑節(jié)點(diǎn)的用例T3,深度遍歷DAG圖,遍歷到節(jié)點(diǎn)B,將T3與B的測試用例T4、T5按照4)中方法結(jié)合。得到新的測試用例T4={B,4,Zhangsan123 點(diǎn)擊登錄 點(diǎn)擊商品A,跳轉(zhuǎn)到商品A},T5={B,5,Zhangsan123 點(diǎn)擊登錄 點(diǎn)擊商品B,跳轉(zhuǎn)到商品B}。

從新的T4、T5中選擇一個(gè)可正確執(zhí)行到下一路徑節(jié)點(diǎn)的用例T4,繼續(xù)遍歷DAG圖到節(jié)點(diǎn)C,將新用例T4和C的用例T6結(jié)合,得到新的測試用例T6={C,6,Zhangsan123 點(diǎn)擊登錄 點(diǎn)擊商品A點(diǎn)擊A加入購物車,跳轉(zhuǎn)到購物車}。

以此類推,得到用例T7={D,7,Zhangsan123 點(diǎn)擊登錄 點(diǎn)擊商品A點(diǎn)擊A加入購物車 點(diǎn)擊A付款,跳轉(zhuǎn)到訂單界面},T8={D,8,Zhangsan123 點(diǎn)擊登錄 點(diǎn)擊商品A點(diǎn)擊A加入購物車 點(diǎn)擊A刪除,跳轉(zhuǎn)到刪除界面},T9={E,9,Zhangsan123 點(diǎn)擊登錄 點(diǎn)擊商品A點(diǎn)擊A加入購物車 點(diǎn)擊A付款 點(diǎn)擊確定,跳轉(zhuǎn)到付款界面},T10={F,10,Zhangsan123 點(diǎn)擊登錄 點(diǎn)擊商品A點(diǎn)擊A加入購物車 點(diǎn)擊A付款 點(diǎn)擊確定123,跳轉(zhuǎn)到支付成功界面},T11={F,11,Zhangsan123 點(diǎn)擊登錄 點(diǎn)擊商品A點(diǎn)擊A加入購物車 點(diǎn)擊A付款 點(diǎn)擊確定 空,跳轉(zhuǎn)到支付失敗界面}。

這樣使有依賴關(guān)系的功能成為一個(gè)整體,各個(gè)測試用例可以看成獨(dú)立的任務(wù)。整合好的回歸測試用例不僅可以測試其對應(yīng)的功能點(diǎn),同時(shí)也解決了依賴關(guān)系的問題,還可以測試該路徑的邏輯是否因代碼的修改而失效,使測試更具針對性。

表1 節(jié)點(diǎn)對照表

表2 原始測試用例

4 結(jié) 語

通過對DAG圖的分析,將有依賴關(guān)系的功能串聯(lián)起來,重新整合了測試用例,不同測試用例針對不同功能,有利于快速定位到錯(cuò)誤的功能模塊,而且能夠測試流程是否順利執(zhí)行。這些新的測試用例直接不存在依賴關(guān)系,可以發(fā)布到云平臺上進(jìn)行并行測試,該策略也對豐富軟件測試?yán)碚撈鸬搅讼鄳?yīng)作用。

[1] 李喬.云測試研究現(xiàn)狀綜述[J].計(jì)算機(jī)應(yīng)用研究,2012,29(12):4401-4406.

[2] 曹詠春.云測試綜述[J].研究與開發(fā),2011,10:25-29.

[3] Lian Yu, Weik Tsail, Xiangji Chen, et al. Testing as a service over cloud [C]//Proceedings of Fifth IEEE International Symposium on Service Oriented System Engineering.2010:181-188.

[4] 載如昕,顧春華.用于黑盒測試的測試用例優(yōu)先級改進(jìn)算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(20):4343-4346.

[5] 陳翔,陳繼紅.回歸測試中的測試用例優(yōu)先排序技術(shù)述評[J].軟件學(xué)報(bào),2013,24(8):1695-1712.

[6] 蘇小紅,龔丹丹,王甜甜,等.結(jié)合用例約簡與聯(lián)合依賴概率建模的錯(cuò)誤定位[J].軟件學(xué)報(bào),2014,25(7):1492-1504.

[7] 張艷梅.基于依賴性分析的面向?qū)ο蟪绦驕y試技術(shù)研究[D].北京:中國礦業(yè)大學(xué),2012.

[8] 高燦.基于抽象語法樹的修改影響分析方法[J].長春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2012,33(4):387-390.

[9] 朱少民.軟件測試方法和技術(shù)[M].北京:清華大學(xué)出版社,2014.

Regression test case design strategy

WANG Rongli, HOU Xiuping*

(School of Computer Science and Engineering, Changchun University of Technology, Changchun 130012, China)

With DAG diagram, test cases are reunited to form the cases for regression test. The modification and related functions can be tested, so other business diagram of the test program.

test cases; dependency; DAG diagram.

2016-12-25

吉林省科技廳科技成果轉(zhuǎn)化項(xiàng)目(20130303010GX)

王榮麗(1991-),女,漢族,吉林長春人,長春工業(yè)大學(xué)碩士研究生,主要從事軟件測試方向研究,E-mail:wangrongli1217@163.com. *通訊作者:侯秀萍(1964-),女,漢族,吉林長春人,長春工業(yè)大學(xué)教授,碩士,主要從事軟件測試方向研究,E-mail:houxiuping@ccut.edu.cn.

10.15923/j.cnki.cn22-1382/t.2017.2.14

TP 311

A

1674-1374(2017)02-0179-05

猜你喜歡
購物車測試用例用例
UML用例模型中依賴關(guān)系的比較與分析
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
被疫情改變的購物車
海峽姐妹(2020年5期)2020-06-22 08:26:10
聯(lián)鎖軟件詳細(xì)設(shè)計(jì)的測試需求分析和用例編寫
推購物車購物
家教世界(2018年31期)2018-11-28 09:32:26
從出土文獻(xiàn)用例看王氏父子校讀古書的得失
基于混合遺傳算法的回歸測試用例集最小化研究
購物車?yán)锏摹皶r(shí)間線”
清空購物車了嗎!
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
建阳市| 肇源县| 白朗县| 杨浦区| 尼勒克县| 边坝县| 固镇县| 萝北县| 彭州市| 根河市| 剑阁县| 佛学| 靖宇县| 武鸣县| 大荔县| 昔阳县| 绵竹市| 周至县| 滦南县| 镇赉县| 垣曲县| 涿鹿县| 应用必备| 谢通门县| 万山特区| 津市市| 嫩江县| 察雅县| 金华市| 大姚县| 浙江省| 玉树县| 玉山县| 通化县| 桂林市| 天气| 鞍山市| 南丰县| 宜宾市| 垦利县| 从化市|