999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

迭代模式中基于可復(fù)用構(gòu)件的自動化測試框架研究

2012-11-15 07:36:22張燕華賈永娜
中國測試 2012年5期
關(guān)鍵詞:界面

張燕華,賈永娜

(1.西藏民族學(xué)院信息工程學(xué)院,陜西 咸陽 712082;2.思特沃克軟件技術(shù)(北京)有限公司,北京 100007)

0 引 言

迭代開發(fā)模式相對于傳統(tǒng)的開放模式,具有可以控制項目風(fēng)險、允許需求變動、保證項目開放進度等優(yōu)點,使其在軟件項目開發(fā),尤其是商業(yè)軟件項目開發(fā)中得到了廣泛的應(yīng)用[1]。目前雖然大規(guī)模的軟件項目開發(fā)都采用迭代的開發(fā)模式來降低項目風(fēng)險,但是還沒有形成一套完整的關(guān)于迭代開發(fā)模式下自動化測試的理論和方法。為打破這種軟件測試技術(shù)和理論落后于軟件開發(fā)的現(xiàn)狀,對迭代開發(fā)模式下的自動化測試技術(shù)的研究就非常有必要。

為降低測試腳本的維護開銷,使自動化測試在迭代開發(fā)模式下更加有效,把構(gòu)件復(fù)用技術(shù)、分離邏輯和實現(xiàn)等知識應(yīng)用到軟件的自動化測試框架設(shè)計之中,提出了迭代模式中基于可復(fù)用構(gòu)件的自動化測試框架(automation test framework based on reused component in iterative model,AFRI)。AFRI借鑒了現(xiàn)有測試框架的優(yōu)點,提出了更加適合迭代開發(fā)模式的測試流程和設(shè)計方法,吸收復(fù)用技術(shù)、分離邏輯和實現(xiàn)以及測試數(shù)據(jù)與測試腳本等思想,提高了測試框架的復(fù)用性、可維護性,降低了后期的開發(fā)和維護成本。

1 迭代模式中基于可復(fù)用構(gòu)件的自動化測試框架設(shè)計

在迭代開發(fā)模式中,往往把整個項目分解為多個階段性的小迭代。尤其是在需求變化快、工期緊的商業(yè)軟件開發(fā)環(huán)境中,每次迭代之后,都要進行全面的測試[2-4]。所以,測試工作成為迭代開發(fā)項目整體質(zhì)量和進度控制的關(guān)鍵點。測試工作的每個環(huán)節(jié)都要有很好的繼承性和可復(fù)用性,而復(fù)用技術(shù)按照可復(fù)用的抽象程度,可以分為代碼復(fù)用、設(shè)計的復(fù)用、分析的復(fù)用、測試信息的復(fù)用4個級別。

本文提出的可復(fù)用技術(shù)涉及測試過程中的許多環(huán)節(jié),例如對測試用例和測試數(shù)據(jù)的復(fù)用,以及對自動化測試框架中測試腳本的復(fù)用,這都是為了與迭代開發(fā)模式的特性保持一致。

1.1 AFRI的系統(tǒng)結(jié)構(gòu)分析

迭代模式中基于可復(fù)用構(gòu)件的測試框架AFRI主要分為元素層、管理層、腳本層、集成層4層,其結(jié)構(gòu)示意如圖1所示。

圖1 AFRI系統(tǒng)結(jié)構(gòu)圖

1.1.1 元素層

該層的主要作用是建立測試腳本和待測程序中界面元素之間的聯(lián)系。通過把實際的界面元素抽象到元素層,可以使測試人員通過調(diào)用元素層中的對象,來操作待測程序中的界面元素,從而實現(xiàn)工作分工。如果開發(fā)和測試遵守統(tǒng)一的界面標準,則在每次迭代的過程中,軟件開發(fā)和界面元素的提取工作可以同時進行。當待測程序界面有所改動時,只要改動元素層中被改動的界面元素對象就可以很快地適應(yīng)新的需求。

1.1.2 管理層

