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

面向復用的軟件測試方法研究*

2016-04-20 00:38:07石金周汪海濤
計算機與數字工程 2016年3期

石金周 汪海濤 姜 瑛 陳 星

(昆明理工大學信息工程與自動化學院 昆明 650500)

?

面向復用的軟件測試方法研究*

石金周汪海濤姜瑛陳星

(昆明理工大學信息工程與自動化學院昆明650500)

摘要根據研究表明,測試工作消耗了超過半數的軟件開發工作量,而這正是阻礙軟件質量保證的重要因素之一。軟件復用技術在提高軟件質量和生產率的同時縮短了軟件產品的上市時間。論文討論面向復用的測試方法,用來減少測試工作。從而進一步在整個面向復用的開發過程中呈現最先進的面向復用的軟件測試方法。當前基于軟件復用測試的軟件開發趨勢是朝著內置測試和基于模型的軟件測試方向發展。

關鍵詞面向復用的測試方法; 基于模型的測試; 內置測試; 框架和構件

Reuse-oriented Software Testing Method

SHI JinzhouWANG HaitaoJIANG YingCHEN Xing

(Faculty of Information Engineering and Automation, Kunming University of Science and Technology, Kunming650500)

AbstractAccording to the study that testing effort consumes more than half of all development effort and is one of important factors, which obstruct quality assurance. Software reuse enhances quality and productivity and at the same time reduces the time-to-market of the software products. In this paper, reuse-oriented test approaches are discussed, which are used to reduce the testing effort. Further, the state-of-the-art in reuse-oriented test approaches employed in reuse-oriented development processes is presented. The paper believes that the current trend is towards built-in test and model based testing in the applications developed through reusable software.

Key Wordsreuse-oriented test approaches, model based testing, built-in-tests, frameworks and components

Class NumberTP311.5

1引言

隨著計算機應用的日益普及和深化,軟件產品的數量以驚人的速度急劇膨脹,軟件在現代社會中的作用是必不可少的,軟件不可以出錯。而在軟件生存周期中軟件測試占有重要的地位,并且直接影響著軟件的質量[1]。然而,確保高質量的軟件通常非常昂貴,因為測試是實現質量的主要手段,而實現質量保證工作會消耗50%~60%的軟件開發工作量,并且會阻礙整個項目的進程。正因如此,不充分的質量保證,尤其是測試的不足,造成了軟件質量的參差不齊。

如何通過適當的技術來減少軟件測試的工作同時又不降低軟件的質量?在1968年的北大西洋公約組織(NATO)軟件工程會議上,人們為了解決“軟件危機”,第一次引入了復用概念。可以說,軟件復用是避免重復勞動、提高軟件質量和生產效率的有效解決方案[2]。通過軟件復用技術,消除了包括分析、設計、編碼、測試等階段在內的大量重復勞動,提高了軟件開發的生產率,與此同時,復用已開發的高質量成果,還可以避免重新開發時可能引入的錯誤,從而提高了軟件的質量。因此,面向復用的軟件測試方法可以有效減少測試工作,提高軟件質量。

2軟件測試與軟件復用

2.1軟件測試的基本概念

Glenford J.Myers認為軟件測試是為了發現錯誤而執行程序的過程。IEEE 610.12標準定義為: 1) 運行系統或構件在特定的條件下,觀察和記錄結果,對系統的某些方面做出評判。 2) 通過分析某些軟件項來發現現存的結果和所要求的條件之間的區別(即錯誤)并以此評價該軟件項的特性[3]。基于IEEE 610.12的標準定義,可以給出軟件測試的定義:軟件測試是在軟件投入運行前,對軟件需求分析、設計規格說明和編碼的最終評審,是軟件質量保證的關鍵步驟[3]。不難發現,作為軟件質量保證的關鍵步驟,軟件測試的目的就是在發現軟件的缺陷與錯誤的同時,也要對軟件的質量進行度量和評估。

2.2軟件復用的基本概念

