999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于用例依賴關系自動生成測試調度的方法

2016-12-07 08:42:43韓欣張毅
電腦與電信 2016年9期
關鍵詞:用戶

韓欣 張毅

(中國移動(深圳)有限公司,廣東 深圳 518048)

一種基于用例依賴關系自動生成測試調度的方法

韓欣 張毅

(中國移動(深圳)有限公司,廣東 深圳 518048)

本文首先針對自動化測試的現狀,分析了自動化測試在深入開展后遇到的問題。通過對測試用例間依賴關系的系統分析,提出基于用例依賴關系的解決方案與應用實現。實驗結果表明基于用例依賴關系的應用可以快速生成高可靠性的調度及有效消除缺陷誤報。

用例依賴;自動生成調度;誤報消除;前置條件

1 引言

隨著近幾年互聯網業務的發展,軟件自動化測試技術越來越受到關注,在回歸與迭代測試中廣泛應用。特別是自動化測試框架的更完整應用使自動化測試平臺可以應用更多其他的測試技術讓自動化測試入門更簡單,操作更方便,結果查看更清晰。

2 當前自動化測試的困局

自動化測試平臺的大力推廣,大大提高了軟件測試工作的效率,尤其在回歸測試中,把一些重復的、機械的測試任務交給計算機去做,很大程度上減輕了測試人員的壓力,并通過增加測試覆蓋率等方式一定程度上提高了回歸測試的準確性。

但隨著自動化測試平臺的深入使用,測試需求日趨復雜,自動化測試用例日趨增多,每日執行的調度與用例均越來越多,一些問題變得日趨嚴重,亟待解決。

(1)組建一個新的調度比較費時,自動化測試中測試執行人員很多時候不是之前的用例設計人員,所以其有可能不理解測試用例之間的關系,導致面對一個新的測試任務,需要花費時間先去梳理用例與需求及用例之間的關系,然后才能組建一個調度,而目前的用例僅能以目錄或用例名去區分測試用例的測試目的,所以有的時候還可能有紕漏,導致某一個依賴用例未在調度中或順序不對,導致調度執行出現大量用例失敗。

(2)重新執行調度與問題定位困難,自動化測試用例雖然執行用例速度很快,但如執行完一個300個用例的調度還是需要耗費上數小時的時間,如何在一個調度執行后快速地執行調度中的失敗用例以進行回歸測試,以及如何在定位問題時,快速有效執行當前缺陷關聯的相關用例,成為需要解決的問題。

(3)自動化測試的大量缺陷誤報消除,自動化測試中每個用例失敗都會報一個異常,但實際上這些用例失敗可能只是部分測試用例執行失敗導致的連環失敗,大量的缺陷誤報必將引起對自動化測試的正確性及有效性懷疑,阻礙自動化測試的繼續推廣與應用。

這些問題讓測試人員感覺本來應該簡單快捷的自動化測試,變得日趨繁瑣復雜,耗費著他們更多的時間,每日沉溺于調度執行,調度分析讓他們沒有更多的時間去關注業務本身、用例設計,很大程度阻礙著自動化測試的深入拓展與應用。這就是現在多數企業深入開展自動化測試的現狀,也是現階段自動化測試大規模使用所面臨的難題。

3 基于用例依賴關系的解決方案

針對自動化測試持續深入開展面臨的難題,筆者認為應該從用例層出發,最大程度地加強用例與業務、測試數據的關系。具體可以從三個方面來考慮:

(1)在平臺上建立用例間的關系,能夠讓后來的測試人員很快熟悉測試用例設計的思路與測試用例的結構,同時用例間的關系在平臺上應提供清晰直觀的查看方式及動態調

整方式。

(2)利用用例間的關系,根據關鍵用例查找出與其有依賴關系的用例,自動生成調度。

(3)基于用例的依賴關系消除缺陷誤報,如當前用例所依賴的最弱前置用例執行失敗時,則當前用例失敗,不生成錯誤缺陷,以達到消除缺陷誤報。

從用例執行順序上考慮,測試用例間的關系包括前置、后置、可并行,前置與后置是形成測試執行時的串行執行順序,可并行對執行順序無特殊影響與要求,對于兩個相鄰的用例來說,第一條用例的后置條件就是第二用例的前置條件。所以如能解決測試用例的前置關系即可解決自動生成調度及消除缺陷誤報的問題。

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

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

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

以系統用戶管理功能為例,只有登錄系統才能進行賬號增刪改查等操作,如存在以下用例:登錄、退出、用戶添加、用戶修改、新增用戶查詢,修改后用戶查詢、用戶刪除。各功能編寫一個用例,預期結果為受理成功。新增用戶查詢為查詢新增后的賬號是否存在。修改后用戶查詢為查詢修改用戶是否成功。

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

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

