專(zhuān)利名稱(chēng)::基于業(yè)務(wù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及軟件自動(dòng)化測(cè)試技術(shù),具體為一種基于業(yè)務(wù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試方法。
背景技術(shù):
:傳統(tǒng)的軟件自動(dòng)化測(cè)試方法基本就是以錄制回放為主,加之一些數(shù)據(jù)驅(qū)動(dòng),使得測(cè)試數(shù)據(jù)與測(cè)試腳本分離。這在軟件自動(dòng)化測(cè)試的初期是比較先進(jìn)的手段,但是隨著軟件自動(dòng)化測(cè)試工具的發(fā)展、完善,被測(cè)試系統(tǒng)的實(shí)現(xiàn)復(fù)雜度增加、業(yè)務(wù)復(fù)雜度的增加,傳統(tǒng)的軟件自動(dòng)化測(cè)試的弊端逐漸暴露出來(lái)。主要表現(xiàn)在(1)腳本不夠靈活,不能適應(yīng)業(yè)務(wù)的復(fù)雜程度;(2)維護(hù)成本高,工作量巨大。無(wú)法滿足被測(cè)試頻繁變更、升級(jí)的要求;(3)代碼不易理解,對(duì)軟件自動(dòng)化測(cè)試腳本的編寫(xiě)對(duì)人員要求較高;(4)僅僅是數(shù)據(jù)驅(qū)動(dòng),業(yè)務(wù)人員很難介入并對(duì)腳本的有效性進(jìn)行檢查。目前,流行基于數(shù)據(jù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試平臺(tái),是一種數(shù)據(jù)被包含在輸入測(cè)試數(shù)據(jù)文件中,并且以數(shù)據(jù)來(lái)控制軟件自動(dòng)化測(cè)試腳本執(zhí)行的流程和動(dòng)作的測(cè)試。輸入測(cè)試數(shù)據(jù)記錄從外部讀入,并且獨(dú)立于測(cè)試腳本。利用關(guān)鍵字驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試框架,是通過(guò)設(shè)計(jì)關(guān)鍵字來(lái)描述離散功能性業(yè)務(wù)事件,開(kāi)始時(shí)需建立通用關(guān)鍵字庫(kù)。關(guān)鍵字呈現(xiàn)有關(guān)投資的良好回報(bào),因?yàn)槊恳粋€(gè)業(yè)務(wù)事件都是作為離散的實(shí)體設(shè)計(jì)、自動(dòng)化和維護(hù)的。測(cè)試人員不需要錄制測(cè)試腳本,而是設(shè)計(jì)測(cè)試腳本。這種模型的開(kāi)發(fā)和實(shí)現(xiàn)與傳統(tǒng)的測(cè)試流程相比是困難的,最耗時(shí)的。以上兩種流行的軟件自動(dòng)化測(cè)試方法,都是關(guān)注于測(cè)試本身的方法論,沒(méi)有關(guān)注被測(cè)對(duì)象?;跇I(yè)務(wù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試方法,在關(guān)鍵字驅(qū)動(dòng)軟件自動(dòng)化測(cè)試框架基礎(chǔ)上引入業(yè)務(wù)組件技術(shù),通過(guò)對(duì)被測(cè)對(duì)象的組件化,降低軟件自動(dòng)化測(cè)試入門(mén)門(mén)檻,使得操作者只需要簡(jiǎn)單的配置,便可以實(shí)現(xiàn)軟件自動(dòng)化測(cè)試,在效率的準(zhǔn)確性上效果更好。目前基于業(yè)務(wù)驅(qū)動(dòng)和業(yè)務(wù)組件技術(shù)的軟件自動(dòng)化測(cè)試方法未見(jiàn)有成熟報(bào)導(dǎo),國(guó)內(nèi)外流行的測(cè)試工具像HP公司QTP和LoadRurmer(版本10.0)以及開(kāi)源工具Ruby等自動(dòng)化測(cè)試工具都是面向工具層面,不具備業(yè)務(wù)封裝功能。
發(fā)明內(nèi)容本發(fā)明的技術(shù)方案是基于業(yè)務(wù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試方法,由業(yè)務(wù)邏輯驅(qū)動(dòng),將被測(cè)軟件對(duì)象進(jìn)行業(yè)務(wù)組件化,軟件自動(dòng)化測(cè)試功能點(diǎn)細(xì)化到業(yè)務(wù)組件,并形成業(yè)務(wù)組件化的測(cè)試用方法。具體業(yè)務(wù)組件化實(shí)施方案分成單一型組件和組合型組件,其中單一型組件是基于最小粒度的組件、并使用單一型組件,該類(lèi)型的組件的HTML代碼在組件類(lèi)中編寫(xiě)以組件只包含組件類(lèi)和組件規(guī)范;組合型組件,基于一塊頁(yè)面區(qū)域使用組合型組件,該類(lèi)型的組件的HTML代碼在組件模板中實(shí)現(xiàn),組合型組件包含組件模板、組件類(lèi)、組件規(guī)范;形成業(yè)務(wù)組件庫(kù);采用軟件自動(dòng)化測(cè)試工具對(duì)業(yè)務(wù)組件庫(kù)的組件進(jìn)行測(cè)試,用關(guān)鍵字映射表形式將測(cè)試邏輯封裝在數(shù)據(jù)文件中,關(guān)鍵字包括三類(lèi)被操作對(duì)象(Item)、操作(Operation)和值(value).,通過(guò)軟件自動(dòng)化測(cè)試工具對(duì)關(guān)鍵字進(jìn)行解釋、使用,以實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)的軟件自3動(dòng)化測(cè)試;根據(jù)業(yè)務(wù)組件抽取業(yè)務(wù)規(guī)則,形成業(yè)務(wù)規(guī)則庫(kù),業(yè)務(wù)規(guī)則庫(kù)通過(guò)測(cè)試用例和測(cè)試數(shù)據(jù)用自動(dòng)化測(cè)試工具進(jìn)行測(cè)試;自動(dòng)化測(cè)試工具調(diào)用對(duì)象函數(shù)庫(kù)獲得關(guān)鍵字映射表,業(yè)務(wù)組件庫(kù)通過(guò)關(guān)鍵字映射表用自動(dòng)化測(cè)試工具進(jìn)行測(cè)試。對(duì)象函數(shù)是對(duì)業(yè)務(wù)組件操作指令的函數(shù),一個(gè)業(yè)務(wù)組件對(duì)象的類(lèi)型對(duì)應(yīng)一個(gè)組件的對(duì)象函數(shù)庫(kù);軟件自動(dòng)化測(cè)試工具提供了這樣的函數(shù),在其中加入額外的代碼來(lái)檢測(cè)錯(cuò)誤、糾正錯(cuò)誤和幫助同步,這類(lèi)代碼是實(shí)現(xiàn)無(wú)人職守的軟件自動(dòng)化測(cè)試所必需的;對(duì)象函數(shù)(庫(kù))是在應(yīng)用業(yè)務(wù)組件庫(kù)和自動(dòng)化測(cè)試工具之間提供了一個(gè)隔離層。業(yè)務(wù)組件抽取,幫助測(cè)試工程師在編寫(xiě)測(cè)試時(shí)發(fā)現(xiàn)規(guī)則、表示規(guī)則、管理規(guī)則、自動(dòng)執(zhí)行規(guī)則,建立規(guī)則運(yùn)行機(jī)制。業(yè)務(wù)組件抽取的業(yè)務(wù)規(guī)則分成(1)變量之間關(guān)系約束規(guī)則,(2)變量屬性值強(qiáng)制性約束規(guī)則,(3)變量屬性值之間的關(guān)系約束規(guī)則。本發(fā)明的有益效果是面向業(yè)務(wù)的軟件自動(dòng)化測(cè)試框架,其技術(shù)優(yōu)勢(shì)在于,不僅有傳統(tǒng)的軟件自動(dòng)化測(cè)試的高利用率及高準(zhǔn)確性的優(yōu)點(diǎn),更因?yàn)橛蓸I(yè)務(wù)邏輯驅(qū)動(dòng)測(cè)試,在保證基本功能點(diǎn)被測(cè)全面的基礎(chǔ)上,更能保證全業(yè)務(wù)場(chǎng)景的合理測(cè)試,以及業(yè)務(wù)與業(yè)務(wù)之間的合理貫穿,同時(shí)因?yàn)椴捎孟冗M(jìn)的業(yè)務(wù)組件技術(shù)來(lái)管理業(yè)務(wù)和測(cè)試用例,降低測(cè)試測(cè)試人員業(yè)務(wù)能力的要求。本發(fā)明已在移動(dòng)、聯(lián)通和電信等多個(gè)省級(jí)運(yùn)營(yíng)商的IT支撐系統(tǒng)中得以應(yīng)用,其中包括湖南移動(dòng)、天津聯(lián)通和江蘇電信等,幫助電信運(yùn)營(yíng)商提高其支撐系統(tǒng)的業(yè)務(wù)支撐能力,加快業(yè)務(wù)發(fā)展。本發(fā)明是通過(guò)多年的實(shí)踐,開(kāi)發(fā)的一套針對(duì)GUI的測(cè)試框架系統(tǒng)和方法。此系統(tǒng)架構(gòu)在商用軟件自動(dòng)化測(cè)試工具基礎(chǔ)上,直接面向業(yè)務(wù),通過(guò)引入業(yè)務(wù)組件技術(shù),進(jìn)行軟件自動(dòng)化測(cè)試,加快了開(kāi)發(fā)和測(cè)試速度,降低了自動(dòng)化腳本維護(hù)成本,節(jié)約測(cè)試資源投入成本,降低測(cè)試人員操作門(mén)檻,便于快速掌握和使用。圖1為本發(fā)明邏輯圖。具體實(shí)施例方式本發(fā)明是架構(gòu)在開(kāi)源Ruby工具之上,但又不拘限于該測(cè)試工具,本方法也可以封裝并在目前國(guó)內(nèi)外主流的自動(dòng)化測(cè)試工具上應(yīng)用,如HP公司QTP和LoadRurmer。具體實(shí)施實(shí)施方案(步驟)如下本發(fā)明的基本原則是對(duì)業(yè)務(wù)需求中影響系統(tǒng)業(yè)務(wù)功能的業(yè)務(wù)規(guī)則進(jìn)行抽取,得出業(yè)務(wù)池中的所有業(yè)務(wù)顆粒和相關(guān)的業(yè)務(wù)對(duì)象模型,并在基于定義的業(yè)務(wù)顆粒形成相對(duì)穩(wěn)定的業(yè)務(wù)池和業(yè)務(wù)對(duì)象模型基礎(chǔ)上,將影響業(yè)務(wù)池中各個(gè)業(yè)務(wù)顆粒操作的業(yè)務(wù)對(duì)象集合的因素從應(yīng)用程序中分離出來(lái)作為相應(yīng)的業(yè)務(wù)規(guī)則進(jìn)行存儲(chǔ),通過(guò)相應(yīng)的規(guī)則引擎來(lái)實(shí)現(xiàn)(即根據(jù)抽取業(yè)務(wù)規(guī)則形成業(yè)務(wù)規(guī)則庫(kù)),根據(jù)業(yè)務(wù)組件化技術(shù)要求,按照被測(cè)對(duì)象相似業(yè)務(wù)活動(dòng)、使用類(lèi)似數(shù)據(jù)、具有通用處理流程以及相同業(yè)務(wù)目標(biāo)等角度進(jìn)行業(yè)務(wù)活動(dòng)歸類(lèi),并根據(jù)業(yè)務(wù)組件的作用不同,將業(yè)務(wù)組件分成公共業(yè)務(wù)組件和普通業(yè)務(wù)組件庫(kù);(1)由業(yè)務(wù)邏輯驅(qū)動(dòng),將產(chǎn)品組件化,測(cè)試功能點(diǎn)細(xì)化到業(yè)務(wù)組件,并形成組件化的測(cè)試用方法。具體組件化實(shí)施方案分成單一型組件和組合型組件,其中單一型組件,一般基于最小粒度的組件使用單一型組件,該類(lèi)型的組件的HTML代碼在組件類(lèi)中編寫(xiě),所以組件只包含組件類(lèi),組件規(guī)范,單一型組件又分為表單型組件和普通單一組件;組合型組件,一般基于一塊頁(yè)面區(qū)域使用組合型組件,該類(lèi)型的組件的HTML代碼在組件模板中實(shí)現(xiàn),所以組合型組件包含組件模板,組件類(lèi),組件規(guī)范。1組件模板組件模板主要是將業(yè)務(wù)邏輯中獲取的數(shù)據(jù)展現(xiàn)在頁(yè)面中,組件模板結(jié)構(gòu)如下<divclass=〃login〃><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><tdclass=〃mylf〃>用戶(hù)名</td><tdclass="myrt"Xlabel><inputtype="text"name="STAFF_ID"desc="用戶(hù)名"nullable=〃no〃equsize=〃8〃datatype=〃text〃onfocus=〃select();〃/></label></td></tr></table><div>〈inputtype=〃submit〃jwcid=〃bsubmit〃value="登陸〃onclick=〃returnverifyAll(this)〃/></div><div>1組件類(lèi)組件類(lèi)主要編寫(xiě)組件模板需要用到的動(dòng)態(tài)數(shù)據(jù),如publicabstractclassLoginextendsAppTempletComponent{publicabstractvoidsetSource(IDatasource);protectedvoidrenderComponent(IMarkupWriterwriter,IRequestCyclecycle){super.renderComponent(writer,cycle);ιι1組件規(guī)范〈component-specificationclass="com.linkage.quickstart.jwcs.demo.DemoField^allow_body="no"allow-informal-parameters="no"><description>DemoField.</description)〈parametername=〃value〃direction=〃form〃type=//java.lang.String"required=//yes///>〈parametername=〃icon〃direction=〃in〃type=//java.lang.String〃default-value=^'/component/images/daochu.jpgJ〃/>〈parametername=〃disabled〃direction=〃in〃type=〃boolean〃required=〃no〃/>〈property—specificationname=〃name〃type=//java.lang.String〃/>〈property-specificationname=〃form〃type=//org.apache,tapestry.IForm〃/></component-specification)(2)根據(jù)業(yè)務(wù)組件抽取業(yè)務(wù)規(guī)則,形成業(yè)務(wù)規(guī)則庫(kù)。業(yè)務(wù)組件抽取的業(yè)務(wù)規(guī)則模型,幫組測(cè)試工程師在編寫(xiě)測(cè)試時(shí)發(fā)現(xiàn)規(guī)則、表示規(guī)則、管理規(guī)則、自動(dòng)執(zhí)行規(guī)則,建立規(guī)則運(yùn)行機(jī)制。業(yè)務(wù)組件抽取的業(yè)務(wù)規(guī)則分成三類(lèi)(1)變量之間關(guān)系約束規(guī)則(VariableRelationConstraintRuleVRCR)(2)變量屬性值強(qiáng)制性約束規(guī)則(AttributeMandatoryConstraintsRuleAMCR)(3)變量屬性值之間的關(guān)M^iMMM(AttributeRelationConstraintsRuleARCR)該三類(lèi)規(guī)則的描述如下VRCRl=(Id,Application,Task,Rulesetname,Table,Variable,Order,Level)VRCR2=(Id,Application,Task,Customed,Table,Variable,Value,Orderl,0rder2)VRCRl,VRCR2說(shuō)明該類(lèi)規(guī)則為VRCRl,VRCR2;Application指明該規(guī)則的適用的應(yīng)用;Task該規(guī)則有效的業(yè)務(wù)顆粒;Rulesetname該規(guī)則所屬的規(guī)則集名稱(chēng),應(yīng)用調(diào)用時(shí)使用;Table該規(guī)則操作的數(shù)據(jù)庫(kù)中的表格;Variable該規(guī)則中涉及的影響因素變量名;Order該規(guī)則中影響因素變量屬性值的順序,可以是降序,升序,隨機(jī)或用戶(hù)定制。如果值為用戶(hù)定制,用戶(hù)定制按照VRCR2描述形式進(jìn)行。其余元素含義和VRCRl相同,Value為用戶(hù)指定的屬性值,Orderl為指定屬性值的順序,Orderf為同一個(gè)Orderl中多個(gè)屬性值的順序;Level該規(guī)則涉及的影響因素變量在連接中的包含關(guān)系;變量屬性值強(qiáng)制性約束規(guī)則抽取對(duì)業(yè)務(wù)操作的業(yè)務(wù)對(duì)象實(shí)例集合強(qiáng)制要求滿足某些變量的屬性值。該規(guī)則的描述如下AMCR=(Application,Task,Rulesetname,Condition,Valid,Sequrence)AMCR說(shuō)明該類(lèi)規(guī)則為AMCR;Application指明該規(guī)則的適用的應(yīng)用;Task該規(guī)則有效的業(yè)務(wù)顆粒;Rulesetname該規(guī)則所屬的規(guī)則集;Condition強(qiáng)制性約束條件;Valid該規(guī)則的有效性;Sequence該規(guī)則的執(zhí)行順序。(3)確認(rèn)關(guān)鍵字,關(guān)鍵字驅(qū)動(dòng)一種獨(dú)立于應(yīng)用程序的自動(dòng)化框架,支持由不同序列或者多個(gè)不同路徑組成的測(cè)試,例如Windows的計(jì)算器的關(guān)鍵字權(quán)利要求1.基于業(yè)務(wù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試方法,其特征是由業(yè)務(wù)邏輯驅(qū)動(dòng),將被測(cè)軟件對(duì)象進(jìn)行業(yè)務(wù)組件化,軟件自動(dòng)化測(cè)試功能點(diǎn)細(xì)化到業(yè)務(wù)組件,并形成業(yè)務(wù)組件化的測(cè)試用方法;具體業(yè)務(wù)組件化實(shí)施方案分成單一型組件和組合型組件,其中單一型組件是基于最小粒度的組件,該類(lèi)型的組件的HTML代碼在組件類(lèi)中編寫(xiě)以組件只包含組件類(lèi)和組件規(guī)范;組合型組件;基于一塊頁(yè)面區(qū)域使用組合型組件,該類(lèi)型的組件的HTML代碼在組件模板中實(shí)現(xiàn),組合型組件包含組件模板、組件類(lèi)、組件規(guī)范,形成業(yè)務(wù)組件庫(kù);采用軟件自動(dòng)化測(cè)試工具對(duì)業(yè)務(wù)組件庫(kù)的組件進(jìn)行測(cè)試,用關(guān)鍵字映射表形式將測(cè)試邏輯封裝在數(shù)據(jù)文件中,關(guān)鍵字包括三類(lèi)被操作對(duì)象(Item)、操作(Operation)和值(value);通過(guò)軟件自動(dòng)化測(cè)試工具對(duì)關(guān)鍵字進(jìn)行解釋、使用,以實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)的軟件自動(dòng)化測(cè)試;根據(jù)業(yè)務(wù)組件抽取業(yè)務(wù)規(guī)則,形成業(yè)務(wù)規(guī)則庫(kù),業(yè)務(wù)規(guī)則庫(kù)通過(guò)測(cè)試用例和測(cè)試數(shù)據(jù)用自動(dòng)化測(cè)試工具進(jìn)行測(cè)試;自動(dòng)化測(cè)試工具調(diào)用對(duì)象函數(shù)庫(kù)獲得關(guān)鍵字映射表,業(yè)務(wù)組件庫(kù)通過(guò)關(guān)鍵字映射表用自動(dòng)化測(cè)試工具進(jìn)行測(cè)試。2.根據(jù)權(quán)利要求1所述的基于業(yè)務(wù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試方法,其特征是對(duì)象函數(shù)是對(duì)業(yè)務(wù)組件操作指令的函數(shù),一個(gè)業(yè)務(wù)組件對(duì)象的類(lèi)型對(duì)應(yīng)一個(gè)組件的對(duì)象函數(shù)庫(kù);軟件自動(dòng)化測(cè)試工具提供了這樣的函數(shù),在其中加入額外的代碼來(lái)檢測(cè)錯(cuò)誤、糾正錯(cuò)誤和幫助同步,這類(lèi)代碼是實(shí)現(xiàn)無(wú)人職守的軟件自動(dòng)化測(cè)試所必需的;對(duì)象函數(shù)(庫(kù))是在應(yīng)用業(yè)務(wù)組件庫(kù)和自動(dòng)化測(cè)試工具之間提供了一個(gè)隔離層。3.根據(jù)權(quán)利要求1所述的基于業(yè)務(wù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試方法,其特征是業(yè)務(wù)組件抽取,幫助測(cè)試工程師在編寫(xiě)測(cè)試時(shí)發(fā)現(xiàn)規(guī)則、表示規(guī)則、管理規(guī)則、自動(dòng)執(zhí)行規(guī)則,建立規(guī)則運(yùn)行機(jī)制;業(yè)務(wù)組件抽取的業(yè)務(wù)規(guī)則分成(1)變量之間關(guān)系約束規(guī)則,(2)變量屬性值強(qiáng)制性約束規(guī)則,(3)變量屬性值之間的關(guān)系約束規(guī)則。全文摘要基于業(yè)務(wù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試方法,由業(yè)務(wù)邏輯驅(qū)動(dòng),將被測(cè)軟件對(duì)象進(jìn)行業(yè)務(wù)組件化,軟件自動(dòng)化測(cè)試功能點(diǎn)細(xì)化到業(yè)務(wù)組件,并形成業(yè)務(wù)組件化的測(cè)試用方法;單一型組件是基于最小粒度的組件、并使用單一型組件;組合型組件,基于一塊頁(yè)面區(qū)域使用組合型組件,該類(lèi)型的組件的HTML代碼在組件模板中實(shí)現(xiàn),組合型組件包含組件模板、組件類(lèi)、組件規(guī)范,形成業(yè)務(wù)組件庫(kù);采用軟件自動(dòng)化測(cè)試工具對(duì)業(yè)務(wù)組件庫(kù)的組件進(jìn)行測(cè)試,用關(guān)鍵字映射表形式將測(cè)試邏輯封裝在數(shù)據(jù)文件中;通過(guò)軟件自動(dòng)化測(cè)試工具對(duì)關(guān)鍵字進(jìn)行解釋、使用;自動(dòng)化測(cè)試工具調(diào)用對(duì)象函數(shù)庫(kù)獲得關(guān)鍵字映射表,業(yè)務(wù)組件庫(kù)通過(guò)關(guān)鍵字映射表用自動(dòng)化測(cè)試工具進(jìn)行測(cè)試。文檔編號(hào)G06F11/36GK102043716SQ20101060431公開(kāi)日2011年5月4日申請(qǐng)日期2010年12月24日優(yōu)先權(quán)日2010年12月24日發(fā)明者丁慶平,朱玉東,王娟,黃錫偉申請(qǐng)人:南京聯(lián)創(chuàng)科技集團(tuán)股份有限公司