軟件復用是指“以復用為目的而設計軟件”的過程。軟件復用是在軟件開發過程中避免重復勞動的有效解決方案,旨在使應用程序的開發不再“從零開始”,能夠在現有的工作基礎上,充分利用過去系統開發中積累的軟件資產,諸如源代碼、設計方案、需求規約以及測試用例等,實現對軟件開發過程中可復用成分最大程度的復用[2]。從定義不難發現,軟件復用是一個從現有軟件構件基礎上,而非重新創建軟件系統的一個過程。在這個過程中,所有使用到復用的軟件技術都有一定的共性,即都涉及到抽象、篩選、特化和集成軟件構件。

通過復用技術對傳統測試過程模型進行重構,即在測試過程模型中整合測試計劃、設計、開發、執行和分析/評估活動中的特定抽象模型,由抽象模型篩選、特化出測試構件并集成。由于創建測試構件和測試文檔消耗了大量的軟件測試工作在軟件生命周期中,所以復用測試構件之前,必須確保復用測試構件消耗的測試時間和精力低于從頭開發測試構件。

3面向復用的測試方法

本節確定并討論各領域應用面向復用測試方法以及通過應用各種面向復用測試方法減少了測試工作。

3.1應用領域的面向復用測試方法

復用測試最早被認可是在回歸測試中,雖然這種測試策略代價很高,但作為至關重要的軟件維護活動之一(維護活動消耗大約三分之二的軟件生產的總成本),它能夠驗證所修改代碼的正確性,同時對軟件的不變部件沒有產生不利影響。復用,具體被用于從現有的測試套件中選擇回歸測試用例來測試修改后的軟件。開發測試和回歸測試之間的主要區別是開發測試在生成每個測試用例的抽象級別測試各自的產品,而回歸測試則是在可能存在復用的回歸測試中建立測試套件。

對于重復測試所有的方法體,一種回歸測試策略是,基于完全執行的回歸測試,但是這種策略可能會消耗大量的時間和資源;另一種回歸測試策略是,基于選擇技術的回歸測試,通過選擇初始測試套件中的一些子集,以減少重新測試所需的時間。回歸測試選擇技術解決了兩個問題: 1) 從現有測試套件中選擇; 2) 確定在何處需要額外的測試。同時,回歸測試選擇需在重新執行測試用例所需成本和由于修改軟件的副作用而引入缺失故障的風險之間做權衡,為了減少軟件開發的時間和工作量,迭代開發戰略和復用技術經常被采用。這兩種方法都需要頻繁驗證引起以前所寫功能變化的相關代碼,這就需要高效的回歸測試策略。研究人員已經把很多精力投入到尋找符合成本效益的方法進行回歸測試,例如基于修改代碼的測試以及基于風險用例的回歸測試。

回歸測試主要研究四個問題: 1) 找出程序中發生變化及受變化影響的部分, 2) 重新測試變化及受變化影響的部分, 3) 確定要選擇的測試用例的標準, 4) 復用現有的測試用例并進行修改,產生新的測試用例集[4]。

假設P表示某個程序,P′表示經P修改后的程序,T為P的測試用例集。回歸測試過程可以描述如下[4]:

1) 選擇T′?T,其中T′為程序P′運行時用來測試的測試用例集;

2) 利用T′測試程序P′,以確認程序P′在T′上的正確性;

3) 如果必要,建立P′的新增測試用例集T″;

4) 利用T″測試程序P′,以確定P′在T″上的正確性;

5) 根據測試用例集T′和T″產生新的測試用例集T?。

3.2面向復用的測試方法

通過文獻調查確定了集中面向復用的測試方法,通過諸如內置測試、測試模式、測試框架、測試環境、基于模型的測試、基于域的測試等技術,軟件復用已經被應用于軟件測試中。

表1 減少測試工作的面向復用測試方法

3.2.1基于域的測試

基于域的測試是一種基于領域分析和建模概念的命令系統測試生成方法。通過領域分析,為應用程序提供一系列結構化的域模型,并通過由此產生的域模型生成可復用的測試用例而不僅僅是簡單的代碼復用。因此,基于域的測試提供的是一種用于產生和復用測試用例的結構。在基于域的測試中,域分析和領域建模便于測試用例在三個層次的抽象復用,這種方法的優點如下:

1) 分離簡化了測試套件生成的每一步。

2) 基于域的測試可以用來作為測試生成工具,一個“可重復使用的”測試案例發生器,或者用來識別回歸測試套件。

