胡繼東,鞠煒剛
(中興通訊南京研究所,江蘇 南京 210012)
基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架研究與應(yīng)用
胡繼東,鞠煒剛
(中興通訊南京研究所,江蘇 南京 210012)
隨著軟件產(chǎn)品的交付周期越來越短,自動(dòng)化測(cè)試的應(yīng)用范圍更加廣泛。為解決自動(dòng)化測(cè)試用例編寫維護(hù)復(fù)雜、效率低下的問題,在傳統(tǒng)測(cè)試框架的基礎(chǔ)上提出了一種基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架。用領(lǐng)域語言來描述測(cè)試用例,對(duì)被測(cè)領(lǐng)域進(jìn)行領(lǐng)域建模,以組件化思想為指導(dǎo),采用分層架構(gòu),用面向?qū)ο蠓椒ㄔO(shè)計(jì)、開發(fā)了領(lǐng)域測(cè)試庫,同時(shí)提出了領(lǐng)域驅(qū)動(dòng)測(cè)試的實(shí)施流程,包括啟動(dòng)、建模、設(shè)計(jì)、開發(fā)、測(cè)試、版本管理和發(fā)布的過程、方法。通過采用領(lǐng)域驅(qū)動(dòng)測(cè)試框架可以使得測(cè)試用例的組織、設(shè)計(jì)和開發(fā)更加有效,提高了測(cè)試用例的開發(fā)和維護(hù)效率,測(cè)試用例更加易于解性、清晰簡(jiǎn)潔,能夠通過重構(gòu)快速應(yīng)對(duì)變化,在通信系統(tǒng)測(cè)試中得到了應(yīng)用推廣,取得了很好的效果。
領(lǐng)域驅(qū)動(dòng);自動(dòng)化測(cè)試;領(lǐng)域建模;組件化;分層架構(gòu)
軟件測(cè)試在軟件生命周期中占有十分重要的地位,是保障軟件質(zhì)量的重要手段,因此必須不斷地對(duì)軟件進(jìn)行測(cè)試[1]。隨著市場(chǎng)競(jìng)爭(zhēng)的加劇,軟件產(chǎn)品的交付周期越來越短,采用純手工測(cè)試的方法越來越不能滿足需要,因此通過自動(dòng)化測(cè)試,提高軟件測(cè)試的質(zhì)量和效率,縮短軟件的交付周期。但隨著軟件產(chǎn)品的規(guī)模和復(fù)雜度越來越高,測(cè)試腳本的編寫越來越復(fù)雜,不能滿足自動(dòng)化測(cè)試的要求,需要采用新的技術(shù)和方法[2-3]。文中提出了一種基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試思想,在此基礎(chǔ)上設(shè)計(jì)開發(fā)了自動(dòng)化測(cè)試框架,以更好地完成對(duì)軟件產(chǎn)品的自動(dòng)化測(cè)試。
隨著自動(dòng)化測(cè)試的應(yīng)用范圍越來越廣,測(cè)試用例規(guī)模越來越大,復(fù)雜度越來越高,需要有相適應(yīng)的自動(dòng)化測(cè)試框架來支持。在傳統(tǒng)測(cè)試框架中,測(cè)試用例腳本由復(fù)雜的流程和實(shí)現(xiàn)細(xì)節(jié)描述,直接提供給測(cè)試工具執(zhí)行,對(duì)被測(cè)系統(tǒng)進(jìn)行測(cè)試[4-5]。其中測(cè)試工具是定制化的工具,測(cè)試用例腳本必須采用工具所能支持的格式來編寫,不具有通用性。由于涉及具體的流程和測(cè)試實(shí)現(xiàn)細(xì)節(jié),存在以下問題:
(1)測(cè)試用例腳本細(xì)節(jié)眾多,編寫速度慢,效率低;
(2)測(cè)試用例的編寫有大量的拷貝粘貼,不符合編碼規(guī)范;
(3)一旦接口實(shí)現(xiàn)變化就需要修改所有相關(guān)的測(cè)試用例腳本,可維護(hù)性差;
(4)耦合度高,用例整合耗費(fèi)大量精力。
這些問題導(dǎo)致測(cè)試用例腳本編寫維護(hù)的成本很高,速度慢,同時(shí)腳本不容易理解,給測(cè)試人員使用帶來了極大的不便。一般的關(guān)鍵字驅(qū)動(dòng)框架雖然解決了部分問題,但缺乏有效的方法從測(cè)試領(lǐng)域出發(fā)來解決關(guān)鍵字的設(shè)計(jì)、組織難題,需要有一種新的自動(dòng)化測(cè)試框架和方法來解決這些問題。為此文中研究設(shè)計(jì)了基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架,并在通信系統(tǒng)產(chǎn)品的測(cè)試中進(jìn)行了有效的應(yīng)用。
2.1 領(lǐng)域驅(qū)動(dòng)測(cè)試定義
領(lǐng)域驅(qū)動(dòng)測(cè)試就是用一種高層的領(lǐng)域語言來描述測(cè)試用例,在一種通用的框架調(diào)度下驅(qū)動(dòng)領(lǐng)域測(cè)試關(guān)鍵字庫,直接驅(qū)動(dòng)測(cè)試引擎發(fā)起測(cè)試的方法。
領(lǐng)域驅(qū)動(dòng)測(cè)試是在關(guān)鍵字驅(qū)動(dòng)測(cè)試的基礎(chǔ)上發(fā)展而來的[6-7],其主要特點(diǎn)是從被測(cè)系統(tǒng)的領(lǐng)域模型出發(fā),從測(cè)試角度進(jìn)行領(lǐng)域建模,并通過分層設(shè)計(jì)對(duì)測(cè)試用例和領(lǐng)域關(guān)鍵字進(jìn)行有效的分析、設(shè)計(jì)、開發(fā)和組織管理,從而可以有效地對(duì)被測(cè)系統(tǒng)進(jìn)行測(cè)試。
2.2 領(lǐng)域驅(qū)動(dòng)測(cè)試優(yōu)點(diǎn)
領(lǐng)域驅(qū)動(dòng)測(cè)試主要具備以下優(yōu)點(diǎn):
(1)測(cè)試用例用領(lǐng)域語言描述,更加清晰、簡(jiǎn)潔、易于理解;
(2)測(cè)試用例可以通過組合領(lǐng)域關(guān)鍵字和參數(shù)來設(shè)置;
(3)當(dāng)實(shí)現(xiàn)方式發(fā)生變化時(shí),可以通過更新升級(jí)領(lǐng)域驅(qū)動(dòng)測(cè)試庫來應(yīng)對(duì),測(cè)試用例不需要做任何修改;
(4)針對(duì)敏捷測(cè)試變化的需求,重構(gòu)領(lǐng)域測(cè)試模型和用例,適應(yīng)變化。
3.1 系統(tǒng)框架
改進(jìn)后的基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架如圖1所示。
圖1 領(lǐng)域驅(qū)動(dòng)測(cè)試系統(tǒng)框架
在基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架中,測(cè)試用例腳本由高層的領(lǐng)域語言描述,提供給一個(gè)通用的測(cè)試驅(qū)動(dòng)框架。該框架進(jìn)行調(diào)度執(zhí)行,調(diào)用領(lǐng)域驅(qū)動(dòng)測(cè)試庫中的相關(guān)高層領(lǐng)域測(cè)試關(guān)鍵字,直接驅(qū)動(dòng)測(cè)試工具引擎發(fā)起測(cè)試。采用高層領(lǐng)域語言描述用例的一個(gè)好處是測(cè)試用例腳本清晰、簡(jiǎn)潔、易于理解,并可以快速編寫、修改和維護(hù)。從改進(jìn)前后的測(cè)試框架原理來看,實(shí)質(zhì)是采用了組件化的思想和分層架構(gòu),下面進(jìn)行詳細(xì)闡述。
3.2 組件化思想
基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架的測(cè)試用例腳本結(jié)構(gòu)如圖2所示。
圖2 組件化的測(cè)試用例腳本結(jié)構(gòu)
圖2中的各測(cè)試組件為領(lǐng)域驅(qū)動(dòng)測(cè)試庫中的相應(yīng)領(lǐng)域測(cè)試關(guān)鍵字。測(cè)試用例腳本由高層的領(lǐng)域語言和領(lǐng)域驅(qū)動(dòng)測(cè)試庫構(gòu)成,具體的測(cè)試用例腳本通過測(cè)試庫的領(lǐng)域測(cè)試關(guān)鍵字組合而成,可以有順序、選擇和循環(huán)三種組合關(guān)系。組件化帶來的好處是增強(qiáng)了測(cè)試腳本代碼的可復(fù)用性,減少了重復(fù)和冗余,同時(shí)測(cè)試人員使用領(lǐng)域測(cè)試關(guān)鍵字組裝測(cè)試用例腳本,也易于理解,編寫簡(jiǎn)單[8]。
3.3 分層架構(gòu)
測(cè)試用例腳本由高層領(lǐng)域關(guān)鍵字組成,領(lǐng)域測(cè)試關(guān)鍵字庫的設(shè)計(jì)采用了分層架構(gòu),以某產(chǎn)品的測(cè)試為例,如圖3所示。
圖3 分層架構(gòu)
測(cè)試人員在表示層編寫測(cè)試用例,測(cè)試用例由服務(wù)層不同測(cè)試服務(wù)提供的高層領(lǐng)域關(guān)鍵字組合而成;領(lǐng)域驅(qū)動(dòng)測(cè)試庫則由服務(wù)層、領(lǐng)域?qū)雍突A(chǔ)設(shè)施層構(gòu)成,層次清晰。
其中服務(wù)層對(duì)外提供高層領(lǐng)域測(cè)試接口,對(duì)內(nèi)協(xié)調(diào)驅(qū)動(dòng)領(lǐng)域?qū)訙y(cè)試對(duì)象交互協(xié)作完成測(cè)試。服務(wù)層一般根據(jù)不同的業(yè)務(wù)范圍劃分為多個(gè)測(cè)試服務(wù),每個(gè)測(cè)試服務(wù)提供一系列的高層領(lǐng)域測(cè)試關(guān)鍵字。例如,承載測(cè)試服務(wù)提供了建立承載、釋放承載等測(cè)試接口。
領(lǐng)域?qū)犹峁┝艘幌盗蓄I(lǐng)域?qū)ο?,主要包括各種測(cè)試角色和測(cè)試對(duì)象。其中測(cè)試角色實(shí)現(xiàn)具體的業(yè)務(wù)測(cè)試邏輯,通過相互交互協(xié)作完成測(cè)試;測(cè)試對(duì)象則在不同的測(cè)試場(chǎng)景中扮演不同的角色。
基礎(chǔ)設(shè)施層提供了對(duì)被測(cè)設(shè)備控制以及文件、網(wǎng)絡(luò)、異常等基礎(chǔ)設(shè)施。
采用表示層、服務(wù)層、領(lǐng)域?qū)雍突A(chǔ)設(shè)施層的分層架構(gòu)[9],測(cè)試用例腳本和測(cè)試庫結(jié)構(gòu)清晰,明顯優(yōu)于扁平化結(jié)構(gòu),更有利于測(cè)試用例腳本和領(lǐng)域關(guān)鍵字庫的組織管理。
3.4 領(lǐng)域建模和設(shè)計(jì)
基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架的一個(gè)重要核心思想是采用領(lǐng)域建模和面向?qū)ο蟮脑O(shè)計(jì)。其主要特點(diǎn)是從被測(cè)系統(tǒng)的領(lǐng)域模型出發(fā),從測(cè)試角度進(jìn)行領(lǐng)域建模,并使用面向?qū)ο蠓椒ㄟM(jìn)行設(shè)計(jì)[10-11]。
其中,建立領(lǐng)域模型需要根據(jù)需求的變化和理解的深入不斷進(jìn)行重構(gòu)。采用面向?qū)ο笤O(shè)計(jì)可以很有效地將領(lǐng)域模型映射為實(shí)現(xiàn)對(duì)象,同時(shí)可以采用面向?qū)ο笤O(shè)計(jì)的一些原則,甚至可以使用一些設(shè)計(jì)模式,來達(dá)到優(yōu)化設(shè)計(jì)的目的[12-13]。
領(lǐng)域驅(qū)動(dòng)測(cè)試的實(shí)施流程分為啟動(dòng)、領(lǐng)域建模、設(shè)計(jì)、開發(fā)和測(cè)試、版本管理和發(fā)布這五大步驟,下面介紹每一步驟的實(shí)施方法。
4.1 啟 動(dòng)
在啟動(dòng)階段主要評(píng)估領(lǐng)域驅(qū)動(dòng)測(cè)試實(shí)施的必要性,如果至少具有以下因素之一,則因素越多采用基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架的必要性越大:
(1)測(cè)試用例編寫太復(fù)雜,效率低下;
(2)測(cè)試用例的測(cè)試邏輯和參數(shù)需要補(bǔ)充豐富;
(3)新版本跨度較大,測(cè)試用例需要大量重新修改、整合、裁剪;
(4)協(xié)議升級(jí)導(dǎo)致測(cè)試用例大量細(xì)節(jié)要修改;
(5)被測(cè)業(yè)務(wù)領(lǐng)域復(fù)雜、規(guī)模較大,可預(yù)期的需求變化多。
以某產(chǎn)品測(cè)試為例,確定實(shí)施領(lǐng)域?yàn)槟钞a(chǎn)品網(wǎng)元業(yè)務(wù)測(cè)試。由于某產(chǎn)品用例編寫復(fù)雜,需要通過組合和參數(shù)豐富化用例,而且版本升級(jí)后用例大量需要重新修改、整合、裁剪,具有實(shí)施的必要性。
4.2 領(lǐng)域建模
領(lǐng)域建模主要采用以下方法進(jìn)行:首先是確定范圍,然后使用通用語言進(jìn)行交流,對(duì)領(lǐng)域的業(yè)務(wù)、功能進(jìn)行交流,從核心業(yè)務(wù)開始,逐步進(jìn)行,通過進(jìn)一步對(duì)信息進(jìn)行組織和抽象,建立領(lǐng)域模型,需要不斷進(jìn)行重構(gòu)。
以某產(chǎn)品為例,首先確定了實(shí)施領(lǐng)域?yàn)闃I(yè)務(wù)測(cè)試,確定了被測(cè)對(duì)象為A網(wǎng)元、發(fā)起測(cè)試的對(duì)象為B網(wǎng)元以及測(cè)試的業(yè)務(wù)范圍。通過和領(lǐng)域?qū)<业慕涣?,從核心業(yè)務(wù)承載控制開始,逐步梳理了SDP、終端操作等業(yè)務(wù),發(fā)現(xiàn)了領(lǐng)域模型的關(guān)鍵性概念和元素,形成了通用語言。通過將A網(wǎng)元的領(lǐng)域知識(shí)進(jìn)行組織,分而治之,劃分為承載測(cè)試、終端操作測(cè)試、SDP測(cè)試等幾個(gè)主要的范圍。劃分的原則是高類聚、低偶合。通過領(lǐng)域建模建立了A網(wǎng)元的領(lǐng)域測(cè)試模型,如圖4所示。
圖4 領(lǐng)域模型
模型中一共有3個(gè)測(cè)試服務(wù),分別是承載測(cè)試服務(wù)、終端操作測(cè)試服務(wù)、SDP測(cè)試服務(wù)。分別提供了各自的高層領(lǐng)域測(cè)試服務(wù),如承載測(cè)試服務(wù)提供了承載建立和承載釋放測(cè)試服務(wù)。
各測(cè)試服務(wù)由相應(yīng)的測(cè)試角色交互協(xié)作提供測(cè)試服務(wù),圖中測(cè)試角色用圓表示,例如承載測(cè)試服務(wù)由承載測(cè)試角色提供測(cè)試服務(wù),測(cè)試對(duì)象是終端,圖中用橢圓表示。測(cè)試對(duì)象在不同的測(cè)試場(chǎng)景中充當(dāng)不同的測(cè)試角色。
4.3 面向?qū)ο笤O(shè)計(jì)
采用面向?qū)ο蠓椒ㄟM(jìn)行設(shè)計(jì),將模型映射到對(duì)象。由于SDP測(cè)試場(chǎng)景類和終端操作測(cè)試場(chǎng)景類可以繼承承載測(cè)試場(chǎng)景類,而SDP測(cè)試角色類和終端操作測(cè)試角色類可以繼承承載測(cè)試角色類,通過簡(jiǎn)化設(shè)計(jì),UML類圖如圖5所示[14-15]。
圖5 UML類圖
4.4 開發(fā)和測(cè)試
4.4.1 測(cè)試庫平臺(tái)
領(lǐng)域建模和面向?qū)ο笤O(shè)計(jì)完成后,用python對(duì)領(lǐng)域驅(qū)動(dòng)測(cè)試庫進(jìn)行了開發(fā),測(cè)試庫平臺(tái)結(jié)構(gòu)如圖6所示。
圖6 測(cè)試庫平臺(tái)結(jié)構(gòu)
其中TestCompLib提供了一個(gè)可擴(kuò)展的領(lǐng)域驅(qū)動(dòng)測(cè)試庫通用平臺(tái)。其中的common部分則是整個(gè)測(cè)試庫平臺(tái)的公共基礎(chǔ)部分,提供測(cè)試用例集、測(cè)試用例、測(cè)試方法、測(cè)試引擎、異常日志等基類接口和公共實(shí)現(xiàn)。A是TestCompLib中的一個(gè)具體領(lǐng)域的測(cè)試庫,代表一個(gè)被測(cè)領(lǐng)域A。A中的TestService包括了A測(cè)試領(lǐng)域的各種測(cè)試服務(wù)類的定義和實(shí)現(xiàn),提供各種領(lǐng)域測(cè)試服務(wù),例如實(shí)現(xiàn)了承載測(cè)試服務(wù)(class BearTestService)及其提供的承載建立和承載釋放測(cè)試服務(wù)(def EstablishBear和def ReleaseBear)。A中的TestDomain則包括了A測(cè)試領(lǐng)域的各種測(cè)試對(duì)象和測(cè)試角色類的定義和實(shí)現(xiàn)。A中的common部分繼承自TestCompLib中的common,是A測(cè)試庫的公共基礎(chǔ)部分的具體實(shí)現(xiàn)。
4.4.2 TDD
領(lǐng)域驅(qū)動(dòng)測(cè)試庫的服務(wù)層是根據(jù)測(cè)試場(chǎng)景劃分的,每個(gè)測(cè)試場(chǎng)景又提供高層領(lǐng)域測(cè)試服務(wù)接口,很自然地適用TDD。為此,針對(duì)測(cè)試庫的各測(cè)試場(chǎng)景設(shè)計(jì)編寫了TDD測(cè)試驅(qū)動(dòng)用例,并同步設(shè)計(jì)相應(yīng)的領(lǐng)域測(cè)試服務(wù)接口,進(jìn)行測(cè)試、開發(fā)的反復(fù)迭代,最終完成了領(lǐng)域測(cè)試服務(wù)的實(shí)現(xiàn)并通過了測(cè)試,有力保障了領(lǐng)域測(cè)試庫的質(zhì)量。
4.5 版本管理和發(fā)布
使用領(lǐng)域驅(qū)動(dòng)測(cè)試后,測(cè)試用例采用代碼的方式進(jìn)行版本管理和發(fā)布,原則是測(cè)試庫隨項(xiàng)目大版本發(fā)布給測(cè)試用例編寫和執(zhí)行人員使用。主要采用如下方法:
(1)上層測(cè)試用例采用高層領(lǐng)域語言編寫,一般不會(huì)變化,但為了便于管理,按項(xiàng)目版本拉分支;
(2)領(lǐng)域測(cè)試驅(qū)動(dòng)庫屬于實(shí)現(xiàn)層,是對(duì)具體測(cè)試的封裝,不同版本的具體測(cè)試實(shí)現(xiàn)可能會(huì)有差異,因此按照項(xiàng)目大版本拉分支;
(3)編寫測(cè)試用例時(shí),使用對(duì)應(yīng)版本分支的測(cè)試庫;
(4)對(duì)項(xiàng)目版本測(cè)試執(zhí)行時(shí),使用對(duì)應(yīng)版本的測(cè)試用例和測(cè)試庫組合。
5.1 應(yīng)用情況
在產(chǎn)品A測(cè)試中,給測(cè)試人員提供了一個(gè)A領(lǐng)域驅(qū)動(dòng)測(cè)試庫,并進(jìn)行了實(shí)際應(yīng)用,下面對(duì)應(yīng)用方法和結(jié)果進(jìn)行介紹。
測(cè)試人員使用領(lǐng)域驅(qū)動(dòng)測(cè)試庫提供的領(lǐng)域測(cè)試關(guān)鍵字來描述編寫測(cè)試用例腳本,一般按以下步驟進(jìn)行:
(1)分析測(cè)試用例涉及的測(cè)試場(chǎng)景;
(2)對(duì)每個(gè)測(cè)試場(chǎng)景分析測(cè)試行為,可以分別由哪些領(lǐng)域測(cè)試服務(wù)提供;
(3)從領(lǐng)域測(cè)試庫相應(yīng)的場(chǎng)景庫中取對(duì)應(yīng)的領(lǐng)域測(cè)試關(guān)鍵字來描述;
(4)組合多種領(lǐng)域測(cè)試關(guān)鍵字,設(shè)置不同參數(shù),完成測(cè)試用例腳本。
以下面測(cè)試用例為例子說明:主叫IuRtp承載,被叫ARtp承載,呼叫建立后對(duì)主叫播放bcg/bwt包音,停音后釋放呼叫。
該用例涉及兩個(gè)測(cè)試服務(wù):承載測(cè)試服務(wù)、放音測(cè)試服務(wù)。其中承載測(cè)試服務(wù)包括承載建立、承載釋放測(cè)試服務(wù),分別對(duì)應(yīng)領(lǐng)域測(cè)試關(guān)鍵字EstablishBear、ReleaseBear;放音測(cè)試服務(wù)包括放音、停音測(cè)試,分別對(duì)應(yīng)領(lǐng)域測(cè)試關(guān)鍵字PlayTone、StopTone。對(duì)相關(guān)測(cè)試角色設(shè)置不同參數(shù),組合多種領(lǐng)域測(cè)試關(guān)鍵字,完成后的測(cè)試用例腳本用高層領(lǐng)域關(guān)鍵字組合而成,如下所示:
主叫IuRtp承載,被叫ARtp承載,播放bcg/bwt包音
${termT1} SetTestTerm C1 T1
${termT2} SetTestTerm C1 T2
${BearTermT1} ActBearTestRole${termT1}IuRtp${offi-ce0}${IpAddr}
${BearTermT2} ActBearTestRole${termT2}ARtp${offi-ce0}${IpAddr}
${PlayToneT1} ActPlayToneRole${termT1}${office0}bcgbwt
EstablishBear ${BearTermT1}
EstablishBear ${BearTermT2}
PlayTone ${PlayToneT1}
StopTone ${PlayToneT1}
ReleaseBear ${BearTermT1}
ReleaseBear ${BearTermT2}
5.2 效果評(píng)價(jià)
使用基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架取得了較好的效果,主要有以下幾點(diǎn):
(1)測(cè)試用例使用領(lǐng)域語言描述,更容易理解和編寫;
(2)協(xié)議或版本升級(jí)只需要修改測(cè)試庫,用例不需要任何修改,維護(hù)方便;
(3)測(cè)試用例可以通過組合關(guān)鍵字和設(shè)置參數(shù)輕松擴(kuò)展。
使用基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架前后代碼靜態(tài)統(tǒng)計(jì)結(jié)果對(duì)比如表1所示。
表1 代碼靜態(tài)統(tǒng)計(jì)結(jié)果
基于領(lǐng)域驅(qū)動(dòng)的自動(dòng)化測(cè)試框架應(yīng)用范圍很廣,在不同的行業(yè)領(lǐng)域都可以應(yīng)用。在新產(chǎn)品研發(fā)過程中,在產(chǎn)品需求階段就可以同步考慮對(duì)測(cè)試領(lǐng)域的建模,然后設(shè)計(jì)、開發(fā)相應(yīng)的領(lǐng)域驅(qū)動(dòng)測(cè)試庫來提供測(cè)試服務(wù),構(gòu)建測(cè)試用例腳本,從而采用ATTD的方法來驅(qū)動(dòng)產(chǎn)品的開發(fā)。這種理念可以用于新功能特性的自動(dòng)化用例腳本的設(shè)計(jì)開發(fā)。
未來應(yīng)該向測(cè)試領(lǐng)域建模方法和專項(xiàng)領(lǐng)域的測(cè)試框架和模型設(shè)計(jì)兩個(gè)方向來繼續(xù)探索研究和積累實(shí)際應(yīng)用經(jīng)驗(yàn)。
[1] Patton R.軟件測(cè)試[M].北京:機(jī)械工業(yè)出版社,2002.
[2] 吳顯光.軟件自動(dòng)化測(cè)試[J].中國新通信,2012,14(14):67-69.
[3] 龔 丹.自動(dòng)化測(cè)試之我見[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(17):83-84.
[4] 崔紅軍,饒若楠,邵培南.一種API自動(dòng)化測(cè)試工具的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2007,33(4):270-271.
[5] 夏 晶.基于QTP的功能自動(dòng)化測(cè)試框架的研究與應(yīng)用[D].武漢:武漢科技大學(xué),2010.
[6] 王 君,朱美正,李 欣.關(guān)鍵字驅(qū)動(dòng)測(cè)試框架的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(10):2246-2248.
[7] 候 勇.關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試系統(tǒng)的研究[D].西安:西安電子科技大學(xué),2009.
[8] Sametinger J.Software enginering with reusable companents[M].Berlin,Germany:Springer-Verlag,1997.
[9] Evans E.領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)[M].北京:人民郵電出版社,2010.
[10] 易利濤,周肆清,丁長(zhǎng)松.信息抽取中領(lǐng)域本體建模方法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(10):23-27.
[11] Boggs W,Boggs M.Mastering rational XDE[M].邱仲潘,譯.北京:電子工業(yè)出版社,2003.
[12] 邵維忠,楊芙清.面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2003:160-174.
[13] Szysperski C. Component software:beyond object-oriented programming[M].[s.l.]:Addison Wesley,2002.
[14] 冀振燕.UML系統(tǒng)分析設(shè)計(jì)與應(yīng)用案例[M].北京:人民郵電出版社,2003:3-9.
[15] Roff J T.UML a beginner’s guide[M].張 瑜,譯.北京:清華大學(xué)出版社,2003:9-13.
Research and Application of Automation Testing Framework Based on Field-driven
HU Ji-dong,JU Wei-gang
(ZTE Nanjing Institute,Nanjing 210012,China)
As the delivery period of software products becomes shorter,the application scope of automation test becomes wider.In order to solve the problem of low efficiency and complexity in writing and maintaining automation test cases,an automation test framework is put forward based on domain-driven on the existing traditional test framework.The new framework describes test cases in domain language,creates model to the tested domain,guides design with the idea of modularization,adopts layered architecture,and designs and develops domain test library by using ODD.At the same time,the implementation procedure of domain-driven test is raised,which includes process and method of starting,modeling,design,development,test,version management and publishing.By adopting the domain-driven test framework,the system makes organization,design and development of test cases more efficient,and thus improves efficiency in development and maintenance of test cases.In this case,test cases become easy to understand,clear and concise,and satisfy quick changes requirements by using restructuring.Thus,the framework is widely deployed in telecommunication system tests and has achieved good results.
domain driven;automated test;domain modeling;modularization;layered architecture
2015-07-12
2015-10-16
時(shí)間:2016-03-22
國家自然科學(xué)基金資助項(xiàng)目(61402482)
胡繼東(1979-),男,碩士研究生,工程師,研究方向?yàn)檐浖y(cè)試、敏捷測(cè)試。
http://www.cnki.net/kcms/detail/61.1450.TP.20160322.1521.066.html
TP31
A
1673-629X(2016)04-0162-05
10.3969/j.issn.1673-629X.2016.04.036