本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,具體地說(shuō)是一種實(shí)用性強(qiáng)、適用于軟件敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試方法及模型。
背景技術(shù):
軟件敏捷開(kāi)發(fā)是以用戶需求為進(jìn)化核心,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開(kāi)發(fā)。在敏捷開(kāi)發(fā)過(guò)程中,軟件項(xiàng)目在構(gòu)建初期被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過(guò)測(cè)試,具備可視、可集成和可運(yùn)行的特征。換言之,就是把一個(gè)大項(xiàng)目分成為多個(gè)項(xiàng)目聯(lián)系,但也可以獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成。在此過(guò)程中,軟件一直處于可使用狀態(tài)。
其中,自動(dòng)化測(cè)試是敏捷開(kāi)發(fā)中很重要的一個(gè)環(huán)節(jié),因?yàn)槊艚蓍_(kāi)發(fā)模式一般會(huì)在每天提交開(kāi)發(fā)的代碼到代碼版本控制系統(tǒng),為保證所有的代碼都是正確的,開(kāi)發(fā)團(tuán)隊(duì)通常都會(huì)使用自動(dòng)化測(cè)試手段來(lái)進(jìn)行回歸測(cè)試。自動(dòng)化測(cè)試 是敏捷開(kāi)發(fā)的基礎(chǔ),如果缺少自動(dòng)化測(cè)試,那么敏捷測(cè)試通常會(huì)失敗,因?yàn)轫?xiàng)目本身無(wú)法控制持續(xù)集成過(guò)程中出現(xiàn)的代碼修改風(fēng)險(xiǎn),也無(wú)法對(duì)項(xiàng)目的不斷重構(gòu)提供快速測(cè)試支持,勢(shì)必會(huì)引發(fā)項(xiàng)目延期、質(zhì)量下降等一系列問(wèn)題,也無(wú)法實(shí)現(xiàn)小步快跑的目標(biāo)。
為此,提出一種適用于敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試方法及模型,通過(guò)合理的測(cè)試人員分工、適時(shí)的自動(dòng)化介入、不同層級(jí)的自動(dòng)化測(cè)試,降低持續(xù)集成過(guò)程中代碼修改風(fēng)險(xiǎn),為項(xiàng)目的不斷重構(gòu)提供快速的測(cè)試支持。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種實(shí)用性強(qiáng)、適用于軟件敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試方法及模型。
一種適用于敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試方法,包括以下步驟,
需求分析階段,進(jìn)行項(xiàng)目需求的解讀;
測(cè)試用例設(shè)計(jì)階段,根據(jù)測(cè)試需求,設(shè)計(jì)測(cè)試用例,并輸出給以下階段;
測(cè)試框架設(shè)計(jì)階段,編寫(xiě)自動(dòng)化測(cè)試框架;
腳本編寫(xiě)階段,根據(jù)測(cè)試用例,編寫(xiě)測(cè)試腳本;
腳本執(zhí)行階段,進(jìn)行實(shí)際的測(cè)試執(zhí)行。
所述需求分析階段是指在進(jìn)行軟件敏捷開(kāi)發(fā)前,依據(jù)項(xiàng)目需求信息,總結(jié)提取出測(cè)試需求,為測(cè)試用例的設(shè)計(jì)提供基礎(chǔ),該階段將項(xiàng)目需求轉(zhuǎn)化為測(cè)試需求,并控制變更及為其他階段的需求支持,防止測(cè)試用例的過(guò)度設(shè)計(jì)。
所述軟件敏捷開(kāi)發(fā)順序包括單元測(cè)試、接口測(cè)試和UI測(cè)試,其中單元測(cè)試用于測(cè)試類和方法;接口測(cè)試涉及到模塊間代碼,即項(xiàng)目集成測(cè)試;UI測(cè)試則采用自動(dòng)化腳本程序?qū)崿F(xiàn),該單元測(cè)試、接口測(cè)試和UI測(cè)試均包括測(cè)試用例設(shè)計(jì)階段、測(cè)試框架設(shè)計(jì)階段、腳本編寫(xiě)階段、腳本執(zhí)行階段。
所述單元測(cè)試包括以下步驟:
單元測(cè)試用例設(shè)計(jì),
首先編寫(xiě)單元測(cè)試用例;
然后編寫(xiě)單元測(cè)試框架,此框架在不同的迭代版本間復(fù)用,或在項(xiàng)目之間復(fù)用;
根據(jù)測(cè)試用例,在自動(dòng)化框架下進(jìn)行自動(dòng)化單元測(cè)試腳本的編寫(xiě),此腳本可在不同的迭代版本間復(fù)用;
依據(jù)測(cè)試腳本進(jìn)行項(xiàng)目代碼的編寫(xiě),
對(duì)腳本執(zhí)行產(chǎn)生的bug進(jìn)行修復(fù)。
在單元測(cè)試過(guò)程中,測(cè)試腳本的編寫(xiě)是指只編寫(xiě)讓測(cè)試通過(guò)的腳本,防止過(guò)度設(shè)計(jì),在腳本執(zhí)行過(guò)程中產(chǎn)生的bug在修復(fù)后,編寫(xiě)自動(dòng)化腳本進(jìn)行驗(yàn)證,直至單元測(cè)試通過(guò)。
所述接口測(cè)試的過(guò)程為:
首先進(jìn)行項(xiàng)目的集成,然后編寫(xiě)集成測(cè)試框架,此框架在迭代版本間復(fù)用,或在項(xiàng)目間復(fù)用;
然后依據(jù)測(cè)試需求,編寫(xiě)集成測(cè)試用例,并基于此進(jìn)行測(cè)試腳本開(kāi)發(fā);
對(duì)測(cè)試腳本執(zhí)行產(chǎn)生的bug進(jìn)行修復(fù),并編寫(xiě)自動(dòng)化腳本進(jìn)行驗(yàn)證,直至集成測(cè)試通過(guò)。
所述UI測(cè)試的過(guò)程為:
首先依據(jù)測(cè)試需求,進(jìn)行UI測(cè)試用例,即系統(tǒng)測(cè)試用例的設(shè)計(jì);
然后進(jìn)行UI自動(dòng)化測(cè)試框架的編寫(xiě),此框架可在版本及項(xiàng)目間復(fù)用;
依據(jù)測(cè)試用例在框架下進(jìn)行UI自動(dòng)化測(cè)試腳本的編寫(xiě),此腳本可在迭代版本及項(xiàng)目間復(fù)用;
執(zhí)行測(cè)試腳本,并將產(chǎn)生的bug進(jìn)行修復(fù)。
在UI測(cè)試后,還包括手工測(cè)試階段,即手動(dòng)進(jìn)行系統(tǒng)測(cè)試,發(fā)現(xiàn)該UI測(cè)試過(guò)程中自動(dòng)化測(cè)試不能發(fā)現(xiàn)的新bug。
一種適用于敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試模型,包括,
需求分析模塊,用于根據(jù)敏捷開(kāi)發(fā)的項(xiàng)目需求,提取出測(cè)試需求;
單元測(cè)試模塊,用于根據(jù)測(cè)試需求,進(jìn)行軟件的類和方法的測(cè)試;
接口測(cè)試模塊,將所有軟件項(xiàng)目需求集成后,進(jìn)行測(cè)試;
UI測(cè)試模塊,自動(dòng)化實(shí)現(xiàn)軟件UI測(cè)試。
所述單元測(cè)試模塊包括:
單元測(cè)試用例部分,用于根據(jù)測(cè)試需求確定測(cè)試用例;
單元測(cè)試框架部分,提供自動(dòng)化測(cè)試框架;
單元腳本編寫(xiě)部分,用于根據(jù)測(cè)試用例編寫(xiě)測(cè)試腳本;
單元腳本執(zhí)行部分,進(jìn)行實(shí)際的測(cè)試執(zhí)行;
所述接口測(cè)試模塊包括:
接口測(cè)試用例部分,用于根據(jù)測(cè)試需求確定測(cè)試用例;
接口測(cè)試框架部分,編寫(xiě)自動(dòng)化測(cè)試框架;
接口腳本編寫(xiě)部分,用于根據(jù)測(cè)試用例編寫(xiě)測(cè)試腳本;
接口腳本執(zhí)行部分,進(jìn)行實(shí)際的測(cè)試執(zhí)行;
所述UI測(cè)試模塊包括:
UI測(cè)試用例部分,用于根據(jù)測(cè)試需求確定測(cè)試用例;
UI測(cè)試框架部分,編寫(xiě)自動(dòng)化測(cè)試框架;
UI腳本編寫(xiě)部分,用于根據(jù)測(cè)試用例編寫(xiě)測(cè)試腳本;
UI腳本執(zhí)行部分,進(jìn)行實(shí)際的測(cè)試執(zhí)行。
本發(fā)明的一種適用于軟件敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試方法及模型,具有以下優(yōu)點(diǎn):
該發(fā)明的一種適用于軟件敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試方法及模型,強(qiáng)調(diào)項(xiàng)目參與人員的角色分工,細(xì)分測(cè)試人員角色,各司其職,測(cè)試驅(qū)動(dòng)開(kāi)發(fā);明確敏捷開(kāi)發(fā)中測(cè)試自動(dòng)化的層級(jí),從不同粒度保證自動(dòng)化測(cè)試的質(zhì)量;明確自動(dòng)化參與敏捷開(kāi)發(fā)的時(shí)機(jī),及加入自動(dòng)化測(cè)試的敏捷開(kāi)發(fā)流程,為敏捷開(kāi)發(fā)測(cè)試提供流程上的支持,實(shí)用性強(qiáng),易于實(shí)現(xiàn),易于推廣。
附圖說(shuō)明
為了更清楚的說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
附圖1為本發(fā)明的方法流程圖。
附圖2為本發(fā)明的模型結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如附圖1所示,一種適用于敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試方法,涉及到軟件測(cè)試領(lǐng)域,主要是構(gòu)建面向軟件敏捷開(kāi)發(fā)的軟件自動(dòng)化測(cè)試,從三個(gè)不同的測(cè)試層級(jí)進(jìn)行軟件的自動(dòng)化測(cè)試,并依據(jù)收益確定投入占比;合理分工測(cè)試人員,測(cè)試驅(qū)動(dòng)開(kāi)發(fā),避免過(guò)度設(shè)計(jì),提高開(kāi)發(fā)和測(cè)試效率。
包括以下步驟,
需求分析階段,進(jìn)行項(xiàng)目需求的解讀;
測(cè)試用例設(shè)計(jì)階段,根據(jù)測(cè)試需求,設(shè)計(jì)測(cè)試用例,并輸出給以下階段;
測(cè)試框架設(shè)計(jì)階段,編寫(xiě)自動(dòng)化測(cè)試框架;
腳本編寫(xiě)階段,根據(jù)測(cè)試用例,編寫(xiě)測(cè)試腳本;
腳本執(zhí)行階段,進(jìn)行實(shí)際的測(cè)試執(zhí)行。
所述需求分析階段是指在進(jìn)行軟件敏捷開(kāi)發(fā)前,依據(jù)項(xiàng)目需求信息,總結(jié)提取出測(cè)試需求,為測(cè)試用例的設(shè)計(jì)提供基礎(chǔ),該階段將項(xiàng)目需求轉(zhuǎn)化為測(cè)試需求,并控制變更及為其他階段的需求支持,防止測(cè)試用例的過(guò)度設(shè)計(jì)。
所述軟件敏捷開(kāi)發(fā)順序包括單元測(cè)試、接口測(cè)試和UI測(cè)試,其中單元測(cè)試用于測(cè)試類和方法;接口測(cè)試涉及到模塊間代碼,即項(xiàng)目集成測(cè)試;UI測(cè)試則采用自動(dòng)化腳本程序?qū)崿F(xiàn),該單元測(cè)試、接口測(cè)試和UI測(cè)試均包括測(cè)試用例設(shè)計(jì)階段、測(cè)試框架設(shè)計(jì)階段、腳本編寫(xiě)階段、腳本執(zhí)行階段。
所述單元測(cè)試包括以下步驟:
單元測(cè)試用例設(shè)計(jì),
首先編寫(xiě)單元測(cè)試用例;
然后編寫(xiě)單元測(cè)試框架,此框架在不同的迭代版本間復(fù)用,或在項(xiàng)目之間復(fù)用;
根據(jù)測(cè)試用例,在自動(dòng)化框架下進(jìn)行自動(dòng)化單元測(cè)試腳本的編寫(xiě),此腳本可在不同的迭代版本間復(fù)用;
依據(jù)測(cè)試腳本進(jìn)行項(xiàng)目代碼的編寫(xiě),
對(duì)腳本執(zhí)行產(chǎn)生的bug進(jìn)行修復(fù)。
在單元測(cè)試過(guò)程中,測(cè)試腳本的編寫(xiě)是指只編寫(xiě)讓測(cè)試通過(guò)的腳本,防止過(guò)度設(shè)計(jì),在腳本執(zhí)行過(guò)程中產(chǎn)生的bug在修復(fù)后,編寫(xiě)自動(dòng)化腳本進(jìn)行驗(yàn)證,直至單元測(cè)試通過(guò)。
所述接口測(cè)試的過(guò)程為:
首先進(jìn)行項(xiàng)目的集成,然后編寫(xiě)集成測(cè)試框架,此框架在迭代版本間復(fù)用,或在項(xiàng)目間復(fù)用;
然后依據(jù)測(cè)試需求,編寫(xiě)集成測(cè)試用例,并基于此進(jìn)行測(cè)試腳本開(kāi)發(fā);
對(duì)測(cè)試腳本執(zhí)行產(chǎn)生的bug進(jìn)行修復(fù),并編寫(xiě)自動(dòng)化腳本進(jìn)行驗(yàn)證,直至集成測(cè)試通過(guò)。
所述UI測(cè)試的過(guò)程為:
首先依據(jù)測(cè)試需求,進(jìn)行UI測(cè)試用例,即系統(tǒng)測(cè)試用例的設(shè)計(jì);
然后進(jìn)行UI自動(dòng)化測(cè)試框架的編寫(xiě),此框架可在版本及項(xiàng)目間復(fù)用;
依據(jù)測(cè)試用例在框架下進(jìn)行UI自動(dòng)化測(cè)試腳本的編寫(xiě),此腳本可在迭代版本及項(xiàng)目間復(fù)用;
執(zhí)行測(cè)試腳本,并將產(chǎn)生的bug進(jìn)行修復(fù)。
在實(shí)際的測(cè)試中,UI自動(dòng)化測(cè)試需要配合手工測(cè)試,因?yàn)樽詣?dòng)化測(cè)試不能發(fā)現(xiàn)新的bug ,只用于驗(yàn)證沒(méi)有產(chǎn)生新的bug
由此,該迭代版本的敏捷開(kāi)發(fā)&測(cè)試結(jié)束,該模型強(qiáng)調(diào)角色分工參與、不同層次的自動(dòng)化,并明確了自動(dòng)化參與項(xiàng)目的時(shí)機(jī),為項(xiàng)目的成功敏捷助力。
如附圖2所示,一種適用于敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試模型,包括,
需求分析模塊,用于根據(jù)敏捷開(kāi)發(fā)的項(xiàng)目需求,提取出測(cè)試需求;
單元測(cè)試模塊,用于根據(jù)測(cè)試需求,進(jìn)行軟件的類和方法的測(cè)試;
接口測(cè)試模塊,將所有軟件項(xiàng)目需求集成后,進(jìn)行測(cè)試;
UI測(cè)試模塊,自動(dòng)化實(shí)現(xiàn)軟件UI測(cè)試。
所述單元測(cè)試模塊包括:
單元測(cè)試用例部分,用于根據(jù)測(cè)試需求確定測(cè)試用例;
單元測(cè)試框架部分,提供自動(dòng)化測(cè)試框架;
單元腳本編寫(xiě)部分,用于根據(jù)測(cè)試用例編寫(xiě)測(cè)試腳本;
單元腳本執(zhí)行部分,進(jìn)行實(shí)際的測(cè)試執(zhí)行;
所述接口測(cè)試模塊包括:
接口測(cè)試用例部分,用于根據(jù)測(cè)試需求確定測(cè)試用例;
接口測(cè)試框架部分,編寫(xiě)自動(dòng)化測(cè)試框架;
接口腳本編寫(xiě)部分,用于根據(jù)測(cè)試用例編寫(xiě)測(cè)試腳本;
接口腳本執(zhí)行部分,進(jìn)行實(shí)際的測(cè)試執(zhí)行;
所述UI測(cè)試模塊包括:
UI測(cè)試用例部分,用于根據(jù)測(cè)試需求確定測(cè)試用例;
UI測(cè)試框架部分,編寫(xiě)自動(dòng)化測(cè)試框架;
UI腳本編寫(xiě)部分,用于根據(jù)測(cè)試用例編寫(xiě)測(cè)試腳本;
UI腳本執(zhí)行部分,進(jìn)行實(shí)際的測(cè)試執(zhí)行。
在該模型中,適用于敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試類型包括:?jiǎn)卧獪y(cè)試、接口測(cè)試、UI測(cè)試,并依據(jù)收益大小,提出投入占比。單元測(cè)試的顆粒度是最小的,測(cè)試范圍集中在類和方法,測(cè)試用例編寫(xiě)簡(jiǎn)單,問(wèn)題定位迅速,其收益最大。接口測(cè)試涉及到模塊間代碼,收益次之,UI測(cè)試收益最小。該模型鼓勵(lì)在單元測(cè)試和接口測(cè)試投入較多的資源,UI測(cè)試層級(jí)實(shí)現(xiàn)一定程度的自動(dòng)化。建議投入比例為單元測(cè)試:接口測(cè)試:UI測(cè)試=5:3:2。
模型中涉及到的需求分析模塊、單元測(cè)試模塊、接口測(cè)試模塊、UI測(cè)試模塊中的各個(gè)部分可以由不同測(cè)試人員控制實(shí)現(xiàn),在測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的敏捷開(kāi)發(fā)模式下,測(cè)試人員需要透徹的掌握項(xiàng)目需求,進(jìn)而設(shè)計(jì)測(cè)試用例及測(cè)試腳本。為此,如果模型中各個(gè)模塊的實(shí)現(xiàn)基于測(cè)試人員實(shí)現(xiàn),則測(cè)試人員的角色包括:需求分析人員、測(cè)試用例設(shè)計(jì)人員、測(cè)試框架設(shè)計(jì)人員、腳本編寫(xiě)人員,腳本執(zhí)行人員、手工測(cè)試人員。其中需求分析人員負(fù)責(zé)項(xiàng)目需求的解讀,將項(xiàng)目需求轉(zhuǎn)化為測(cè)試需求,并控制變更及為其他角色的需求支持,防止測(cè)試用例的過(guò)度設(shè)計(jì);測(cè)試用例設(shè)計(jì)人員依據(jù)測(cè)試需求,設(shè)計(jì)測(cè)試用例,輸出給測(cè)試腳本編寫(xiě)人員;測(cè)試框架設(shè)計(jì)人員,負(fù)責(zé)編寫(xiě)自動(dòng)化測(cè)試框架;測(cè)試腳本編寫(xiě)人員負(fù)責(zé)依據(jù)測(cè)試用例,編寫(xiě)測(cè)試腳本,防止開(kāi)發(fā)腳本的過(guò)度設(shè)計(jì);腳本執(zhí)行人員負(fù)責(zé)實(shí)際的測(cè)試執(zhí)行。
本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。
以上對(duì)本發(fā)明所提供的一種適用于軟件敏捷開(kāi)發(fā)的自動(dòng)化測(cè)試方法及模型進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。