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

軟件測試模型的探討

2014-05-25 00:28:32孟慶鑫
計算機與網絡 2014年5期
關鍵詞:模型設計

孟慶鑫 張 龍

(中國電子科技集團公司電子科學研究院 北京 100041)

軟件測試模型的探討

孟慶鑫 張 龍

(中國電子科技集團公司電子科學研究院 北京 100041)

軟件測試是軟件工程的一個階段,也是保障軟件質量必不可少的重要一環。軟件測試模型是軟件測試的工作框架,用于指導軟件測試過程。本文在深入研究各種綜合測試技術的基礎上,通過對比分析各種主流的測試模型,提出了一種新的軟件測試模型,包括靜態測試、動態測試,測試評估等活動,把這些活動嵌入到軟件開發的整個生命周期,能更好地規劃軟件開發和測試等一系列活動,提高了軟件生產效率及其質量,該模型還適合于迭代開發。

軟件測試模型 V模型 W模型 靜態測試 動態測試

1 概述

信息時代的飛速發展,使得軟件產品在社會生活的各個領域得到廣泛應用,軟件產品本身越來越復雜。如何提高軟件質量,提高軟件可靠性越來越受到研究機構和企業的關注。長期的軟件生產實踐表明,軟件成功與否的關鍵技術在于軟件測試[1]。正如軟件開發有過程模型一樣,軟件測試也有測試模型。它描述了軟件測試過程所包含的主要活動,以及活動之間的相互關系,描述軟件測試的各項活動與軟件開發過程的其他活動之間的關系。軟件測試模型把軟件測試用例(TEST CASE)的設計方法集成到一系列已經周密計劃過的步驟中去,從而有效地減少測試活動中不必要的資源消耗,使得測試活動更有效率。一個好的軟件測試模型,應具有以下特征:

(1)它將測試計劃、測試用例設計、測試執行、還有測試結果收集與分析結合在一起。

(2)不同的測試技術,應用于不同的時間點。

(3)使軟件設計中的錯誤盡可能早地暴露出來。

軟件開發的幾十年中,軟件專家總結出了很多開發模型。但在這些模型中,測試作為軟件開發的一個階段,被附加在開發模型后面,忽視了開發活動和測試活動是并行進行的,從而使得測試階段使用的資源和占用的時間都大大增加。近年來,人們逐步認識到軟件測試的重要性,提出了一些新的測試模型如V模型、W模型、X模型等等。本文分析研究了傳統的軟件測試模型,分析了其不足之處,并提出了一種的測試模型。

2 現有測試模型分析

2.1 V測試模型

V測試模型結構如圖1所示。

圖1 V模型結構圖

V模型[2]是目前軟件測試模型中較廣泛使用的模型。如圖1所示,左邊下降的是開發過程各階段,與此對應的是右邊測試過程的各個階段。測試先從單元測試開始,然后是集成測試、系統測試和驗收測試。例如:單元測試檢查代碼是否符合原先的詳細設計;系統測試檢查集成后的產品是否符合需求說明書的要求。V模型的優點是非常明確的標明了測試過程中存在的不同階段,并且清楚地描述了這些測試階段和開發過程各階段的對應關系。V模型的缺點也是顯而易見的:

(1)測試活動在編碼完成之后才開始,會錯過早期發現需求分析和設計中隱含的錯誤的時機。最嚴重的錯誤是那些導致程序無法滿足需求的錯誤,而需求設計階段引入的錯誤往往占了軟件錯誤中的很大一部分。

(2)開發人員編碼完成,就等著測試小組提交缺陷報告,然后修改程序。人力資源的利用率低,也不利于小組間的合作。

(3)這個模型測試過程和開發過程在時間上被嚴格地劃分開,這樣不利于測試計劃、測試用例、出錯統計和最終分析報告等文檔的保存。

(4)每個測試階段在充分完成后才能進入下個階段,并且一旦該階段完成,理論上是不允許再回來修改或執行的。

2.2 W測試模型

W測試模型結構如圖2所示。

W模型是對V模型的改進,針對“測試是開發之后的一個階段”等問題,W模型強調需求、功能和設計同樣要測試,W模型由兩個V模型組成,分別代表測試與開發過程,圖中明確表示出了測試與開發的并行且相對獨立的關系。W模型在V模型的基礎上增加需求測試、規格測試和設計測試,目的是需求的完整性、一致性、準確性、可測試性等。W模型提倡軟件測試并不等于程序測試這個理念,不應僅限于程序測試的范圍內,而應貫穿于軟件定義與設計開發的整個過程。因此,需求分析、概要設計、詳細設計以及程序編碼等各階段所得到的文檔及程序都應成為軟件測試的對象。

圖2 W測試模型結構圖