管理層的作用是為元素層中的對象定義相應(yīng)的操作接口,例如:對dropdownlist的點擊,以及對其中item的選擇動作;對文本編輯框的輸入、粘貼、刪除、全選等編輯動作。管理層的接口與元素層對象相互對應(yīng),每個元素都應(yīng)該有自己的操作管理集合,但不一定是一對一的關(guān)系,要根據(jù)具體情況對管理層的操作接口進行分類,權(quán)衡每個管理集合的操作范圍和種類。管理接口完成后,可在后期的測試工作中得到復(fù)用。由于每種界面元素的操作方式是一定的,即管理層提供的接口是固定的,腳本層中不同的測試腳本可能會操作同一個界面元素,這種重復(fù)的操作通過復(fù)用管理層中相應(yīng)的操作接口即可完成。

1.1.3 腳本層

腳本層的作用是根據(jù)前期設(shè)計好的測試用例,完成對被測軟件的功能和業(yè)務(wù)邏輯的驗證。腳本層包括測試數(shù)據(jù)、場景測試腳本和測試結(jié)果驗證腳本3部分。測試數(shù)據(jù)集合不但要提供測試腳本需要的輸入數(shù)據(jù),同時也要提供測試結(jié)果校驗數(shù)據(jù)。一個場景測試腳本只是完成一個特定的測試場景。整個過程中,測試腳本從測試數(shù)據(jù)文件內(nèi),讀取測試數(shù)據(jù),然后調(diào)用管理層中操作相關(guān)界面元素的管理接口,完成測試用例所描述的操作序列,最后通過測試結(jié)果校驗?zāi)_本對測試結(jié)果進行校驗。

1.1.4 集成層

集成層的主要功能是根據(jù)不同測試階段的測試目的集成不同的測試腳本。例如:冒煙測試,只需要從宏觀上驗證被測程序的基本功能,其對應(yīng)的測試腳本集合相對較小,可設(shè)為{a1,a2,a3,a4,…,ak};而集成測試需要驗證被測程序各個功能模塊集成后的功能和性能,其測試腳本集合除了要包含每個模塊的功能測試腳本外,還要包含驗證各個模塊之間接口的功能測試腳本,可以設(shè)為{a4,a5,a6,…ak,…an},且有 n>k,但同時,這兩個測試集合都有共同的測試腳本集合{a4,a5,a6,…ak},所以不需要重復(fù)的開發(fā)測試腳本{a4,a5,a6,…ak},只需要根據(jù)不同的測試目的,從腳本層中選擇需要的測試腳本組成測試腳本集合。由此可見,腳本層在后期的測試工作中也得到了復(fù)用。

1.2 AFRI的測試流程

測試的實施過程要從需求說明書開始[5]。根據(jù)需求說明書設(shè)計軟件功能說明,然后制定測試計劃、設(shè)計測試用例、開發(fā)測試腳本,最后進行集中測試和缺陷管理。在迭代開發(fā)模式中,測試工作也是迭代進行的。基于AFRI系統(tǒng)進行測試的流程如圖2所示。

圖2 基于AFRI的測試流程圖

1.3 迭代中測試用例的生成算法

迭代開發(fā)過程中,軟件的功能說明和用戶需求,隨著每次的迭代而逐漸完善和增加,而在迭代比較頻繁的開發(fā)中,需求的變動也是經(jīng)常的;所以,測試用例的可復(fù)用性也至關(guān)重要[6-7]。本文針對迭代開發(fā)中以功能界面為基礎(chǔ)的特點,提出了以被測軟件界面元素為基本單位,基于UML順序圖模型的測試用例生成方法。該方法不但能夠在每次的迭代中復(fù)用前期迭代中產(chǎn)生的界面組件,還可以復(fù)用該界面組件對應(yīng)的測試數(shù)據(jù)。

在順序圖中,場景被定義為在相互交互的對象間傳遞的一個消息序列[8],每個消息序列代表用例的一個可能的事件流。在順序圖中可以詳細地說明前置條件和后置條件,以及一個消息序列涉及到的參數(shù),如界面元素,而這些參數(shù)序列又可以產(chǎn)生一個或多個描述測試場景的有向無環(huán)圖。例如,一個成績錄入系統(tǒng)中,老師登陸系統(tǒng),并更改某個學(xué)生成績的操作序列,可以用如圖3所示的UML順序圖表示。

