• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于用例依賴(lài)關(guān)系自動(dòng)生成測(cè)試調(diào)度的方法

      2016-12-07 08:42:43韓欣張毅
      電腦與電信 2016年9期
      關(guān)鍵詞:前置條件誤報(bào)測(cè)試用例

      韓欣 張毅

      (中國(guó)移動(dòng)(深圳)有限公司,廣東 深圳 518048)

      一種基于用例依賴(lài)關(guān)系自動(dòng)生成測(cè)試調(diào)度的方法

      韓欣 張毅

      (中國(guó)移動(dòng)(深圳)有限公司,廣東 深圳 518048)

      本文首先針對(duì)自動(dòng)化測(cè)試的現(xiàn)狀,分析了自動(dòng)化測(cè)試在深入開(kāi)展后遇到的問(wèn)題。通過(guò)對(duì)測(cè)試用例間依賴(lài)關(guān)系的系統(tǒng)分析,提出基于用例依賴(lài)關(guān)系的解決方案與應(yīng)用實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明基于用例依賴(lài)關(guān)系的應(yīng)用可以快速生成高可靠性的調(diào)度及有效消除缺陷誤報(bào)。

      用例依賴(lài);自動(dòng)生成調(diào)度;誤報(bào)消除;前置條件

      1 引言

      隨著近幾年互聯(lián)網(wǎng)業(yè)務(wù)的發(fā)展,軟件自動(dòng)化測(cè)試技術(shù)越來(lái)越受到關(guān)注,在回歸與迭代測(cè)試中廣泛應(yīng)用。特別是自動(dòng)化測(cè)試框架的更完整應(yīng)用使自動(dòng)化測(cè)試平臺(tái)可以應(yīng)用更多其他的測(cè)試技術(shù)讓自動(dòng)化測(cè)試入門(mén)更簡(jiǎn)單,操作更方便,結(jié)果查看更清晰。

      2 當(dāng)前自動(dòng)化測(cè)試的困局

      自動(dòng)化測(cè)試平臺(tái)的大力推廣,大大提高了軟件測(cè)試工作的效率,尤其在回歸測(cè)試中,把一些重復(fù)的、機(jī)械的測(cè)試任務(wù)交給計(jì)算機(jī)去做,很大程度上減輕了測(cè)試人員的壓力,并通過(guò)增加測(cè)試覆蓋率等方式一定程度上提高了回歸測(cè)試的準(zhǔn)確性。

      但隨著自動(dòng)化測(cè)試平臺(tái)的深入使用,測(cè)試需求日趨復(fù)雜,自動(dòng)化測(cè)試用例日趨增多,每日?qǐng)?zhí)行的調(diào)度與用例均越來(lái)越多,一些問(wèn)題變得日趨嚴(yán)重,亟待解決。

      (1)組建一個(gè)新的調(diào)度比較費(fèi)時(shí),自動(dòng)化測(cè)試中測(cè)試執(zhí)行人員很多時(shí)候不是之前的用例設(shè)計(jì)人員,所以其有可能不理解測(cè)試用例之間的關(guān)系,導(dǎo)致面對(duì)一個(gè)新的測(cè)試任務(wù),需要花費(fèi)時(shí)間先去梳理用例與需求及用例之間的關(guān)系,然后才能組建一個(gè)調(diào)度,而目前的用例僅能以目錄或用例名去區(qū)分測(cè)試用例的測(cè)試目的,所以有的時(shí)候還可能有紕漏,導(dǎo)致某一個(gè)依賴(lài)用例未在調(diào)度中或順序不對(duì),導(dǎo)致調(diào)度執(zhí)行出現(xiàn)大量用例失敗。

      (2)重新執(zhí)行調(diào)度與問(wèn)題定位困難,自動(dòng)化測(cè)試用例雖然執(zhí)行用例速度很快,但如執(zhí)行完一個(gè)300個(gè)用例的調(diào)度還是需要耗費(fèi)上數(shù)小時(shí)的時(shí)間,如何在一個(gè)調(diào)度執(zhí)行后快速地執(zhí)行調(diào)度中的失敗用例以進(jìn)行回歸測(cè)試,以及如何在定位問(wèn)題時(shí),快速有效執(zhí)行當(dāng)前缺陷關(guān)聯(lián)的相關(guān)用例,成為需要解決的問(wèn)題。

      (3)自動(dòng)化測(cè)試的大量缺陷誤報(bào)消除,自動(dòng)化測(cè)試中每個(gè)用例失敗都會(huì)報(bào)一個(gè)異常,但實(shí)際上這些用例失敗可能只是部分測(cè)試用例執(zhí)行失敗導(dǎo)致的連環(huán)失敗,大量的缺陷誤報(bào)必將引起對(duì)自動(dòng)化測(cè)試的正確性及有效性懷疑,阻礙自動(dòng)化測(cè)試的繼續(xù)推廣與應(yīng)用。

      這些問(wèn)題讓測(cè)試人員感覺(jué)本來(lái)應(yīng)該簡(jiǎn)單快捷的自動(dòng)化測(cè)試,變得日趨繁瑣復(fù)雜,耗費(fèi)著他們更多的時(shí)間,每日沉溺于調(diào)度執(zhí)行,調(diào)度分析讓他們沒(méi)有更多的時(shí)間去關(guān)注業(yè)務(wù)本身、用例設(shè)計(jì),很大程度阻礙著自動(dòng)化測(cè)試的深入拓展與應(yīng)用。這就是現(xiàn)在多數(shù)企業(yè)深入開(kāi)展自動(dòng)化測(cè)試的現(xiàn)狀,也是現(xiàn)階段自動(dòng)化測(cè)試大規(guī)模使用所面臨的難題。

      3 基于用例依賴(lài)關(guān)系的解決方案

      針對(duì)自動(dòng)化測(cè)試持續(xù)深入開(kāi)展面臨的難題,筆者認(rèn)為應(yīng)該從用例層出發(fā),最大程度地加強(qiáng)用例與業(yè)務(wù)、測(cè)試數(shù)據(jù)的關(guān)系。具體可以從三個(gè)方面來(lái)考慮:

      (1)在平臺(tái)上建立用例間的關(guān)系,能夠讓后來(lái)的測(cè)試人員很快熟悉測(cè)試用例設(shè)計(jì)的思路與測(cè)試用例的結(jié)構(gòu),同時(shí)用例間的關(guān)系在平臺(tái)上應(yīng)提供清晰直觀的查看方式及動(dòng)態(tài)調(diào)

      整方式。

      (2)利用用例間的關(guān)系,根據(jù)關(guān)鍵用例查找出與其有依賴(lài)關(guān)系的用例,自動(dòng)生成調(diào)度。

      (3)基于用例的依賴(lài)關(guān)系消除缺陷誤報(bào),如當(dāng)前用例所依賴(lài)的最弱前置用例執(zhí)行失敗時(shí),則當(dāng)前用例失敗,不生成錯(cuò)誤缺陷,以達(dá)到消除缺陷誤報(bào)。

      從用例執(zhí)行順序上考慮,測(cè)試用例間的關(guān)系包括前置、后置、可并行,前置與后置是形成測(cè)試執(zhí)行時(shí)的串行執(zhí)行順序,可并行對(duì)執(zhí)行順序無(wú)特殊影響與要求,對(duì)于兩個(gè)相鄰的用例來(lái)說(shuō),第一條用例的后置條件就是第二用例的前置條件。所以如能解決測(cè)試用例的前置關(guān)系即可解決自動(dòng)生成調(diào)度及消除缺陷誤報(bào)的問(wèn)題。

      3.1 前置條件與最弱前置條件

      前置條件(Precondition)描述這樣一些狀態(tài),由這些狀態(tài)可以成功地執(zhí)行一個(gè)操作。前置條件還是測(cè)試用例的一個(gè)組成部分,它和由某種測(cè)試方法所標(biāo)志的實(shí)際輸入一起構(gòu)成了測(cè)試用例的完整輸入。在測(cè)試過(guò)程中,測(cè)試人員或自動(dòng)化工具根據(jù)前置條件決定是否執(zhí)行測(cè)試用例,因此對(duì)前置條件的分類(lèi)和參數(shù)化有助于提高軟件測(cè)試的自動(dòng)化過(guò)程[6-8]。

      測(cè)試用例的前置條件分析需要從需求中去分析,軟件功能和使用方式的復(fù)雜性決定了前置條件的多樣性。軟件的某項(xiàng)操作可能要求必須在其他某項(xiàng)或某幾項(xiàng)的操作執(zhí)行完成之后才能進(jìn)行。這幾項(xiàng)操作之前有可能存在前置關(guān)系或不存在前置關(guān)系即并行關(guān)系。這里主要介紹如何分析測(cè)試用例的前置用例。

      以系統(tǒng)用戶(hù)管理功能為例,只有登錄系統(tǒng)才能進(jìn)行賬號(hào)增刪改查等操作,如存在以下用例:登錄、退出、用戶(hù)添加、用戶(hù)修改、新增用戶(hù)查詢(xún),修改后用戶(hù)查詢(xún)、用戶(hù)刪除。各功能編寫(xiě)一個(gè)用例,預(yù)期結(jié)果為受理成功。新增用戶(hù)查詢(xún)?yōu)椴樵?xún)新增后的賬號(hào)是否存在。修改后用戶(hù)查詢(xún)?yōu)椴樵?xún)修改用戶(hù)是否成功。

      定義如果操作O在執(zhí)行之前必須依次執(zhí)行操作PO1,PO2,…,POi(i≥1),那么就稱(chēng)操作序列PO1,PO2,…,POi (i≥1)是操作O的前置約束,邏輯表達(dá)式為

      如果在操作O執(zhí)行前依次執(zhí)行操作PO1,PO2,…,POi (i≥1),則約束滿(mǎn)足,表達(dá)式的值為真;反之則約束不滿(mǎn)足,表達(dá)式的值為假。

      以網(wǎng)廳功能為例,可進(jìn)行以下表示:

      表1 用例前置條件表達(dá)式

      說(shuō)明:實(shí)際需求中用戶(hù)添加肯定不允許添加兩個(gè)相同的用戶(hù),所以在用戶(hù)添加之前必須保證沒(méi)有相同用戶(hù)名的用例,但在這里我們不會(huì)把用戶(hù)刪除或用戶(hù)修改作為前置用例,因?yàn)槿缱鳛榍爸脳l件,將導(dǎo)致依賴(lài)關(guān)系存在閉環(huán)操作。即前置條件不能形成閉環(huán)的操作。

      根據(jù)最弱前置條件即保證相關(guān)后置條件有效的限制最小的前置條件考慮,即如用戶(hù)添加用例能夠執(zhí)行成功,則當(dāng)前一定為登錄狀態(tài),所以基于最弱前置條件考慮優(yōu)化后的前置條件表達(dá)式如下:

      表2 用例前置條件表達(dá)式

      3.2 有向無(wú)環(huán)圖

      根據(jù)以上的分析研究,用例間的依賴(lài)關(guān)系有以下特點(diǎn):(1)存在依賴(lài)關(guān)系;(2)有至少一個(gè)不依賴(lài)其他測(cè)試用例;(3)不存在閉環(huán)的依賴(lài)關(guān)系。與有向無(wú)環(huán)圖的特點(diǎn)類(lèi)似。有向無(wú)環(huán)圖(directed acycline graph):無(wú)環(huán)的有向圖,簡(jiǎn)稱(chēng)DAG圖。DAG圖是一類(lèi)較有向樹(shù)更一般的特殊有向圖,基于向無(wú)環(huán)圖的經(jīng)典算法有拓?fù)渑判颉?/p>

      以上用例關(guān)系形成有向無(wú)環(huán)圖如圖1:

      圖1 有向無(wú)環(huán)圖

      3.3 拓?fù)渑判?/p>

      拓?fù)渑判蚴菍?duì)有向無(wú)環(huán)圖的頂點(diǎn)的一種排序,它使得如果存在一條從頂點(diǎn)A到頂點(diǎn)B的路徑,那么在排序中B出現(xiàn)在A的后面。

      具體的算法思想如下:

      (1)在有向圖中選一個(gè)沒(méi)有前驅(qū)的頂點(diǎn)且輸出之。

      (2)從圖中刪除該頂點(diǎn)和所有以它為尾的弧。

      (3)重復(fù)上述兩步,直至全部頂點(diǎn)均已輸出,或者當(dāng)前圖中不存在無(wú)前驅(qū)的頂點(diǎn)為止。

      圖1所示的有向無(wú)環(huán)圖經(jīng)拓?fù)渑判蚝罂尚纬梢韵碌膸讉€(gè)執(zhí)行順序:

      以上的執(zhí)行順序中,依據(jù)實(shí)際需求僅第一個(gè)順序所有的用例才能執(zhí)行成功,原因是,用例2(退出)的執(zhí)行會(huì)導(dǎo)致其他節(jié)點(diǎn)依賴(lài)的用戶(hù)1(登錄)的狀態(tài)無(wú)效,而5、7用例的執(zhí)行也會(huì)導(dǎo)致4用例依賴(lài)的數(shù)據(jù)變更或消失。故必須對(duì)算法與結(jié)構(gòu)圖做如下優(yōu)化:

      (1)對(duì)節(jié)點(diǎn)同頂級(jí)節(jié)點(diǎn)設(shè)置優(yōu)先級(jí),即在對(duì)階段1排序后,會(huì)存在2、3的兩個(gè)無(wú)頂點(diǎn)節(jié)點(diǎn),必須將2的優(yōu)先級(jí)降為最低,最后執(zhí)行才行。同樣對(duì)節(jié)點(diǎn)4、5、7也設(shè)置優(yōu)先級(jí)。

      (2)必須遍歷一個(gè)子節(jié)點(diǎn)下的所有無(wú)頂級(jí)節(jié)點(diǎn)后,再返回查找無(wú)頂級(jí)節(jié)點(diǎn)。如必須將3節(jié)點(diǎn)下的所有無(wú)頂級(jí)節(jié)點(diǎn)排序后再查找無(wú)頂級(jí)節(jié)點(diǎn)。

      由以上得知用例間不止有執(zhí)行順序上的依賴(lài)關(guān)系,還包括用例執(zhí)行后對(duì)記錄或數(shù)據(jù)的影響,所以詳細(xì)分析后置用例對(duì)前置用例執(zhí)行結(jié)果的影響,又可分為以下三種:

      (1)無(wú)影響,后置用例的執(zhí)行不影響前置用例的執(zhí)行結(jié)果,如查詢(xún)、記錄查看、修改取消、刪除取消等。

      (2)數(shù)據(jù)變更,后置用例的執(zhí)行會(huì)導(dǎo)致前置用例的執(zhí)行結(jié)果數(shù)值或記錄狀態(tài)的變更,如:修改、記錄鎖定等。

      (3)結(jié)果互斥,后置用例的執(zhí)行會(huì)導(dǎo)致前置用例的執(zhí)行結(jié)果數(shù)值或記錄的消失或狀態(tài)結(jié)束,如:刪除、注銷(xiāo)等。

      基于以上分析測(cè)試用例間關(guān)系可歸納為以下四種:1、前置2、前置變更3、前置互斥4、無(wú)關(guān)。是否存在前置影響用例間執(zhí)行依賴(lài),當(dāng)多個(gè)用例依賴(lài)同一個(gè)用例時(shí),前置依賴(lài)類(lèi)型影響用例的執(zhí)行優(yōu)先級(jí)。其執(zhí)行優(yōu)先級(jí)為前置>前置變更>前置互斥>無(wú)關(guān)。即在有向無(wú)環(huán)圖中增加對(duì)同頂級(jí)節(jié)點(diǎn)的優(yōu)先級(jí)定義,假定:前置p=1,前置變更p=2,前置互斥p=3。更新后的有向無(wú)環(huán)圖如圖2:

      圖2 有向無(wú)環(huán)圖

      4 應(yīng)用與實(shí)現(xiàn)

      4.1 基于用例依賴(lài)關(guān)系的自動(dòng)生成調(diào)度

      在前部分提到的自動(dòng)化測(cè)試平臺(tái)上組建調(diào)度困難問(wèn)題,期望能達(dá)到的場(chǎng)景為:

      測(cè)試人員組建調(diào)度時(shí),只需根據(jù)測(cè)試需求,挑選出需求對(duì)應(yīng)的關(guān)鍵用例,平臺(tái)根據(jù)這些用例,自動(dòng)把這些用例存在前置條件的用例一并加到調(diào)度中,并去掉重復(fù)的用例,然后根據(jù)依賴(lài)關(guān)系的優(yōu)先順序?qū)τ美M(jìn)行排序,即A是B的前置,B是C的前置,B也是D的前置,CD之間沒(méi)關(guān)系,那么如果用戶(hù)要執(zhí)行用例C、D,平臺(tái)需要把A、B都加到調(diào)度,并最終形成ABCD或ABDC的執(zhí)行順序。目標(biāo)是保證所有的用例都能夠有效地執(zhí)行。

      重新執(zhí)行調(diào)度與問(wèn)題定位方法類(lèi)似,平臺(tái)根據(jù)所有失敗的用例或缺陷關(guān)聯(lián)的用例找出所有存在依賴(lài)關(guān)系的測(cè)試用例。這里主要涉及到兩個(gè)問(wèn)題需要解決:

      (1)根據(jù)一組用例查找出與這組用例所依賴(lài)的前置用例,以及這組用例的存在前置互斥關(guān)系的后置用例。保證調(diào)度執(zhí)行后數(shù)據(jù)或記錄狀態(tài)的恢復(fù)。

      (2)對(duì)第一條中找到的用例按依賴(lài)關(guān)系進(jìn)行排序。

      4.1.1 查找用例算法

      算法思路:根據(jù)選擇的一個(gè)或多個(gè)用例節(jié)點(diǎn),依據(jù)用例依賴(lài)關(guān)系圖,使用遞歸算法查找用例的所有的依賴(lài)節(jié)點(diǎn)并去重。

      4.1.2 用例排序算法

      算法思路:

      (1)查找依賴(lài)度為0的節(jié)點(diǎn),如果存在為0的節(jié)點(diǎn),加入棧q,否則該圖是有向有圖;

      (2)取隊(duì)列棧的最后一個(gè)節(jié)點(diǎn)V,加入list;

      (3)查找對(duì)V是互斥依賴(lài)且入度為1的節(jié)點(diǎn),加入棧q中;

      (4)查找對(duì)V是更新依賴(lài)且入度為1的節(jié)點(diǎn),加入棧q中;

      (5)查找對(duì)V是約束依賴(lài)且入度為1的節(jié)點(diǎn),加入棧q中;

      (6)將V節(jié)點(diǎn)從其它節(jié)點(diǎn)的依賴(lài)表中移除;

      (7)如果棧q不為空,轉(zhuǎn)到(2),否則,轉(zhuǎn)到(1)。

      4.2 基于用例依賴(lài)關(guān)系的誤報(bào)消除

      在已有平臺(tái)執(zhí)行結(jié)果的基礎(chǔ)上,根據(jù)用例的依賴(lài)關(guān)系去消除缺陷誤報(bào),具體思路為當(dāng)前用例執(zhí)行失敗時(shí),檢測(cè)當(dāng)前用例的前置依賴(lài)用例是否執(zhí)行成功,如成功則生成缺陷,如執(zhí)行依賴(lài)用例中存在用例執(zhí)行失敗,則不生成缺陷。以此達(dá)到消除缺陷誤報(bào)的目的。說(shuō)明:此處查找當(dāng)前用例的依賴(lài)用例僅需查找一級(jí)即可,不需遞歸循環(huán)查詢(xún)所有前置依賴(lài)用例。

      5 結(jié)語(yǔ)

      本文通過(guò)當(dāng)前測(cè)試現(xiàn)狀的分析,對(duì)自動(dòng)化測(cè)試存在的問(wèn)題進(jìn)行了分析,并提出了基于用例依賴(lài)關(guān)系的解決方案。基于上文的分析可以看出,本文的設(shè)計(jì)思路是基于筆者當(dāng)前的自動(dòng)化測(cè)試平臺(tái),但存在的問(wèn)題及解決方案的思路是有共性存在的,希望能對(duì)存在類(lèi)似問(wèn)題的提供一種解決問(wèn)題的思路。

      [1]Hovemeyer D,Pugh W.Finding more null pointer bugs,but not too many[A].[S.l.]:ACM,2007.9-14.

      [2]陳技能.自動(dòng)化測(cè)試實(shí)踐[M].北京:電子工業(yè)出版社.2008.

      [3]葉偉.互聯(lián)網(wǎng)實(shí)彈的軟件革命:SaaS架構(gòu)設(shè)計(jì)[M].北京:電子工業(yè)出版社.2009

      [4]王奇,曹良帥,趙賢敬,等.基于SaaS的自動(dòng)化測(cè)試云平臺(tái)研究[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2012,25(10):67-72.

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

      [6]嚴(yán)少清,陳革,萬(wàn)年紅.軟件測(cè)試自動(dòng)化管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2002,28(9):152-153.

      [7]黃若藝,毛澄映.基于依賴(lài)性分析的回歸測(cè)試用例選擇[J].微計(jì)算機(jī)信息,2005,(23):184-185.

      AMethod forAutomatic Generation of Test Scheduling Based on the Dependency Relationships among Use Cases

      Han Xin Zhang Yi
      (China Mobile Shenzhen Co.,Ltd.,Shenzhen 518048,Guangdong)

      tract】 Based on the status of the automatic test,this paper analyzes the problems in it.With the analysis of the dependency relationships among test cases,this paper proposes the solution and implementation based on the dependency relationships of the use cases.Results show that the application of dependency relationships among use cases can generate highly reliable scheduling fast and effectively eliminate defects.

      words】 use case dependency;automatic generation of scheduling;defect elimination;precondition

      TP311.52

      A

      1008-6609(2016)09-0043-04

      韓欣,女,河南周口人,本科,高級(jí)工程師,研究方向:自動(dòng)化測(cè)試、系統(tǒng)分析、測(cè)試?yán)碚摰取?/p>

      猜你喜歡
      前置條件誤報(bào)測(cè)試用例
      家用燃?xì)鈭?bào)警器誤報(bào)原因及降低誤報(bào)率的方法
      煤氣與熱力(2021年6期)2021-07-28 07:21:40
      基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
      房屋建筑和市政基礎(chǔ)設(shè)施工程施工招標(biāo)投標(biāo)管理辦法研究
      人工智能技術(shù)構(gòu)筑智能政府的前置條件研究
      論“自動(dòng)投案”的司法適用
      基于混合遺傳算法的回歸測(cè)試用例集最小化研究
      各類(lèi)氣體報(bào)警器防誤報(bào)漏報(bào)管理系統(tǒng)的應(yīng)用
      基于依賴(lài)結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
      我國(guó)工程項(xiàng)目建設(shè)前期工作中一個(gè)亟待修正的程序——項(xiàng)目的“可行性研究報(bào)告”不應(yīng)設(shè)為“方案設(shè)計(jì)”的前置條件
      探秘“折骨精”的盜號(hào)伎倆
      梅州市| 永福县| 岢岚县| 额尔古纳市| 华亭县| 城口县| 张家界市| 美姑县| 芦山县| 加查县| 米脂县| 河北省| 景谷| 轮台县| 勃利县| 拜城县| 霍城县| 丹江口市| 潜山县| 池州市| 赤峰市| 青龙| 云安县| 西华县| 奉贤区| 佛学| 安岳县| 浦江县| 定兴县| 亚东县| 潮州市| 抚宁县| 江口县| 邯郸县| 乐至县| 陇南市| 枣庄市| 西和县| 凉山| 泰兴市| 稻城县|