3) 基于域的測試復用體現在對域的復用和測試用例的復用。

圖1 基于域的測試過程

同時,基于域的測試在針對修改軟件的測試時擁有巨大優勢。修改是在軟件開發生命周期的維護階段進行,這些修改可以是增加新的功能和特性、糾正錯誤、改善軟件性能或資源使用的形式。針對修改軟件的測試過程涉及回歸測試和設置回歸測試運行中的回歸測試套件,基于域的測試形成了一個家族式的測試生成方法,家族中的每個元素特征一一對應領域分析和建模的每個問題域,因而使用基于域的測試對修改后的軟件進行重新測試,可以確保修改和未變動部分功能正常。

3.2.2基于模型的測試

基于模型的測試是一種從抽象的形式化模型中自動化推導出具體的測試用例并執行的測試方法。基于模型的測試允許從系統的行為描述生成大量的測試用例,基于相同的測試用例描述和運行,許多不同類型的腳本可以被執行,同時,測試模型也大面積覆蓋了被測應用程序,從而使得測試過程更加高效。模型代表了系統的行為,盡管隨著時間的推移,軟件的版本規格可能會發生改變,但系統的大部分行為信息依然可以在測試中被復用。

隨著統一建模語言(Unified Modeling Language,UML)的普及與發展,基于模型的測試也越來越發揮著重要作用。通常一個良好模型的建立,可以自動生成高質量的測試用例,同時極大方便測試用例的共享和復用。與其他測試技術相比,基于模型的測試具有以下特點[5]:

1) 根據被測試應用程序的分析設計模型,生成測試模型,進而產生測試用例并執行,對測試結果進行分析評價。

2) 測試用例可以利用模型自動生成,大大提高了測試的自動化,同時測試依據覆蓋準則,提高了測試的效率。

3) 一定程度上解決了測試失效辨識問題,善于發現其他測試技術難以發現的故障和問題,保證了軟件質量。

4) 有利于測試用例的共享和復用。

圖2 基于模型的測試過程

3.2.3內置測試

內置測試是一種在構件中插入測試點,并在測試點處預設代碼,收集執行信息,從而將測試機制在測試之前內置到構件中去,簡化了測試,減少了測試代價[6]。內置測試為構件增加一種“測試/維護”模式,在該模式下可以激活測試點處的預設代碼,極大地方便了構件測試。

內置測試將測試作為軟件的內在固有屬性,把內置測試代碼作為成員函數寫入源代碼,它與對象中的構造函數和析構函數具有相同的語法功能,大大增強了軟件系統中自包含的概念。得益于構件復用技術的發展,內置測試構件也可以被繼承和復用,極大地增強了軟件的可維護性、再工程軟件資產的可維護性,并確保了軟件運行的一致性。內置測試過程具有如下特點:

1) 開發構件時,在構件內部一些程序關鍵語句前后建立測試點,同時給每個測試點編號,用來唯一標識該測試點。

2) 測試點即在構件中插入的測試位置,用于引入測試數據或輸出測試結果。

3) 通過選擇測試點的方法對構件內部全部或部分重要功能和細節算法加以測試。

將測試用例永久的嵌入對象或構件內部,通過擴展機制繼承構件的功能,再以附加的測試接口調用這些測試用例。構件使用者在構件正常運行模式下,通過常規的接口來訪問構件的功能,在測試/維護模式下訪問附加的測試接口并執行內置的測試用例。

下面是一個簡單具有內置測試接口的對象的示例:

Class class-name{

//接口(附加)

Data declaration;

Constructor declaration;構造函數聲明

Destructor declaration;析構函數聲明

Function declaration;自定義函數聲明

Tests declaration;//內置測試聲明

//具體實現

Constructor;

Destructor;

Functions;

Test Cases;//內置測試用例

}BIT Object;

圖3 內置測試過程

3.3復用測試在面向對象框架和組件中的應用