W模型雖然強調了開發活動與測試活動之間的并行關系,但其實還可以通過發掘各個測試過程之間的并行性來進一步提高模型的效率;另外,W模型里雖然刻畫了各個測試階段與對應的修改工作之間的微循環關系,但是該模型將循環的關系僅僅局限于單個測試階段之內的做法容易對測試人員造成誤導。實際上,當在某個階段發現問題并修改之后,往往要回到最初,從單元測試著手進行回歸測試。最后,W模型中未能準確描述每個開發或測試階段應交付的產品,測試對象不明確,未能包含過程控制以及階段開始和結束的判定。

2.3 X模型

X模型的左邊描述的是針對單獨程序片段所進行的相互分離的編碼和測試,此后將進行頻繁的交接,通過集成最終成為可執行的程序,然后再對這些可執行程序進行測試。己通過集成測試的成品可以進行封裝并提交給用戶,也可以作為更大規模和范圍內集成的一部分。多根并行的曲線表示變更可以在各個部分發生。由圖3中可見,X模型還定位了探索性測試,這是不進行事先計劃的特殊類型的測試,這一方式往往能幫助有經驗的測試人員在測試計劃之外發現更多的軟件錯誤。但這樣可能對測試造成人力、物力和財力的浪費,對測試員的熟練程度要求比較高。

圖3 X測試模型結構圖

2.4 各模型的特點

V模型,非常明確地標注了測試過程中存在的不同類型的測試。

W模型,非常明確地標注了生產周期中開發與測試之間的對應關系。

X模型,這個模型指出整個測試過程是在探索中進行的。

3 一種改進的測試模型

改進的測試模型結構如圖4所示。

圖4 改進型測試模型結構圖

3.1 模型包含的測試活動

該模型包含5個重要的測試活動:測試計劃、測試設計與修改、靜態測試、動態測試、測試評估[2]。

(1)測試計劃:測試計劃包含驗收測試計劃、系統測試計劃、集成測試計劃、單元測試計劃。專業的測試必須以一個好的測試計劃作為基礎,測試計劃應該作為測試的起始步驟和重要環節。測試計劃的目標是描述所有要完成的測試,包括完成所需的資源和進度。測試計劃應給出被測試軟件的背景信息、測試的目標和風險,以及所要執行的特定測試。測得太多不行,浪費人力財力;測得太少也不行,軟件的質量得不到保證。有效的測試方法就是明確和評價計算機系統的各種風險,能把這些風險縮小到測試范圍內是很重要的。要確定能接受多少風險,然后制定測試計劃實現這個目標。所以有經驗的測試人員會基于風險找到一個平衡點,逐步完成測試計劃[4]。

(2)測試設計:測試設計包含驗收測試設計、系統測試設計、集成測試設計、單元測試設計。測試設計環節則是在“測試計劃”環節的基礎上進一步細化和分析,從而制定出針對于該項目及每個測試活動的測試策略、測試方案、測試用例設計,測試腳本開發,測試數據準備等過程。

(3)靜態測試:靜態測試包括可行性報告靜態測試、需求分析說明書靜態測試、概要設計說明書、詳細設計說明書靜態測試、代碼靜態測試。靜態測試的基本特征是在對軟件進行分析、檢查和測試時不實際運行被測試的程序。靜態測試主要用于對各種軟件文檔進行測試,是軟件開發中行之有效的質量控制方法之一。在軟件開發的早期階段,由于可運行的代碼尚未產生,不可能進行動態測試,而這些階段的中間產品卻直接關系到軟件開發的成敗與開銷的大小,因此,在這些階段靜態測試就尤為重要。在軟件開發多年的生產實踐和教訓的基礎上,研究人員總結出了一些行之有效的靜態測試技術和方法,如正式檢查、結構化走通等。每當一個文檔通過了靜態測試,就標志著一項開發工作的總結,標志著項目取得了一定的進展,進入了一個新的階段。

(4)動態測試:動態測試就是傳統的測試階段,最基本特征就是通過運行軟件來檢驗軟件的動態行為和運行結果的正確性。動態測試包括兩個最基本的要素:被測試程序和測試數據。這個階段包括:

①單元測試。單元測試是對軟件中的基本組成部分進行測試。如一個模塊,一個過程等等。它是軟件動態測試中的最基本組成部分,也是最重要的部分之一,其目的是檢驗軟件基本組成單位的正確性。一個軟件單元的正確性是相對于該單位的規約而言的。因此,單元測試以被測單元的規約為基準。

于集成測試。集成測試是在軟件系統集成過程中所進行的測試,其主要目的是檢查軟件單位之間的接口是否正確。它根據集成測試計劃,一邊將模塊或其他軟件單位組合成越來越大的系統,一邊運行該系統,以分析所組成的系統是否正確,各組成部分是否合拍。