圖3 更改成績操作順序圖

基于UML順序圖生成測試用例的過程包括:按照功能說明畫出完整的順序圖(包括前置條件、后置條件、約束條件、消息序列,以及參數(shù)等信息),根據(jù)順序圖中的信息得到所有測試場景有向無環(huán)圖(尤其是每個消息序列中,每個參數(shù)所對應(yīng)的測試數(shù)據(jù)),采用兩因素組合覆蓋的方式遍歷整個測試場景有向無環(huán)圖,最后生成測試用例。由圖3的部分操作信息所生成的測試場景有向無環(huán)圖如圖4所示。

圖4主要描述了圖3中的login和search事件所生成的測試場景的有向無環(huán)圖,主要驗證login和search的功能點。對于change和browse事件的測試場景生成方法是完全相同的。圖中節(jié)點分為4類:1,0,-1,-2,分別對應(yīng)該層界面元素可以選取的 4種測試數(shù)據(jù)集合,其中只有1代表有效的測試數(shù)據(jù)。樹的每一層都描述了一個界面元素所對應(yīng)的測試數(shù)據(jù),而對于按鈕節(jié)點,只有在前面的輸入信息組件中輸入有效的數(shù)據(jù)才可以通過,其他無效的輸入都不會通過按鈕節(jié)點到達下一層。例如,對于password層,只有有效數(shù)據(jù)1連接到下一層,而無效數(shù)據(jù)-1和空值0都不可能成功登陸,所以沒有一條連到下層的線段。這樣,就可以過濾掉無效輸入數(shù)據(jù)所產(chǎn)生的組合序列,從而大大減少測試用例集合中有效測試用例的數(shù)量。

圖4 相應(yīng)測試場景的有向無環(huán)圖

2 基于AFRI進行測試的收益分析

以某軟件公司的軟件M為測試對象,驗證了AFRI的可行性。采用Douglas Hoffman所提出的自動化收益分析方法,充分考慮到了除了測試工作之外的其他額外花銷。

式中:ΔBa——自動化測試相對于手工測試的額外回報。

ΔCa——自動化測試相對于手工測試的額外支出。

使用AFRI系統(tǒng)進行自動化測試的收益情況,可以通過圖5直觀地表示。

從圖5中可以看出,使用AFRI系統(tǒng)進行自動化測試在第一次發(fā)布時,收益為0.7712,入不敷出,還沒有收益;但在后面的迭代過程中,自動化測試表現(xiàn)出了較好的效益,而且隨著自動化測試復(fù)用次數(shù)的增加,效益逐漸增加,并趨于平緩。這說明使用AFRI系統(tǒng)進行自動化測試,可以在后期的迭代中得到更高的收益,尤其是測試構(gòu)件復(fù)用率高、功能需求變動較少的情況。但在測試腳本變的龐大時,收益的增長幅度就變小了,這是由后期的測試腳本維護量變大、自動化測試固定支出增多等原因造成的。框架設(shè)計開發(fā)活動是一個迭代的、逐步遞增的過程,好的框架一般是多次迭代及辛苦努力的結(jié)晶。要得到更好的收益,需要根據(jù)具體的測試環(huán)境進行多次的迭代開發(fā)和改進。

圖5 基于AFRI的自動化測試收益分析圖

3 結(jié)束語

AFRI為自動化測試提供了一個有效框架,尤其是對迭代開發(fā)模式中的自動化測試工作具有較強的理論價值和實際意義。通過測試過程中得到的實際測試數(shù)據(jù),使用目前成熟的自動化測試收益分析方法,證明了迭代開發(fā)模式中AFRI系統(tǒng)進行自動化測試收到了很好的效益,可以達到一次開發(fā)、長期收益的效果。

[1]Paul C J.軟件測試[M].北京:機械工業(yè)出版社,2003.

[2]朱菊,王志堅,楊雪.基于數(shù)據(jù)驅(qū)動的軟件自動化測試框架[J].計算機技術(shù)與發(fā)展,2006,16(5):68-70.

[3]古樂,史九林.軟件測試技術(shù)概論[M].北京:清華大學(xué)出版社,2004:216-217.