面向對象的測試框架的概念類似于面向對象的應用程序框架。在面向對象的應用程序框架中,框架具有豐富的復用機制,它可以從不同的角度復用代碼、設計和分析[7]。一般框架復用代碼可以從兩個方面來講,一是利用框架從一個現有的組件庫生成應用程序,二是新組件可以從抽象超類中繼承大多數的實現。當然,框架能復用代碼的最主要原因是其復用了設計。框架提供了可復用的抽象算法和高級的設計方法,從而把一個大系統劃分成小的組件,并描述組件間的相互作用。通過標準接口能輕易利用少量現存的組件,來構建一個多層次的系統[7]。基于此,在一個面向對象的測試框架中,可重復使用的代碼段是測試腳本或測試策略,目標是重用測試腳本進行回歸測試并產生復雜的測試方案。采用基于框架的軟件測試方法,可以用框架作為復用組件的基本單位來實現軟件產品線,有效地降低軟件測試的成本,提高生產效率和軟件可靠性。

文獻[8]提供了一種基于類的可復用測試用例框架,這種框架可以在應用的工程設計階使用。而內置測試在對象和面向對象框架的水平上重點介紹了面向對象的框架設計,因此,可以擴展面向對象框架從代碼的可復用概念構建測試。在一個面向對象的環境中添加面向對象的內置測試代碼,有利于創建可復用、易于維護、健壯的測試代碼。嵌入內置測試代碼的軟件有兩種操作模式:正常模式(程序執行)和測試模式(測試和維護)。在正常模式下,內置測試代碼是非激活狀態,但可以在測試/維護模式下激活。在測試/維護模式下,利用測試封裝技術,將測試代碼作為內置測試構件嵌入到框架的測試點。這種方法有助于檢測由于修改和擴展框架造成的缺陷。嵌入內置測試代碼的主要優點如下:

1) 在沒有獲得任何代碼或功能行為的變化情況下,增加了框架的可控制性和可觀察性,

2) 測試組件如果需要可以在運行時動態地從框架中添加/分離。

圖4 基于類的可復用測試用例框架結構圖

4結語

盡管在許多研究文獻中存在質量保證技術、單元測試技術、自動化和故障預測模型,對減少測試工作有過系統性的研究。但出人意料的是,沒有文獻調查研究過面向復用的方法減少了測試工作。其中,首次確認復用測試的應用領域是回歸測試(在開發生命周期的維護階段進行)、測試子類、測試使用的類庫、測試面向對象的應用程序框架和組件。

本文第一個目標是找到現有的面向復用的測試方法,以幫助減少測試工作。經過文獻調查確定了基于域的測試、基于模型的測試、測試模式、內置測試、測試框架和測試環境等面向復用的測試方法。本文第二個目標是要找到合適的技術來減少測試工作,而不會降低軟件的質量。最近的趨勢是朝內置測試和基于模型的測試的方向發展。內置的測試和基于模型的測試中使用不同的方式來測試框架、組件并使用框架和組件開發應用程序,例如軟件產品線。

參 考 文 獻

[1] 馬海云,張少剛.軟件質量保證與軟件測試技術[M].北京:國防工業出版社,2011.

MA Haiyun, ZHANG Shaogang. Software Quality Assurance and Software Testing Technology[M]. Beijing: National Defense Industry Press,2011.

[2] 楊芙清,梅宏.面向復用的軟件資產與過程管理[M].北京:清華大學出版社,2008.

YANG Fuqing, HONG Mei. Asset and Process Management for Software Reuse[M]. Beijing: Tsinghua University Press,2008.

[3] 郁蓮.軟件測試方法與實踐[M].北京:清華大學出版社,2008.

YU Lin. Software Testing Methods and Practice[M]. Beijing: Tsinghua University Press,2008.

[4] 周曉波.構件回歸測試方法研究與實現[D].昆明:昆明理工大學,2012:8-9.

ZHOU Xiaobo. Research and Implementation for Method of Component Regression Testing[D]. Kunming: Kunming University of Science and Technology,2012:8-9.

[5] 吳艷,張惠.基于模型的軟件測試方法研究[J].計算機系統應用,2008(8):87-90.

WU Yan, ZHANG Hui. Software Testing Method based on Model Studies[J]. Computer System & Application,2008(8):87-90.

[6] 高媛,陳立潮,張永梅.軟件構件內置測試技術研究[J].自動化技術與應用,2007(7):28-30.

GAO Yuan, CHEN Lichao, ZHANG Yongmei. The Research on Software Component Built-in Testing[J]. Techniques of Automation and Applications,2007(7):28-30.