③系統測試。系統測試是對已集成好的軟件系統進行徹底的測試,以驗證軟件系統的正確性和性能等指標是否滿足規約所指定的要求。系統測試應該按照測試計劃進行,其輸入、輸出和其他動態運行行為應該與軟件規約進行比較。

④驗收測試。驗收測試旨在向軟件的購買者展示該軟件系統是否滿足其用戶的需求。驗收測試的測試數據通常是系統測試的測試數據的子集。所不同的是,驗收測試常常有軟件的購買者代表在現場,甚至是在軟件安裝使用的現場。這是軟件在投入使用之前的最后測試。

⑤回歸測試。回歸測試是在軟件維護階段,對軟件進行修改之后進行的測試。其目的是檢驗對軟件進行的修改是否正確。這里,修改的正確性有兩重含義:一是指所作的修改達到了預定的目的,如錯誤得到改正,能夠適應新的運行環境等;二是指不影響軟件的其他功能的正確性。回歸測試通常包括重新運行系統測試中的部分測試數據。因此,需要搞清哪些測試數據與被修改的代碼有關。在軟件開發過程中,保留測試數據與程序代碼之間的關系對回歸測試具有很大的幫助。回歸測試還往往需要使用針對所修改的代碼的測試數據。這樣的測試數據可以根據單元測試、集成測試和系統測試的方法產生。

(5)測試評估:測試評估就是總結項目的測試結果,以提高企業測試的過程,評價測試的有效性。使測試人員及時了解到測試狀態,發現測試中的優點與缺點,在下一個迭代過程或下一個項目中復用與改進。這個時候測試計劃、測試用例、出錯統計和最終分析報告這些文檔就有用處了。可以通過分析這些文檔,加以總結,評價測試的有效性。

3.2 模型特點

(1)測試全面:軟件不但包含了程序源代碼和數據文件,還包含了所有在需求、分析設計等階段產生的文檔。因此測試對象應該包含開發過程中的每一個交付。測試全面也指除了測試系統的功能外,也要測試系統的性能、可用性、兼容性、可維護性等非功能性進行測試。

(2)測試與開發并行化:軟件測試與開發過程的其他階段不再是串行工作方式,而是與整個開發過程并行進行。在該模型中有三條主線,中間一條是開發主線,左邊一條是每個階段的測試計劃的編寫和進行測試設計,這時可以驗證軟件是否具有可測試性。右邊的主線強調要對每個階段產生的中間可交付結果進行的靜態測試,力爭將缺陷控制在軟件開發過程的每一個階段。

(3)迭代測試:軟件開發過程中,需求分階段定義與實現,相應測試工作也按階段展開。在每一個階段里,起初定義的需求可能發生變更,或是提出新的需求,或是改變原有的需求,需求變更需要項目團隊重新進行需求分析,設計和實現代碼,開始新一輪的編碼-測試過程。對于測試工作而言,變更的需求需要測試人員重新審閱測試計劃,跟蹤并糾正以前提交的測試用例。腳本,修復錯誤,排除多余的成分,以增加新發現的功能等。在改進的測試模型中,這種開發和測試的迭代性得到了體現。

(4)全過程測試:改進的測試模型中也體現了“全過程測試”的概念[5]。軟件開發與軟件測試緊密結合,軟件開發和測試過程會彼此影響,這就要求測試人員對開發和測試的全過程進行充分的關注。全過程測試包含兩層含義。第一,測試人員要充分關注開發過程,對開發過程的各種變化及時做出響應。例如,當中間的開發過程改變,要對改變的內容及時進行靜態測試,并根據相應的改變,來調整測試計劃,修改測試用例的設計。第二,測試人員要對測試的全過程進行全程的跟蹤,在定測試計劃時建立測試過程度量標準,測試結束或是測試過程中,對測試進行評估,及時了解過程信息,調整測試策略。

總結來說,改進的測試模型將軟件測試過程活動完全獨立,貫穿于整個產品的周期,與其他流程并發地進行,某個測試點準備就緒時,就可以從測試準備階段進行到測試執行階段。軟件測試可以盡早地進行,并且可以根據被測物的不同而分層次進行。

這個示意圖5演示了在整個生產周期中某個層次上的一次測試“微循環”。圖中標注的其它流程可以是任意的開發流程,例如設計流程或者編碼流程。也就是說,只要測試條件成熟了,測試準備活動完成了,測試執行活動就可以進行了。

圖5 改進型測試模型測試流程示意圖

改進的測試模型揭示了一個原理:軟件測試是一個獨立的流程,貫穿產品整個生命周期,與其他流程并發地進行。改進的測試模型指出軟件測試要盡早準備,盡早執行。不同的測試活動可以是按照某個次序先后進行的,但也可能是反復的,只要某個測試達到準備就緒點,測試執行活動就可以開展。

