• 
    

    
    

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

      軟件測試模型的探討

      2014-05-25 00:28:32孟慶鑫
      關(guān)鍵詞:測試計(jì)劃測試人員軟件測試

      孟慶鑫 張 龍

      (中國電子科技集團(tuán)公司電子科學(xué)研究院 北京 100041)

      軟件測試模型的探討

      孟慶鑫 張 龍

      (中國電子科技集團(tuán)公司電子科學(xué)研究院 北京 100041)

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

      軟件測試模型 V模型 W模型 靜態(tài)測試 動態(tài)測試

      1 概述

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

      (1)它將測試計(jì)劃、測試用例設(shè)計(jì)、測試執(zhí)行、還有測試結(jié)果收集與分析結(jié)合在一起。

      (2)不同的測試技術(shù),應(yīng)用于不同的時間點(diǎn)。

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

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

      2 現(xiàn)有測試模型分析

      2.1 V測試模型

      V測試模型結(jié)構(gòu)如圖1所示。

      圖1 V模型結(jié)構(gòu)圖

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

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

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

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

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

      2.2 W測試模型

      W測試模型結(jié)構(gòu)如圖2所示。

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

      圖2 W測試模型結(jié)構(gòu)圖

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

      2.3 X模型

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

      圖3 X測試模型結(jié)構(gòu)圖

      2.4 各模型的特點(diǎn)

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

      W模型,非常明確地標(biāo)注了生產(chǎn)周期中開發(fā)與測試之間的對應(yīng)關(guān)系。

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

      3 一種改進(jìn)的測試模型

      改進(jìn)的測試模型結(jié)構(gòu)如圖4所示。

      圖4 改進(jìn)型測試模型結(jié)構(gòu)圖

      3.1 模型包含的測試活動

      該模型包含5個重要的測試活動:測試計(jì)劃、測試設(shè)計(jì)與修改、靜態(tài)測試、動態(tài)測試、測試評估[2]。

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

      (2)測試設(shè)計(jì):測試設(shè)計(jì)包含驗(yàn)收測試設(shè)計(jì)、系統(tǒng)測試設(shè)計(jì)、集成測試設(shè)計(jì)、單元測試設(shè)計(jì)。測試設(shè)計(jì)環(huán)節(jié)則是在“測試計(jì)劃”環(huán)節(jié)的基礎(chǔ)上進(jìn)一步細(xì)化和分析,從而制定出針對于該項(xiàng)目及每個測試活動的測試策略、測試方案、測試用例設(shè)計(jì),測試腳本開發(fā),測試數(shù)據(jù)準(zhǔn)備等過程。

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

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

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

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

      ③系統(tǒng)測試。系統(tǒng)測試是對已集成好的軟件系統(tǒng)進(jìn)行徹底的測試,以驗(yàn)證軟件系統(tǒng)的正確性和性能等指標(biāo)是否滿足規(guī)約所指定的要求。系統(tǒng)測試應(yīng)該按照測試計(jì)劃進(jìn)行,其輸入、輸出和其他動態(tài)運(yùn)行行為應(yīng)該與軟件規(guī)約進(jìn)行比較。

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

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

      (5)測試評估:測試評估就是總結(jié)項(xiàng)目的測試結(jié)果,以提高企業(yè)測試的過程,評價測試的有效性。使測試人員及時了解到測試狀態(tài),發(fā)現(xiàn)測試中的優(yōu)點(diǎn)與缺點(diǎn),在下一個迭代過程或下一個項(xiàng)目中復(fù)用與改進(jìn)。這個時候測試計(jì)劃、測試用例、出錯統(tǒng)計(jì)和最終分析報告這些文檔就有用處了??梢酝ㄟ^分析這些文檔,加以總結(jié),評價測試的有效性。

      3.2 模型特點(diǎn)

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

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

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

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

      總結(jié)來說,改進(jìn)的測試模型將軟件測試過程活動完全獨(dú)立,貫穿于整個產(chǎn)品的周期,與其他流程并發(fā)地進(jìn)行,某個測試點(diǎn)準(zhǔn)備就緒時,就可以從測試準(zhǔn)備階段進(jìn)行到測試執(zhí)行階段。軟件測試可以盡早地進(jìn)行,并且可以根據(jù)被測物的不同而分層次進(jìn)行。

      這個示意圖5演示了在整個生產(chǎn)周期中某個層次上的一次測試“微循環(huán)”。圖中標(biāo)注的其它流程可以是任意的開發(fā)流程,例如設(shè)計(jì)流程或者編碼流程。也就是說,只要測試條件成熟了,測試準(zhǔn)備活動完成了,測試執(zhí)行活動就可以進(jìn)行了。

      圖5 改進(jìn)型測試模型測試流程示意圖

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

      4 結(jié)束語

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

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

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

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

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

      [5]方菲,孫家肅.面向?qū)ο蠡貧w測試技術(shù)研究[J].軟件學(xué)報,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

      猜你喜歡
      測試計(jì)劃測試人員軟件測試
      移動應(yīng)用眾包測試人員信譽(yù)度復(fù)合計(jì)算模型研究
      基于改進(jìn)V模型的軟件測試過程研究
      基于OBE的軟件測試課程教學(xué)改革探索
      嵌入式軟件單元測試方法研究
      軟件工程(2019年8期)2019-09-04 10:00:46
      EXCEL和VBA實(shí)現(xiàn)軟件測試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      高校分析測試中心測試隊(duì)伍建設(shè)方案初探
      山東化工(2018年20期)2018-04-02 16:30:53
      關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
      電子測試(2017年15期)2017-12-18 07:19:20
      淺析軟件測試中的心理學(xué)應(yīng)用
      軟件測試工程化模型及應(yīng)用研究
      犯罪心理測試人員素質(zhì)要求分析
      连南| 临邑县| 枣庄市| 梧州市| 瓮安县| 广昌县| 韶关市| 合水县| 河东区| 文山县| 呈贡县| 平武县| 宜宾市| 巴青县| 灵寿县| 曲周县| 萍乡市| 泰兴市| 刚察县| 志丹县| 合山市| 扎囊县| 涟源市| 施秉县| 莱芜市| 余姚市| 光山县| 连州市| 灌阳县| 巫山县| 桐乡市| 沙雅县| 汉川市| 南昌县| 孝昌县| 阳山县| 景洪市| 陈巴尔虎旗| 仲巴县| 永吉县| 宁南县|