以網廳功能為例,可進行以下表示:

表1 用例前置條件表達式

說明:實際需求中用戶添加肯定不允許添加兩個相同的用戶,所以在用戶添加之前必須保證沒有相同用戶名的用例,但在這里我們不會把用戶刪除或用戶修改作為前置用例,因為如作為前置條件,將導致依賴關系存在閉環操作。即前置條件不能形成閉環的操作。

根據最弱前置條件即保證相關后置條件有效的限制最小的前置條件考慮,即如用戶添加用例能夠執行成功,則當前一定為登錄狀態,所以基于最弱前置條件考慮優化后的前置條件表達式如下:

表2 用例前置條件表達式

3.2 有向無環圖

根據以上的分析研究,用例間的依賴關系有以下特點:(1)存在依賴關系;(2)有至少一個不依賴其他測試用例;(3)不存在閉環的依賴關系。與有向無環圖的特點類似。有向無環圖(directed acycline graph):無環的有向圖,簡稱DAG圖。DAG圖是一類較有向樹更一般的特殊有向圖,基于向無環圖的經典算法有拓撲排序。

以上用例關系形成有向無環圖如圖1:

圖1 有向無環圖

3.3 拓撲排序

拓撲排序是對有向無環圖的頂點的一種排序,它使得如果存在一條從頂點A到頂點B的路徑,那么在排序中B出現在A的后面。

具體的算法思想如下:

(1)在有向圖中選一個沒有前驅的頂點且輸出之。

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

(3)重復上述兩步,直至全部頂點均已輸出,或者當前圖中不存在無前驅的頂點為止。

圖1所示的有向無環圖經拓撲排序后可形成以下的幾個執行順序:

以上的執行順序中,依據實際需求僅第一個順序所有的用例才能執行成功,原因是,用例2(退出)的執行會導致其他節點依賴的用戶1(登錄)的狀態無效,而5、7用例的執行也會導致4用例依賴的數據變更或消失。故必須對算法與結構圖做如下優化:

(1)對節點同頂級節點設置優先級,即在對階段1排序后,會存在2、3的兩個無頂點節點,必須將2的優先級降為最低,最后執行才行。同樣對節點4、5、7也設置優先級。

(2)必須遍歷一個子節點下的所有無頂級節點后,再返回查找無頂級節點。如必須將3節點下的所有無頂級節點排序后再查找無頂級節點。

由以上得知用例間不止有執行順序上的依賴關系,還包括用例執行后對記錄或數據的影響,所以詳細分析后置用例對前置用例執行結果的影響,又可分為以下三種:

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

(2)數據變更,后置用例的執行會導致前置用例的執行結果數值或記錄狀態的變更,如:修改、記錄鎖定等。

(3)結果互斥,后置用例的執行會導致前置用例的執行結果數值或記錄的消失或狀態結束,如:刪除、注銷等。

基于以上分析測試用例間關系可歸納為以下四種:1、前置2、前置變更3、前置互斥4、無關。是否存在前置影響用例間執行依賴,當多個用例依賴同一個用例時,前置依賴類型影響用例的執行優先級。其執行優先級為前置>前置變更>前置互斥>無關。即在有向無環圖中增加對同頂級節點的優先級定義,假定:前置p=1,前置變更p=2,前置互斥p=3。更新后的有向無環圖如圖2:

圖2 有向無環圖

4 應用與實現

4.1 基于用例依賴關系的自動生成調度

在前部分提到的自動化測試平臺上組建調度困難問題,期望能達到的場景為:

測試人員組建調度時,只需根據測試需求,挑選出需求對應的關鍵用例,平臺根據這些用例,自動把這些用例存在前置條件的用例一并加到調度中,并去掉重復的用例,然后根據依賴關系的優先順序對用例進行排序,即A是B的前置,B是C的前置,B也是D的前置,CD之間沒關系,那么如果用戶要執行用例C、D,平臺需要把A、B都加到調度,并最終形成ABCD或ABDC的執行順序。目標是保證所有的用例都能夠有效地執行。

重新執行調度與問題定位方法類似,平臺根據所有失敗的用例或缺陷關聯的用例找出所有存在依賴關系的測試用例。這里主要涉及到兩個問題需要解決:

(1)根據一組用例查找出與這組用例所依賴的前置用例,以及這組用例的存在前置互斥關系的后置用例。保證調度執行后數據或記錄狀態的恢復。

(2)對第一條中找到的用例按依賴關系進行排序。

4.1.1 查找用例算法

算法思路:根據選擇的一個或多個用例節點,依據用例依賴關系圖,使用遞歸算法查找用例的所有的依賴節點并去重。

4.1.2 用例排序算法

算法思路:

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

(2)取隊列棧的最后一個節點V,加入list;