[7] 包龍翔,曹抗震.設計面向對象的軟件框架[J].計算機應用研究,2003(3):27-30.

BAO Longxiang, CAO Kangzhen. Design of Object-oriented Software Framework[J]. Applications Research of Computers,2003(3):27-30.

[8] Wang, Y., King, G., Fayad, M., et al. 2000. On Built-in Test Reuse in Object-Oriented Framework Design[J]. ACM Journal on Computing Surveys,1998,23(23):60-64.

版 權 聲 明

本刊已許可萬方數據庫、中國學術期刊(光盤版)電子雜志社在中國知網及其系列數據庫等產品中以數字化方式復制、匯編、發行、信息網絡傳播本刊全文。著作權使用費與本刊稿酬一并支付。作者向本刊提交文章發表的行為即視為同意我編輯部上述聲明。

《計算機與數字工程》編輯部

中圖分類號TP311.5

DOI:10.3969/j.issn.1672-9722.2016.03.017

作者簡介:石金周,男,碩士研究生,研究方向:軟件工程。汪海濤,女,碩士,副教授,碩士生導師,研究方向:軟件工程。姜瑛,女,博士,教授,碩士生導師,研究方向:軟件工程。陳星,男,碩士,講師,研究方向:軟件工程。

基金項目:國家自然科學基金(編號:61462049)資助。

收稿日期:2015年9月4日,修回日期:2015年10月27日

主站蜘蛛池模板: 97国产成人无码精品久久久| 91精品专区国产盗摄| 国产人成午夜免费看| 热久久这里是精品6免费观看| 亚瑟天堂久久一区二区影院| 国产一区二区三区免费观看| 免费又黄又爽又猛大片午夜| 国产爽歪歪免费视频在线观看| 精品撒尿视频一区二区三区| 88av在线播放| 精品无码日韩国产不卡av| 欧美自拍另类欧美综合图区| 亚洲欧美日韩中文字幕一区二区三区| 中文字幕中文字字幕码一二区| 都市激情亚洲综合久久| 无码高清专区| 999国内精品久久免费视频| 国产第一页屁屁影院| a级毛片免费看| 久久亚洲高清国产| 国产自无码视频在线观看| 乱码国产乱码精品精在线播放| 麻豆国产精品一二三在线观看| 永久天堂网Av| 国产91av在线| 爱爱影院18禁免费| 另类专区亚洲| 91久久大香线蕉| 日韩精品久久久久久久电影蜜臀| 国产精品.com| 久久久久亚洲AV成人人电影软件| 99久久国产自偷自偷免费一区| 国产噜噜噜视频在线观看 | 国产欧美视频在线| 在线观看免费国产| 亚洲国产成人精品青青草原| 日韩av高清无码一区二区三区| 国产高颜值露脸在线观看| 日韩中文精品亚洲第三区| 天天色天天操综合网| 在线国产三级| 大学生久久香蕉国产线观看| 欧美国产综合色视频| 毛片视频网| 久久无码av三级| 国产成人一区免费观看 | 五月丁香在线视频| 国产一区二区福利| 中美日韩在线网免费毛片视频| 亚洲成在线观看 | 欧美97色| 无码AV高清毛片中国一级毛片| 久久久久久国产精品mv| 欧美成人一级| 一区二区三区精品视频在线观看| 高潮爽到爆的喷水女主播视频| 国产精品内射视频| 中文一级毛片| 国产精品漂亮美女在线观看| 中文字幕欧美日韩高清| 精品丝袜美腿国产一区| 无码中文AⅤ在线观看| 国产精品亚洲日韩AⅤ在线观看| 欧美日韩一区二区三区在线视频| 99久久精品国产综合婷婷| 久久美女精品| 午夜不卡视频| 国产va在线观看| 77777亚洲午夜久久多人| 国产真实乱了在线播放| www.av男人.com| 99久久精品久久久久久婷婷| 91年精品国产福利线观看久久 | 亚洲精品第一页不卡| 中文字幕亚洲电影| 精品亚洲国产成人AV| 99草精品视频| 国产精品久久久久鬼色| 日韩在线观看网站| 亚洲欧美一区二区三区麻豆| 亚洲欧美一区二区三区图片| 欧美福利在线|