• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于領(lǐng)域驅(qū)動(dòng)的測(cè)試用例設(shè)計(jì)開發(fā)方法研究

    2016-01-02 09:18:47胡繼東鞠煒剛
    關(guān)鍵詞:關(guān)鍵字測(cè)試用例實(shí)例

    胡繼東,鞠煒剛

    (中興通訊南京研究所,江蘇南京 210012)

    基于領(lǐng)域驅(qū)動(dòng)的測(cè)試用例設(shè)計(jì)開發(fā)方法研究

    胡繼東,鞠煒剛

    (中興通訊南京研究所,江蘇南京 210012)

    隨著軟件產(chǎn)品的交付周期越來(lái)越短,敏捷研發(fā)模式的應(yīng)用范圍更加廣泛。為解決敏捷團(tuán)隊(duì)中測(cè)試用例設(shè)計(jì)、開發(fā)不能滿足產(chǎn)品持續(xù)快速交付的問(wèn)題,采用領(lǐng)域驅(qū)動(dòng)方法,從需求特性出發(fā),采用實(shí)例化需求的方法設(shè)計(jì)測(cè)試用例,然后對(duì)被測(cè)領(lǐng)域進(jìn)行建模,通過(guò)領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型分析用領(lǐng)域語(yǔ)言描述測(cè)試用例,對(duì)領(lǐng)域?qū)ο竽P瓦M(jìn)行分析,采用面向?qū)ο笤O(shè)計(jì)、開發(fā),通過(guò)不斷演進(jìn)和重構(gòu),迭代地完成測(cè)試用例的開發(fā)。一方面使得測(cè)試用例的組織、設(shè)計(jì)、開發(fā)更加有效,提高了測(cè)試用例的開發(fā)和維護(hù)效率,測(cè)試用例更加易于理解、清晰簡(jiǎn)潔,能夠通過(guò)重構(gòu)快速應(yīng)對(duì)變化;另一方面可以采用ATTD的方法來(lái)驅(qū)動(dòng)產(chǎn)品的開發(fā)。該方法在通信系統(tǒng)測(cè)試中得到了應(yīng)用推廣,取得了很好的效果。

    測(cè)試用例;領(lǐng)域驅(qū)動(dòng);實(shí)例化需求;領(lǐng)域建模;面向?qū)ο?重構(gòu)

    0 引言

    隨著市場(chǎng)競(jìng)爭(zhēng)的加劇,軟件產(chǎn)品需要高質(zhì)量的持續(xù)快速交付,越來(lái)越多的團(tuán)隊(duì)采用敏捷[1]研發(fā)模式取得了不錯(cuò)的效果,但隨著軟件產(chǎn)品的需求特性越來(lái)越復(fù)雜,傳統(tǒng)的測(cè)試用例設(shè)計(jì)、開發(fā)方法越來(lái)越不能適應(yīng)敏捷的要求,需要采用新的技術(shù)和方法。

    文中提出了一種基于領(lǐng)域驅(qū)動(dòng)的測(cè)試用例設(shè)計(jì)開發(fā)方法,該方法不僅有助于提高敏捷測(cè)試的效率,同時(shí)也可以驅(qū)動(dòng)產(chǎn)品的需求特性開發(fā),繼而很好地滿足敏捷測(cè)試對(duì)持續(xù)快速質(zhì)量的保證。

    1 傳統(tǒng)測(cè)試用例設(shè)計(jì)開發(fā)

    在敏捷研發(fā)模式中將測(cè)試進(jìn)行前移,做到早發(fā)現(xiàn)、早解決故障,提高了效率;但測(cè)試用例設(shè)計(jì)、開發(fā)一直采用傳統(tǒng)方式[2]。

    對(duì)于測(cè)試用例設(shè)計(jì),在需求分析完成后才開始在迭代周期中進(jìn)行,需求分析和測(cè)試設(shè)計(jì)間存在拋接,不能滿足快速測(cè)試的要求,也很難應(yīng)對(duì)需求變化。

    對(duì)于測(cè)試用例開發(fā),用例腳本由復(fù)雜的流程和實(shí)現(xiàn)細(xì)節(jié)表示,存在以下問(wèn)題:

    (1)測(cè)試用例腳本細(xì)節(jié)眾多,編寫速度慢,效率低,可讀性差。

    (2)一旦實(shí)現(xiàn)變化就需要修改所有相關(guān)用例腳本,不能快速應(yīng)對(duì)變化。

    針對(duì)上述測(cè)試設(shè)計(jì)、開發(fā)存在的問(wèn)題,需要一種新的測(cè)試用例設(shè)計(jì)方法來(lái)解決,為此開發(fā)了基于領(lǐng)域驅(qū)動(dòng)的測(cè)試用例設(shè)計(jì)方法,并在通信系統(tǒng)產(chǎn)品的測(cè)試中進(jìn)行了有效應(yīng)用。

    2 基于領(lǐng)域驅(qū)動(dòng)的測(cè)試用例設(shè)計(jì)開發(fā)

    2.1 理念與實(shí)踐全景

    基于領(lǐng)域驅(qū)動(dòng)的測(cè)試用例設(shè)計(jì)、開發(fā)的理念與實(shí)踐全景圖如圖1所示。

    全景圖縱向分為目標(biāo)和理念以及方法、實(shí)踐、工具兩大部分,橫向分為測(cè)試用例設(shè)計(jì)和測(cè)試用例開發(fā)兩大階段。其目標(biāo)是在產(chǎn)品持續(xù)快速交付過(guò)程中保證產(chǎn)品質(zhì)量,其核心理念是需求和用例設(shè)計(jì)統(tǒng)一,由領(lǐng)域來(lái)驅(qū)動(dòng)測(cè)試用例的設(shè)計(jì)和開發(fā)。為了達(dá)成目標(biāo),在核心理念的指導(dǎo)下,采用以下方法、實(shí)踐和工具:

    (1)在測(cè)試用例設(shè)計(jì)階段,采用需求實(shí)例化方法。依次采用定系統(tǒng)、用戶目的分析、劃分場(chǎng)景和功能分析等技術(shù)實(shí)踐,使用基于思維導(dǎo)圖的工具進(jìn)行具體設(shè)計(jì),UML[3-4]作為輔助工具進(jìn)行分析。

    (2)在測(cè)試用例開發(fā)階段,采用領(lǐng)域建模和用例/關(guān)鍵字開發(fā)方法[5-6]。其中,領(lǐng)域建模采用領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型分析和領(lǐng)域?qū)ο竽P头治鰞蓚€(gè)核心的分析方法;用例/關(guān)鍵字開發(fā)采用模型驅(qū)動(dòng)設(shè)計(jì)、TDD[7]和面向?qū)ο蟮燃夹g(shù)實(shí)踐。

    (3)在測(cè)試用例設(shè)計(jì)和開發(fā)整個(gè)過(guò)程中,隨著需求特性的增加采用演進(jìn)式設(shè)計(jì),不斷進(jìn)行重構(gòu)和優(yōu)化。結(jié)對(duì)是一個(gè)重要的技術(shù)實(shí)踐,在測(cè)試用例設(shè)計(jì)和開發(fā)過(guò)程中用戶、BA、測(cè)試SE、QA進(jìn)行結(jié)對(duì),測(cè)試建模專家全程參與。

    2.2 實(shí)例化需求

    實(shí)例化需求[8]是需求分析的一種方法,它的分析過(guò)程是以用例驅(qū)動(dòng)、以場(chǎng)景為中心、迭代和增量的,并且采用聚焦“用戶目的”和“使用場(chǎng)景”的描述方式。

    在傳統(tǒng)分析方式中,對(duì)需求過(guò)早的抽象導(dǎo)致有價(jià)值信息的丟失,可能會(huì)導(dǎo)致功能放大,方案過(guò)于復(fù)雜,不利于形成共識(shí)和傳遞,采用實(shí)例化方法后實(shí)例成為需求傳遞的橋梁,在規(guī)劃、開發(fā)和測(cè)試間形成統(tǒng)一語(yǔ)言,也是對(duì)有效性和正確性驗(yàn)收的標(biāo)準(zhǔn)。

    從測(cè)試角度來(lái)看,采用實(shí)例化需求,測(cè)試用例的設(shè)計(jì)可以和需求分析過(guò)程有效統(tǒng)一起來(lái),一方面測(cè)試設(shè)計(jì)提前,需求實(shí)例直接就是驗(yàn)收測(cè)試用例,另一方面可以很好地適應(yīng)敏捷迭代中需求的變化。

    2.3 領(lǐng)域建模

    領(lǐng)域建模從測(cè)試系統(tǒng)的領(lǐng)域模型出發(fā),從測(cè)試角度進(jìn)行建模,逐步分析出領(lǐng)域的測(cè)試模型,是測(cè)試用例開發(fā)重要的基礎(chǔ)。

    在建模時(shí)應(yīng)通過(guò)研討發(fā)現(xiàn)領(lǐng)域模型的關(guān)鍵性概念和元素以及描述它們的通用語(yǔ)言,這種語(yǔ)言應(yīng)該具有一致性,必須消除歧義和混亂,并且能夠清晰準(zhǔn)確地交流[9-10]。

    領(lǐng)域建模首先要從測(cè)試用例出發(fā)進(jìn)行領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型分析,逐層分析出測(cè)試領(lǐng)域的關(guān)鍵字結(jié)構(gòu)模型樹,然后在此基礎(chǔ)上逐步分析出領(lǐng)域?qū)ο竽P?,整個(gè)分析過(guò)程是演進(jìn)式和不斷優(yōu)化的。

    2.4 演進(jìn)式設(shè)計(jì)和重構(gòu)

    需求特性是不斷增長(zhǎng)和變化的,測(cè)試用例設(shè)計(jì)和開發(fā)也需要進(jìn)行演進(jìn)式設(shè)計(jì)和重構(gòu)[11]。其中,領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型樹是隨著測(cè)試用例的增加演進(jìn)式生長(zhǎng)的,而領(lǐng)域?qū)ο竽P蛣t隨著關(guān)鍵字結(jié)構(gòu)模型樹的生長(zhǎng)而演進(jìn),領(lǐng)域?qū)ο竽P驮诮r(shí)切勿大而全。

    3 用實(shí)例化需求方法進(jìn)行測(cè)試用例設(shè)計(jì)

    采用實(shí)例化需求方法,測(cè)試設(shè)計(jì)提前,和需求分析融合,需求實(shí)例直接就是驗(yàn)收測(cè)試用例,同時(shí)隨著迭代過(guò)程中需求發(fā)生變化,用例直接適應(yīng)這種變化。實(shí)例化需求主要由用戶、BA、測(cè)試SE、QA一起結(jié)對(duì)完成,建模人員和DEV參與,在這個(gè)過(guò)程中用戶是領(lǐng)域?qū)<?。?shí)例化需求的基本流程如圖2所示。

    需求是用戶為解決問(wèn)題或達(dá)成業(yè)務(wù)目標(biāo),要求系統(tǒng)提供的功能或滿足的非功能性約束。需求有三個(gè)重要因素:用戶目的、系統(tǒng)(承接者)和功能要求。因此需求實(shí)例化基本流程也是圍繞這三個(gè)要素展開,依次是定系統(tǒng)、用戶目的分析(找用戶、問(wèn)目的)、功能要求分析(畫場(chǎng)景、設(shè)功能),其中在功能要求分析中要確定驗(yàn)收準(zhǔn)則和用戶接口定義。

    3.1 定系統(tǒng)

    實(shí)例化需求的第一步是定系統(tǒng)。首先用戶介紹背景,包括要解決的基本問(wèn)題和達(dá)成的總體業(yè)務(wù)目標(biāo),然后結(jié)對(duì)繪制系統(tǒng)架構(gòu),包括物理實(shí)體關(guān)系和邏輯結(jié)構(gòu)以及新舊差異。然后劃定系統(tǒng)邊界,這里系統(tǒng)邊界是指能力邊界而非物理邊界,即待開發(fā)、測(cè)試的系統(tǒng),并達(dá)成一致共識(shí)。

    3.2 用戶目的分析

    實(shí)例化需求的第二步是用戶目的分析,分為找用戶和問(wèn)目的兩個(gè)步驟。

    首先是找用戶,用戶是外部使用系統(tǒng)的角色,具有以下三個(gè)重要特征:

    (1)系統(tǒng)之外通過(guò)系統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物,可以是人、設(shè)備和系統(tǒng);

    (2)是系統(tǒng)行為和流程的觸發(fā)者; (3)必須是直接使用系統(tǒng)的用戶。

    對(duì)于一些系統(tǒng)可以用干系人法直接找到用戶,對(duì)于較復(fù)雜的新領(lǐng)域系統(tǒng),找用戶可以采用流程法,畫出各種業(yè)務(wù)流程,從流程中尋找相關(guān)的用戶,從用戶角度來(lái)畫,通過(guò)外部交互體現(xiàn)輸入、輸出。

    然后是問(wèn)目的,可以從Want(表象)、Need(背后的動(dòng)機(jī)和訴求),由淺及深兩個(gè)層次來(lái)探尋用戶目的。其中Want層次目的不少是易變化的,可能是以解決方案形式呈現(xiàn)的,需要通過(guò)挖掘探尋來(lái)理解Need層次背后的動(dòng)機(jī)和訴求。

    尋找目的可以從業(yè)務(wù)目的、管理目的和維護(hù)目的三個(gè)維度進(jìn)行,其中業(yè)務(wù)目的是關(guān)注業(yè)務(wù)目標(biāo)本身,管理目的是關(guān)注業(yè)務(wù)目標(biāo)達(dá)成的過(guò)程,而維護(hù)目的則關(guān)注的是業(yè)務(wù)目標(biāo)的過(guò)程評(píng)估與監(jiān)控。對(duì)每個(gè)維度又可以從關(guān)注點(diǎn)和擔(dān)憂點(diǎn)兩個(gè)角度來(lái)分析,關(guān)注點(diǎn)是希望通過(guò)系統(tǒng)解決的問(wèn)題,而擔(dān)憂點(diǎn)是擔(dān)憂系統(tǒng)會(huì)帶來(lái)的影響,避免出現(xiàn)的問(wèn)題。

    3.3 場(chǎng)景功能分析

    實(shí)例化需求的第二步是場(chǎng)景功能分析,又分為畫場(chǎng)景和設(shè)功能兩個(gè)步驟。

    (1)畫場(chǎng)景。

    針對(duì)已分析用戶的每個(gè)目的進(jìn)行場(chǎng)景分析,畫出各種場(chǎng)景,可以根據(jù)不同的業(yè)務(wù)特點(diǎn)采用不同形式,如時(shí)序圖、活動(dòng)圖、數(shù)據(jù)流圖等。獲得基本場(chǎng)景后再根據(jù)變化和挑戰(zhàn),從橫向和縱向兩個(gè)方面來(lái)擴(kuò)展新的場(chǎng)景,對(duì)于變化一般主要有:時(shí)間、地點(diǎn)和周邊的變化;對(duì)于挑戰(zhàn)一般有:困難、業(yè)務(wù)變化、系統(tǒng)異常和威脅等;此外還可以從上下游、協(xié)作等角度來(lái)擴(kuò)充場(chǎng)景。

    (2)設(shè)功能。

    針對(duì)每一個(gè)場(chǎng)景進(jìn)行深度遍歷,逐步細(xì)化功能點(diǎn),完成需求實(shí)例并給出相應(yīng)的驗(yàn)收條件,同時(shí)也完成了測(cè)試用例設(shè)計(jì)??梢圆捎盟季S導(dǎo)圖工具來(lái)對(duì)測(cè)試用例全景圖進(jìn)行描述。

    4 用領(lǐng)域建模方法進(jìn)行測(cè)試用例開發(fā)

    在使用實(shí)例化需求方法完成測(cè)試用例設(shè)計(jì)后,就可以用領(lǐng)域建模方法進(jìn)行測(cè)試用例開發(fā)了,主要步驟是:領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型分析、領(lǐng)域?qū)ο竽P头治?、面向?qū)ο笤O(shè)計(jì)和開發(fā),在完成測(cè)試用例開發(fā)的同時(shí),還可以應(yīng)用ATTD方法來(lái)驅(qū)動(dòng)產(chǎn)品開發(fā)。

    4.1 領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型分析

    領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型分析由建模人員、DEV、測(cè)試SE、QA來(lái)一起結(jié)對(duì)研討完成,建模人員進(jìn)行引導(dǎo),可以從核心測(cè)試用例出發(fā),逐步分析出領(lǐng)域的關(guān)鍵字結(jié)構(gòu)模型樹,具體方法如下:

    (1)初始化領(lǐng)域關(guān)鍵字結(jié)構(gòu)樹。

    首先對(duì)最核心的測(cè)試用例進(jìn)行分析,分層次生成一棵關(guān)鍵字結(jié)構(gòu)模型樹。從用戶角度出發(fā),描述第一層次的領(lǐng)域關(guān)鍵字步驟,這里采用自然語(yǔ)言的方式,用通用語(yǔ)言來(lái)描述,需要注意的是關(guān)鍵字是從做什么的角度來(lái)描述,而不考慮實(shí)現(xiàn)細(xì)節(jié),采用對(duì)象+動(dòng)作的方式,第一層次從大的步驟方面來(lái)描述,不考慮細(xì)節(jié)。然后對(duì)第一層次的各領(lǐng)域關(guān)鍵字根據(jù)需要再進(jìn)行分解拆分,形成第二層次的領(lǐng)域關(guān)鍵字,逐層展開,一直到最底層節(jié)點(diǎn),如果一個(gè)節(jié)點(diǎn)的領(lǐng)域關(guān)鍵字可以使用基礎(chǔ)設(shè)施來(lái)完成,就不用再分解展開了。

    (2)擴(kuò)展領(lǐng)域關(guān)鍵字結(jié)構(gòu)樹。

    根據(jù)核心測(cè)試用例初始化領(lǐng)域關(guān)鍵字結(jié)構(gòu)樹后,再按優(yōu)先級(jí)對(duì)其他測(cè)試用例進(jìn)行逐步分析,根據(jù)需要在已有關(guān)鍵字結(jié)構(gòu)模型樹上進(jìn)行擴(kuò)展。對(duì)于測(cè)試用例還是先分析出第一層次的領(lǐng)域關(guān)鍵字,然后逐層展開,對(duì)于已經(jīng)在領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型樹中存在的關(guān)鍵字,則直接使用,對(duì)于不存在的領(lǐng)域關(guān)鍵字,則需要加入關(guān)鍵字結(jié)構(gòu)模型樹,并進(jìn)行分層展開分析。

    通過(guò)對(duì)各個(gè)測(cè)試用例的逐個(gè)分析,最終生成一棵全領(lǐng)域的關(guān)鍵字結(jié)構(gòu)模型樹,由兩個(gè)測(cè)試用例生成的模型樹如圖3所示。

    整個(gè)分析過(guò)程是由測(cè)試用例來(lái)驅(qū)動(dòng)的,是演進(jìn)式逐步迭代完成的。在開發(fā)過(guò)程中,可以直接在Robot-Framework工具上寫測(cè)試用例,將測(cè)試用例用領(lǐng)域關(guān)鍵字逐層進(jìn)行組織,然后一步步驅(qū)動(dòng)實(shí)現(xiàn)。在領(lǐng)域關(guān)鍵字拆分方面還需要遵循兩個(gè)基本原則:領(lǐng)域關(guān)鍵字一定是語(yǔ)義明確、清晰的;領(lǐng)域關(guān)鍵字是具有一定可復(fù)用性的[12]。

    對(duì)于領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型分析有以下關(guān)鍵技巧:

    ①向上整合和向下細(xì)化。關(guān)鍵字結(jié)構(gòu)模型樹可以根據(jù)需要進(jìn)行向上整合和向下細(xì)化,形成更高層次和更低層次的領(lǐng)域關(guān)鍵字,高層關(guān)鍵字提供易用性,而低層關(guān)鍵字提供靈活性,通過(guò)關(guān)鍵字結(jié)構(gòu)模型樹可以輕松進(jìn)行。

    ②修剪。隨著領(lǐng)域建模的深入,對(duì)關(guān)鍵字結(jié)構(gòu)模型樹需要進(jìn)行修剪,刪除一些可能重復(fù)的關(guān)鍵字,對(duì)于一些幾乎只在一處使用的關(guān)鍵字也可以根據(jù)需要進(jìn)行裁剪。

    采用領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型樹分析方法后,可以將各節(jié)點(diǎn)的關(guān)鍵字落實(shí)到相關(guān)開發(fā)人員進(jìn)行狀態(tài)跟蹤,同時(shí)對(duì)關(guān)鍵字的開發(fā)、組裝、聯(lián)調(diào)提供了良好的視圖。

    4.2 領(lǐng)域?qū)ο竽P头治?/p>

    在完成領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型分析之后可以進(jìn)行領(lǐng)域?qū)ο竽P头治?,這一步由建模人員、DEV結(jié)對(duì)完成。領(lǐng)域?qū)ο竽P褪腔陬I(lǐng)域關(guān)鍵字結(jié)構(gòu)模型樹進(jìn)行分析的,目標(biāo)是分析出實(shí)現(xiàn)關(guān)鍵字結(jié)構(gòu)模型的領(lǐng)域?qū)ο竽P?,為后續(xù)的領(lǐng)域關(guān)鍵字實(shí)現(xiàn)提供依據(jù),具體的分析方法如下:

    (1)識(shí)別領(lǐng)域?qū)ο蟆?/p>

    從領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型的根節(jié)點(diǎn)出發(fā)對(duì)結(jié)構(gòu)樹進(jìn)行遍歷,一般按層次遍歷,不考慮細(xì)節(jié)。首先從領(lǐng)域關(guān)鍵字中逐層挖掘出核心的領(lǐng)域?qū)ο?,由于是按層次遍歷,一般是先識(shí)別出高層次的領(lǐng)域?qū)ο螅缓笫堑蛯哟蔚念I(lǐng)域?qū)ο蟆?/p>

    (2)識(shí)別對(duì)象的關(guān)鍵行為、屬性和關(guān)系。

    再次層次遍歷,分析每個(gè)領(lǐng)域關(guān)鍵字的動(dòng)作行為,從中發(fā)現(xiàn)相應(yīng)領(lǐng)域?qū)ο笮枰峁┑暮诵姆椒ê蛯傩?,同時(shí)需要分析本領(lǐng)域?qū)ο蠛推渌I(lǐng)域?qū)ο笾g的相互關(guān)系,這包括了關(guān)聯(lián)關(guān)系、聚合關(guān)系、組合關(guān)系、依賴關(guān)系、繼承關(guān)系等。

    (3)分析領(lǐng)域?qū)ο蟮慕换ァ?/p>

    對(duì)第一層的每個(gè)關(guān)鍵字進(jìn)行逐層展開,直到最底層,通過(guò)對(duì)業(yè)務(wù)流程細(xì)節(jié)的分析,分析領(lǐng)域關(guān)鍵字如何通過(guò)現(xiàn)有對(duì)象模型的領(lǐng)域?qū)ο笙嗷ソ换f(xié)作來(lái)實(shí)現(xiàn)其功能,如果有必要,還需要引入一些新增對(duì)象(領(lǐng)域?qū)ο蠡蜉o助對(duì)象)或者在已有對(duì)象上增加行為、屬性來(lái)實(shí)現(xiàn)。

    4.3 模型驅(qū)動(dòng)設(shè)計(jì)和面向?qū)ο箝_發(fā)

    在領(lǐng)域?qū)ο竽P头治鰰r(shí),采用模型驅(qū)動(dòng)設(shè)計(jì)方法,將模型和設(shè)計(jì)緊密聯(lián)系,進(jìn)行綁定,不再分離,在一起共同迭代。模型驅(qū)動(dòng)設(shè)計(jì)應(yīng)遵循以下原則:

    (1)模型是設(shè)計(jì)的基礎(chǔ),應(yīng)支持有效的設(shè)計(jì),否則模型將不實(shí)用,設(shè)計(jì)就可能脫離模型,模型和設(shè)計(jì)漸行漸遠(yuǎn);

    (2)設(shè)計(jì)應(yīng)該反映領(lǐng)域模型;

    (3)設(shè)計(jì)過(guò)程中總會(huì)發(fā)現(xiàn)一些關(guān)鍵的知識(shí)點(diǎn)和細(xì)節(jié),需要反饋補(bǔ)充模型;

    (4)模型驅(qū)動(dòng)設(shè)計(jì),并不是考慮純粹的技術(shù)細(xì)節(jié),不能因技術(shù)問(wèn)題削弱模型。

    采用面向?qū)ο笤O(shè)計(jì)可以有效地將領(lǐng)域模型映射為實(shí)現(xiàn)對(duì)象,同時(shí)可以采用面向?qū)ο笤O(shè)計(jì)的一些原則,使用一些設(shè)計(jì)模式,達(dá)到優(yōu)化設(shè)計(jì)的目的[13-15]。

    4.4 應(yīng)用ATTD驅(qū)動(dòng)產(chǎn)品開發(fā)

    根據(jù)ATTD的思想,從驗(yàn)收測(cè)試用例驅(qū)動(dòng)產(chǎn)品開發(fā),主要采用以下步驟:

    (1)在詳細(xì)的迭代計(jì)劃會(huì)議之前,在需求研討會(huì)上討論需求特性,用需求實(shí)例化方法將需求特性用驗(yàn)收測(cè)試用例表示;

    (2)實(shí)現(xiàn)測(cè)試用例/產(chǎn)品需求的任務(wù)分別在詳細(xì)的迭代計(jì)劃會(huì)議上創(chuàng)建,并在迭代中并行開發(fā)實(shí)現(xiàn),所有的活動(dòng)幾乎同時(shí)開展,包括測(cè)試領(lǐng)域和產(chǎn)品領(lǐng)域并行建模,測(cè)試用例和產(chǎn)品需求并行開發(fā)、測(cè)試等;

    (3)通過(guò)驗(yàn)收測(cè)試在迭代演示會(huì)議上交付驗(yàn)收并討論。

    5 應(yīng)用實(shí)例

    在測(cè)試某產(chǎn)品需求特性“QoS策略控制專用承載”時(shí),采用了基于領(lǐng)域驅(qū)動(dòng)的測(cè)試用例設(shè)計(jì)開發(fā)方法。首先采用需求實(shí)例化方法進(jìn)行測(cè)試用例設(shè)計(jì),用思維導(dǎo)圖畫出測(cè)試用例全景,如圖4所示,這里僅畫出最核心的部分。

    如圖4所示,QoS策略控制專用承載是需求特性,分為網(wǎng)絡(luò)和用戶發(fā)起控制兩大場(chǎng)景,其中網(wǎng)絡(luò)發(fā)起的又分為承載建立和修改兩大子場(chǎng)景,在網(wǎng)絡(luò)發(fā)起的專用承載建立子場(chǎng)景中,又分為采用QoS策略1和策略2兩個(gè)功能,分別對(duì)應(yīng)兩個(gè)測(cè)試用例,進(jìn)一步可以描述其驗(yàn)收條件。

    接下來(lái)從核心測(cè)試用例出發(fā)逐步分析出領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型樹,以圖4中的2個(gè)測(cè)試用例為例,領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型樹如圖5所示。

    從上述領(lǐng)域關(guān)鍵字結(jié)構(gòu)模型樹出發(fā),分析出領(lǐng)域?qū)ο竽P?,并采用面向?qū)ο蠓椒ㄟM(jìn)行了實(shí)現(xiàn),迭代完成了需求特性所有測(cè)試用例的開發(fā),并驅(qū)動(dòng)了QoS策略控制專用承載需求特性的開發(fā),及時(shí)有效地進(jìn)行了驗(yàn)收。而且在迭代過(guò)程中能夠快速適應(yīng)需求的變化和接口命令的調(diào)整,持續(xù)快速地保證了需求特性的高質(zhì)量交付,比采用傳統(tǒng)方法整個(gè)交付周期縮短了近二分之一,質(zhì)量提升明顯。

    6 結(jié)束語(yǔ)

    基于領(lǐng)域驅(qū)動(dòng)的測(cè)試用例設(shè)計(jì)、開發(fā)方法是一種通用方法,在產(chǎn)品需求階段用需求實(shí)例化方法進(jìn)行需求分析的同時(shí)完成測(cè)試用例設(shè)計(jì),在迭代周期中根據(jù)產(chǎn)品需求特性開發(fā)的優(yōu)先級(jí),從相應(yīng)的測(cè)試用例出發(fā)進(jìn)行測(cè)試領(lǐng)域建模,逐步演進(jìn)式地完成測(cè)試用例和領(lǐng)域關(guān)鍵字的開發(fā),并同時(shí)驅(qū)動(dòng)產(chǎn)品需求的開發(fā),進(jìn)行驗(yàn)收測(cè)試,很好地滿足了敏捷測(cè)試對(duì)持續(xù)快速質(zhì)量保證的要求。

    未來(lái)可以從測(cè)試領(lǐng)域建模和產(chǎn)品需求領(lǐng)域建模的結(jié)合方面繼續(xù)進(jìn)行一些探索和研究。

    [1] 陳國(guó)棟,羅省賢.Scrum敏捷軟件開發(fā)方法實(shí)踐中的改進(jìn)和應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(12):97-99.

    [2] 郭 群.軟件測(cè)試設(shè)計(jì)技術(shù)[J].電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2007(9):1323-1324.

    [3] Roff J T.UML a beginner’s guide[M].張 瑜,譯.北京:清華大學(xué)出版社,2003:9-13.

    [4] 冀振燕.UML系統(tǒng)分析設(shè)計(jì)與應(yīng)用案例[M].北京:人民郵電出版社,2003.

    [5] 王 君,朱美正,李 欣.關(guān)鍵字驅(qū)動(dòng)測(cè)試框架的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(10):2246-2248.

    [6] 馮玉才,唐 艷,周 淳.關(guān)鍵字驅(qū)動(dòng)自動(dòng)化測(cè)試的原理和實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2004,24(8):140-142.

    [7] Beck K.Test-driven development by example[M].Upper Saddle River:Addison Wesley,2003:95-128.

    [8] Adzic G.實(shí)例化需求[M].北京:人民郵電出版社,2012.

    [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]付友濤,許林英.軟件工程新方法-軟件重構(gòu)[J].微型機(jī)與應(yīng)用,2003,22(10):4-6.

    [12]Sametinger J.Software engineering with reusable components [M].Berlin,Germany:Springer-Verlag,1997.

    [13]邵維忠,楊芙清.面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2003:160-174.

    [14]Szysperski C.Component software:beyond object-oriented programming[M].[s.l.]:Addison Wesley,2002.

    [15]屈喜龍.UML及面向?qū)ο蟮姆治雠c設(shè)計(jì)的研究[J].計(jì)算機(jī)應(yīng)用研究,2005,22(9):74-76.

    Research on Test Cases Design and Development Method Based on Domain-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 agile R&D mode becomes wider.In order to solve the problem that test case design and development in agile teams cannot satisfy the requirement of constant rapid product delivery,the domain-driven method is adopted,and test case is designed based on feature requirements by using instantiation.Then the test domains is modeled,and test cases is described in domain language by using the domain keyword structure,and domain object model is analyzed,using design and development of object-oriented mode for implementing test cases in iterations via continuous evolution and refactoring.On the one hand,this method makes organization,design and development of test cases more efficient,thus improving efficiency in development and maintenance of test cases,and test cases become easy to understand,clear and concise,which satisfy quick changes requirements by using restructuring.On the other hand,it allows driving product development by using ATTD method.Thus,it is widely deployed in telecommunication system tests with good results.

    test case;domain driven;specification by example;domain modeling;object-oriented;restructuring

    TP301

    A

    1673-629X(2016)09-0056-05

    10.3969/j.issn.1673-629X.2016.09.013

    2015-10-06< class="emphasis_bold">修回日期:2

    2016-02-24< class="emphasis_bold">網(wǎng)絡(luò)出版時(shí)間:

    時(shí)間:2016-08-23

    國(guó)家自然科學(xué)基金資助項(xiàng)目(61402482)

    胡繼東(1979-),男,碩士研究生,工程師,研究方向?yàn)檐浖y(cè)試、敏捷測(cè)試。

    http://www.cnki.net/kcms/detail/61.1450.TP.20160823.1359.040.html

    猜你喜歡
    關(guān)鍵字測(cè)試用例實(shí)例
    履職盡責(zé)求實(shí)效 真抓實(shí)干勇作為——十個(gè)關(guān)鍵字,盤點(diǎn)江蘇統(tǒng)戰(zhàn)的2021
    基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
    成功避開“關(guān)鍵字”
    基于混合遺傳算法的回歸測(cè)試用例集最小化研究
    基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
    完形填空Ⅱ
    完形填空Ⅰ
    基于用戶反饋的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵字查詢系統(tǒng)
    軟件回歸測(cè)試用例選取方法研究
    誘導(dǎo)性虛假下載鏈接不完全評(píng)測(cè)
    黎川县| 永年县| 策勒县| 山东省| 根河市| 六枝特区| 正安县| 彰化县| 仪征市| 中江县| 岗巴县| 湘西| 辽源市| 河源市| 宁明县| 阆中市| 嘉峪关市| 房产| 柏乡县| 江阴市| 鹿邑县| 青岛市| 固始县| 竹山县| 登封市| 郯城县| 龙南县| 周宁县| 宿松县| 通城县| 龙江县| 新绛县| 读书| 都匀市| 洪湖市| 安丘市| 太仆寺旗| 星座| 陆丰市| 民乐县| 马鞍山市|