[4]Chen J J, Subramaniam S, GUI A.Environment to manipulate FSMs for testing GUI-based applications in java [C]∥Proceedings of the 34th Hawaii International Conference on System Sciences,2001:1-10.

[5]Burnstein I,Suwanasart T,Carlson C.Developing a testing maturity model:Part I[J].Journal of Defense Software Engineering,1996,9(8):21-24.

[6]Kuhn D R,Reilly M J.An investigation of the applicability of design of experiments to software testing[C]∥Proceedings of the 27th Annual NASA Goddard/IEEE Software Engineering Workshop,2003:4-6.

[7]黃雨田,聶麗琴,段富,等.用例需求分析技術(shù)的應(yīng)用[J].太原理工大學(xué)學(xué)報,2005,36(2):224-227.

[8]飛思科技產(chǎn)品研發(fā)中心.實用軟件測試方法與應(yīng)用[M].北京:電子工業(yè)出版社,2003.

猜你喜歡
界面
聲波在海底界面反射系數(shù)仿真計算分析
微重力下兩相控溫型儲液器內(nèi)氣液界面仿真分析
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發(fā)方法研究
西門子Easy Screen對倒棱機床界面二次開發(fā)
空間界面
金秋(2017年4期)2017-06-07 08:22:16
鐵電隧道結(jié)界面效應(yīng)與界面調(diào)控
電子顯微打開材料界面世界之門
人機交互界面發(fā)展趨勢研究
手機界面中圖形符號的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 伊人色天堂| 蜜桃臀无码内射一区二区三区| 欧美视频二区| 久久天天躁狠狠躁夜夜2020一| 亚洲欧洲一区二区三区| 久久综合丝袜长腿丝袜| 亚洲va精品中文字幕| 亚洲欧美激情小说另类| 伊人久热这里只有精品视频99| 视频二区国产精品职场同事| 人妻一区二区三区无码精品一区| 午夜老司机永久免费看片| 在线精品自拍| 视频二区欧美| 国产欧美视频一区二区三区| 精品一区二区三区中文字幕| 91国内外精品自在线播放| 青青国产视频| 99国产精品一区二区| 久久国产高清视频| 91麻豆精品国产高清在线 | 久久精品女人天堂aaa| 精品国产aⅴ一区二区三区| 精品无码人妻一区二区| 亚洲色图在线观看| 福利小视频在线播放| 在线观看91香蕉国产免费| 婷婷五月在线视频| 欧美视频免费一区二区三区| 91久久青青草原精品国产| 91无码国产视频| 欧美成人a∨视频免费观看 | 亚洲国产成人久久精品软件 | 激情视频综合网| 国产美女主播一级成人毛片| 国产一在线| 日日拍夜夜操| 色哟哟国产精品一区二区| 亚洲中文字幕在线一区播放| 东京热高清无码精品| 精品福利网| 91福利片| 激情爆乳一区二区| 欧美 国产 人人视频| 久青草免费视频| 日本爱爱精品一区二区| 国产导航在线| a亚洲视频| 丝袜亚洲综合| 免费中文字幕一级毛片| 园内精品自拍视频在线播放| 男人天堂亚洲天堂| 国产一区二区视频在线| 久久午夜夜伦鲁鲁片无码免费| 日本a级免费| 午夜在线不卡| 国内精品小视频福利网址| 国产精彩视频在线观看| 九九热精品在线视频| 国产成人乱无码视频| 91久久夜色精品| 亚洲91在线精品| 日韩免费视频播播| 真实国产乱子伦视频| 亚洲三级成人| 蜜芽国产尤物av尤物在线看| 国产91小视频在线观看| 男女性色大片免费网站| 在线国产91| 麻豆精品久久久久久久99蜜桃| 最新日韩AV网址在线观看| 成人午夜视频网站| 小13箩利洗澡无码视频免费网站| 亚洲美女一区| 伊人精品视频免费在线| 亚洲精品第一在线观看视频| 99在线观看视频免费| 999在线免费视频| 久久青草免费91观看| 免费人成网站在线观看欧美| 久草视频精品| 波多野结衣第一页|