亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        韓欣 張毅

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

        一種基于用例依賴關(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è)試用例間依賴關(guān)系的系統(tǒng)分析,提出基于用例依賴關(guān)系的解決方案與應(yīng)用實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明基于用例依賴關(guān)系的應(yīng)用可以快速生成高可靠性的調(diào)度及有效消除缺陷誤報(bào)。

        用例依賴;自動(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è)試入門更簡(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è)依賴用例未在調(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 基于用例依賴關(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)鍵用例查找出與其有依賴關(guān)系的用例,自動(dòng)生成調(diào)度。

        (3)基于用例的依賴關(guān)系消除缺陷誤報(bào),如當(dāng)前用例所依賴的最弱前置用例執(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ì)前置條件的分類和參數(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)用戶管理功能為例,只有登錄系統(tǒng)才能進(jìn)行賬號(hào)增刪改查等操作,如存在以下用例:登錄、退出、用戶添加、用戶修改、新增用戶查詢,修改后用戶查詢、用戶刪除。各功能編寫一個(gè)用例,預(yù)期結(jié)果為受理成功。新增用戶查詢?yōu)椴樵冃略龊蟮馁~號(hào)是否存在。修改后用戶查詢?yōu)椴樵冃薷挠脩羰欠癯晒Α?/p>

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

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

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

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

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

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

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

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

        根據(jù)以上的分析研究,用例間的依賴關(guān)系有以下特點(diǎn):(1)存在依賴關(guān)系;(2)有至少一個(gè)不依賴其他測(cè)試用例;(3)不存在閉環(huán)的依賴關(guān)系。與有向無(wú)環(huán)圖的特點(diǎn)類似。有向無(wú)環(huán)圖(directed acycline graph):無(wú)環(huán)的有向圖,簡(jiǎn)稱DAG圖。DAG圖是一類較有向樹(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)依賴的用戶1(登錄)的狀態(tài)無(wú)效,而5、7用例的執(zhí)行也會(huì)導(dǎo)致4用例依賴的數(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í)行順序上的依賴關(guān)系,還包括用例執(zhí)行后對(duì)記錄或數(shù)據(jù)的影響,所以詳細(xì)分析后置用例對(duì)前置用例執(zhí)行結(jié)果的影響,又可分為以下三種:

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

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

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

        基于以上分析測(cè)試用例間關(guān)系可歸納為以下四種:1、前置2、前置變更3、前置互斥4、無(wú)關(guān)。是否存在前置影響用例間執(zhí)行依賴,當(dāng)多個(gè)用例依賴同一個(gè)用例時(shí),前置依賴類型影響用例的執(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 基于用例依賴關(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ù)依賴關(guān)系的優(yōu)先順序?qū)τ美M(jìn)行排序,即A是B的前置,B是C的前置,B也是D的前置,CD之間沒(méi)關(guān)系,那么如果用戶要執(zhí)行用例C、D,平臺(tái)需要把A、B都加到調(diào)度,并最終形成ABCD或ABDC的執(zhí)行順序。目標(biāo)是保證所有的用例都能夠有效地執(zhí)行。

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

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

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

        4.1.1 查找用例算法

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

        4.1.2 用例排序算法

        算法思路:

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

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

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

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

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

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

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

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

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

        5 結(jié)語(yǔ)

        本文通過(guò)當(dāng)前測(cè)試現(xiàn)狀的分析,對(duì)自動(dòng)化測(cè)試存在的問(wèn)題進(jìn)行了分析,并提出了基于用例依賴關(guān)系的解決方案。基于上文的分析可以看出,本文的設(shè)計(jì)思路是基于筆者當(dāng)前的自動(dòng)化測(cè)試平臺(tái),但存在的問(wèn)題及解決方案的思路是有共性存在的,希望能對(duì)存在類似問(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]黃若藝,毛澄映.基于依賴性分析的回歸測(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)管理辦法研究
        寫真地理(2020年21期)2020-09-06 14:12:26
        人工智能技術(shù)構(gòu)筑智能政府的前置條件研究
        論“自動(dòng)投案”的司法適用
        基于混合遺傳算法的回歸測(cè)試用例集最小化研究
        各類氣體報(bào)警器防誤報(bào)漏報(bào)管理系統(tǒng)的應(yīng)用
        基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
        我國(guó)工程項(xiàng)目建設(shè)前期工作中一個(gè)亟待修正的程序——項(xiàng)目的“可行性研究報(bào)告”不應(yīng)設(shè)為“方案設(shè)計(jì)”的前置條件
        探秘“折骨精”的盜號(hào)伎倆
        一区二区三区四区黄色av网站| 人妻丰满av∨中文久久不卡| 亚洲精品中文字幕不卡在线| 亚洲一区二区三区av无| 日本高清一级二级三级 | 亚洲中文中文字幕乱码| 国产爆乳无码一区二区麻豆| 性动态图av无码专区| 日本专区一区二区三区| 亚洲一区二区三区福利久久蜜桃 | 亚洲色一区二区三区四区| 亚洲日韩成人av无码网站| 国产亚洲女在线线精品| 国产情侣自拍偷拍精品| 少妇真实被内射视频三四区| 无码成人aaaaa毛片| 国产精品国产三级国产专播| 久久中文字幕国产精品| 大陆国产乱人伦| 天天干夜夜操| 被暴雨淋湿爆乳少妇正在播放| 国产人妖视频一区二区| 亚洲欧美乱日韩乱国产| 亚洲色欲在线播放一区| 国产亚洲精品成人av在线| 中文字幕一区二区人妻秘书| 欧美金发尤物大战黑人| 国产在线视欧美亚综合| 日韩在线精品免费观看| 无码人妻精品一区二区三区夜夜嗨| 久久久久久久综合狠狠综合 | 国产无套乱子伦精彩是白视频| 婷婷午夜天| 国产成人一区二区三区影院免费| 中文av字幕一区二区三区| 97精品超碰一区二区三区| 人妻熟妇乱系列| 国产一区二区三区白浆肉丝| 国产后入清纯学生妹| 免费啪啪视频一区| 精品少妇白浆一二三区|