4 結束語

本文指出了傳統測試模型的不足之處,并提出了相應的修正措施,提出了一種改進的軟件測試模型。該模型在理論上具有比傳統測試模型優秀的地方。進一步的工作就是把該模型的思想用于實際的項目中檢驗,并進行分析,以從實踐上論證該模型的可行性和優越性,具有一定的參考價值。

[1]鄭人杰,殷人昆,陶永雷.實用軟件工程[M].北京:清華大學出版社,1997.

[2]William E Lewis.Software Testing and Conlinuous Qualify imyrovement[M].Florida CRC Press,2000:41-45.

[3]張永梅,陳立潮,馬禮等.軟件測試技術研究[J].測試技術學報,2002,16(2);184-151

[4]李煒,陳瑛.一種有效的軟件測試模型[J].計算機工程與應用,2004,41(10):114-117.

[5]方菲,孫家肅.面向對象回歸測試技術研究[J].軟件學報,2001,12(3):372-376.

Discussion of Software Testing Model

MENG Qing-xin,ZHANG Long
(China Academy of Electronics and Information Technology,Beijing 100041,China)

Software testing is one phase of software engineering,software quality is essential to protect an important part。Software testing model is the work of software testing framework to guide the software testing process。In this paper,in-depth study of the various integrated testing technology on the basis of comparative analysis of the mainstream through the test model,a new model of software testing,Including static testing,dynamic testing,testing and evaluation,and other activities,these activities embedded in the entire software development life cycle,better planning software development and testing of a series of activities to enhance the efficiency and quality of software production,the model is also suitable for Iterative development。

software testing model;V model;W model;static test;dynamic testing

TP391.9

A

1008-1739(2014)05-66-4

定稿日期:2014-01-12

猜你喜歡
模型設計
一半模型
重要模型『一線三等角』
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
重尾非線性自回歸模型自加權M-估計的漸近分布
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 99久久精品免费看国产免费软件| 911亚洲精品| 成年人视频一区二区| 国产va视频| 国产成人喷潮在线观看| 在线欧美日韩国产| 欧美一区二区福利视频| 欧美中文字幕第一页线路一| 激情视频综合网| 丰满人妻被猛烈进入无码| 国产免费一级精品视频| 中文字幕乱码二三区免费| 国产毛片不卡| 激情综合网址| 热热久久狠狠偷偷色男同| 97综合久久| 国产精品欧美在线观看| 久久亚洲AⅤ无码精品午夜麻豆| 亚洲第一在线播放| 午夜精品久久久久久久无码软件| 国产打屁股免费区网站| 成人免费午间影院在线观看| 久久久久人妻一区精品| 谁有在线观看日韩亚洲最新视频 | 国产偷国产偷在线高清| 国产成在线观看免费视频| 国产在线视频自拍| 亚洲国产精品不卡在线| 亚洲人在线| 国产自在线拍| 国产精品一区二区在线播放| 日本高清免费不卡视频| 成人午夜久久| 久精品色妇丰满人妻| 免费又黄又爽又猛大片午夜| 91久久夜色精品国产网站| 中日无码在线观看| 亚洲制服丝袜第一页| 88av在线| 尤物成AV人片在线观看| 久久人妻xunleige无码| 91免费国产在线观看尤物| 亚洲性网站| 幺女国产一级毛片| 欧美三级视频在线播放| 免费激情网站| 国产精品人莉莉成在线播放| 成年人国产网站| 一级毛片基地| 亚洲欧美在线综合一区二区三区| 亚洲人成人伊人成综合网无码| 免费毛片视频| 国产农村1级毛片| 日韩在线视频网站| 中文字幕中文字字幕码一二区| 18黑白丝水手服自慰喷水网站| 国产成人1024精品| 欧洲亚洲欧美国产日本高清| 日韩欧美视频第一区在线观看| 久久精品无码一区二区国产区| 蜜桃视频一区二区| 成年av福利永久免费观看| 91精品亚洲| 国产精品真实对白精彩久久| 尤物精品视频一区二区三区| 亚洲综合18p| 亚洲综合狠狠| 国内精品小视频在线| 午夜精品久久久久久久99热下载 | 国产一区二区免费播放| 亚洲 欧美 偷自乱 图片| 综合成人国产| 亚洲欧美精品日韩欧美| 久久中文字幕av不卡一区二区| 毛片国产精品完整版| 亚洲天堂精品在线| 亚洲中文字幕在线精品一区| 国产裸舞福利在线视频合集| 国产精品丝袜视频| 免费高清毛片| 国产永久免费视频m3u8| 亚洲中文字幕久久无码精品A|