(3)查找對V是互斥依賴且入度為1的節點,加入棧q中;

(4)查找對V是更新依賴且入度為1的節點,加入棧q中;

(5)查找對V是約束依賴且入度為1的節點,加入棧q中;

(6)將V節點從其它節點的依賴表中移除;

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

4.2 基于用例依賴關系的誤報消除

在已有平臺執行結果的基礎上,根據用例的依賴關系去消除缺陷誤報,具體思路為當前用例執行失敗時,檢測當前用例的前置依賴用例是否執行成功,如成功則生成缺陷,如執行依賴用例中存在用例執行失敗,則不生成缺陷。以此達到消除缺陷誤報的目的。說明:此處查找當前用例的依賴用例僅需查找一級即可,不需遞歸循環查詢所有前置依賴用例。

5 結語

本文通過當前測試現狀的分析,對自動化測試存在的問題進行了分析,并提出了基于用例依賴關系的解決方案。基于上文的分析可以看出,本文的設計思路是基于筆者當前的自動化測試平臺,但存在的問題及解決方案的思路是有共性存在的,希望能對存在類似問題的提供一種解決問題的思路。

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

[2]陳技能.自動化測試實踐[M].北京:電子工業出版社.2008.

[3]葉偉.互聯網實彈的軟件革命:SaaS架構設計[M].北京:電子工業出版社.2009

[4]王奇,曹良帥,趙賢敬,等.基于SaaS的自動化測試云平臺研究[J].電信工程技術與標準化,2012,25(10):67-72.

[5]朱菊,王志堅,楊雪.基于數據驅動的軟件自動化測試框架[J].計算機技術與發展,2006,16(5):68-70.

[6]嚴少清,陳革,萬年紅.軟件測試自動化管理系統的設計與實現[J].計算機工程,2002,28(9):152-153.

[7]黃若藝,毛澄映.基于依賴性分析的回歸測試用例選擇[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

韓欣,女,河南周口人,本科,高級工程師,研究方向:自動化測試、系統分析、測試理論等。

猜你喜歡
用戶
雅閣國內用戶交付突破300萬輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請稍后再哭
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網新媒體用戶之間有何差別
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應用
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 成人国产精品2021| 国产资源免费观看| 国产毛片不卡| 国产av无码日韩av无码网站| 国产18页| 福利国产微拍广场一区视频在线| 天天婬欲婬香婬色婬视频播放| 中国美女**毛片录像在线| 国产av无码日韩av无码网站| 91精品视频在线播放| hezyo加勒比一区二区三区| 国产午夜福利在线小视频| 一本久道久久综合多人| 99精品热视频这里只有精品7| 欧美视频二区| 亚洲无码视频喷水| 中文字幕第4页| 久久国产精品77777| 国产成人超碰无码| 欧美另类精品一区二区三区| 国产一级毛片在线| 国产第四页| 国产亚洲日韩av在线| 成人永久免费A∨一级在线播放| 精品国产一区二区三区在线观看| 99热这里只有精品5| 日韩av无码DVD| 亚洲综合中文字幕国产精品欧美| 露脸一二三区国语对白| 国产最爽的乱婬视频国语对白| 久久99热这里只有精品免费看 | 幺女国产一级毛片| 四虎永久免费地址在线网站| 亚洲精品桃花岛av在线| av大片在线无码免费| 日本高清有码人妻| 久久香蕉国产线看观看亚洲片| 日本亚洲最大的色成网站www| 91精品视频网站| 2020国产精品视频| 波多野结衣一区二区三区四区 | 永久免费av网站可以直接看的| 囯产av无码片毛片一级| 国产精品无码作爱| 国产黄色片在线看| 男人天堂伊人网| 亚洲第一成年人网站| 无码日韩视频| 国产综合色在线视频播放线视| 亚洲精品日产AⅤ| 久久精品国产精品国产一区| 黄色成年视频| 国产精品视频猛进猛出| 国产欧美日韩另类精彩视频| 中文字幕佐山爱一区二区免费| 性喷潮久久久久久久久| 亚洲无码电影| 深爱婷婷激情网| 欧美一区二区精品久久久| 亚洲福利视频一区二区| 色婷婷在线影院| 91外围女在线观看| 国产麻豆精品久久一二三| 中文字幕亚洲电影| 国产欧美高清| 91精品啪在线观看国产| 99re经典视频在线| 成人日韩欧美| 欧美成在线视频| 亚洲无码不卡网| 日韩av在线直播| www成人国产在线观看网站| 91福利国产成人精品导航| 亚洲人成在线免费观看| 日韩欧美国产另类| 9966国产精品视频| 一级爆乳无码av| 91国内外精品自在线播放| 午夜啪啪福利| 91色在线观看| 国产毛片基地| 中文成人在线视频|