第01章軟件測試概述_第1頁
第01章軟件測試概述_第2頁
第01章軟件測試概述_第3頁
第01章軟件測試概述_第4頁
第01章軟件測試概述_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1章軟件測試概述

軟件測試是軟件工程中的重要部分,是確保軟件質(zhì)量的重要手段。本章概括地介紹了軟件測試的基本概念,包括軟件測試的原則、分類和工作流程等基本知識。

軟件測試是軟件工程的一個重要部分,是確保軟件工程質(zhì)量的重要手段。最近幾年來,由于軟件工程的復(fù)雜度的不斷增強,更由于軟件的工業(yè)化發(fā)展趨勢,軟件測試得到廣泛的重視。1.1軟件、軟件危機、軟件工程1.1.1軟件、軟件危機、軟件工程的基本概念計算機軟件:是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合軟件危機:在計算機軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題,軟件生產(chǎn)與市場需求出現(xiàn)極不適應(yīng)的嚴(yán)重現(xiàn)象軟件工程:應(yīng)用計算機科學(xué)、數(shù)學(xué)及管理科學(xué)等原理開發(fā)軟件的工程

一個軟件產(chǎn)品從形成概念開始,經(jīng)過開發(fā)、測試、使用和維護(hù),直到最后退出使用的全過程稱為軟件生存周期。軟件生存周期根據(jù)軟件所處的狀態(tài),以及軟件開發(fā)活動的目的和任務(wù),可劃分為若干個階段。一般軟件生存周期包括軟件定義、軟件開發(fā)、軟件測試、軟件使用與維護(hù)等幾個部分。1.1.2軟件工程的目標(biāo)及其一般開發(fā)過程

1.軟件定義可行性分析的任務(wù)是了解用戶的要求及實現(xiàn)環(huán)境,從技術(shù)、經(jīng)濟和社會等幾個方面研究并論證軟件系統(tǒng)的可行性。需求分析的任務(wù)是確定所要開發(fā)軟件的功能需求、性能需求和運行環(huán)境約束,編制軟件需求規(guī)格說明、軟件系統(tǒng)的確認(rèn)測試準(zhǔn)則。軟件的性能需求包括軟件的適應(yīng)性、安全性、可靠性、可維護(hù)性錯誤處理等。2.軟件開發(fā)軟件開發(fā)是按照需求規(guī)格說明的要求,由抽象到具體,逐步生成軟件的過程。軟件開發(fā)一般由設(shè)計、實現(xiàn)和測試等階段組成。3.軟件測試軟件需經(jīng)過嚴(yán)密的測試,以發(fā)現(xiàn)軟件在整個設(shè)計過程中存在的問題并加以糾正。整個測試過程分單元測試、集成測試、系統(tǒng)測試以及驗收測試四個階段進(jìn)行。測試的方法主要有白盒測試和黑盒測試。4.軟件使用和維護(hù)軟件的使用是在軟件通過測試后,將軟件安裝在用戶確定的運行環(huán)境中移交給用戶使用。軟件的維護(hù)是對軟件系統(tǒng)進(jìn)行修改或?qū)浖枨笞兓龀龇磻?yīng)的過程。1.1.3可供選擇的軟件過程模型軟件開發(fā)過程中存在各種復(fù)雜因素,為了解決由此而帶來的種種問題,軟件開發(fā)者們經(jīng)過多年的摸索,給出了多種實現(xiàn)軟件工程的方式——軟件過程模型,如瀑布過程模型、螺旋過程模型和增量過程模型等。1.瀑布過程模型瀑布過程模型反映了人們早期對軟件工程的認(rèn)識水平,是人們所熟悉的一種線性思維的體現(xiàn)。瀑布過程模型強調(diào)階段的劃分及其順序性、各階段工作及其文檔的完備性,是一種嚴(yán)格線性的、按階段順序的、逐步細(xì)化的開發(fā)模式,如圖1-1所示。圖1-1瀑布過程模型2.螺旋過程模型螺旋過程模型的基本思路是,依據(jù)前一個版本的結(jié)果構(gòu)造新的版本,這個不斷重復(fù)迭代的過程形成了一個螺旋上升的路徑,如圖1-2所示。圖1-2螺旋過程模型3.增量過程模型有些時候可能會用一種幾乎連續(xù)的過程小幅度地推進(jìn)項目,這就是增量過程模型,如圖1-3所示。圖1-3增量過程模型4.快速原型過程模型

快速原型過程模型首先是快速進(jìn)行系統(tǒng)分析,

在設(shè)計人員和用戶的緊密配合下,快速確定軟件系統(tǒng)的基本要求,盡快實現(xiàn)一個可運行的、功能簡單的原型系統(tǒng),然后通過對原型系統(tǒng)逐步求精,不斷擴充完善得到最終的軟件系統(tǒng)。

敏捷軟件過程模型是一種迭代式增量軟件開發(fā)過程。敏捷開發(fā)方法是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項目的構(gòu)建被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備集成和可運行的特征。換言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。

5.敏捷過程模型敏捷方法適用于小塊工作.這些工作位于每次迭代以及迭代結(jié)尾發(fā)布的工作軟件當(dāng)中.敏捷方法的主要優(yōu)勢在于,它能完全適應(yīng)用戶環(huán)境,而且對產(chǎn)品進(jìn)行持繼迭代.它更注重交付能工作的軟件,而不是實現(xiàn)需求規(guī)范中定義的需求.

以上5種模型只是眾多軟件過程模型中較為典型的,除此之外還有噴泉模型、統(tǒng)一軟件開發(fā)過程模型等。介紹軟件過程模型的目的是為了突出軟件工程中軟件過程模型的重要地位,從某種意義上說,不了解軟件過程模型,就不了解軟件工程。1.2軟件缺陷與軟件故障1.什么是軟件缺陷和軟件故障軟件缺陷是存在于軟件(文檔、數(shù)據(jù)、程序)之中的那些不希望或不可接受的偏差。其結(jié)果是軟件運行于某一特定條件時出現(xiàn)軟件故障,這時稱軟件缺陷被激活。軟件故障是指軟件運行過程中出現(xiàn)的一種不希望或不可接受的內(nèi)部狀態(tài),此時若無適當(dāng)措施(容錯)加以及時處理,便產(chǎn)生軟件失效。2.軟件缺陷和軟件故障案例(1)“千年蟲”問題(2)阿麗亞娜5型火箭發(fā)射失敗(3)“沖擊波”病毒(4)Windows2000中文輸入法漏洞(5)金山詞霸出現(xiàn)的錯誤(6)北京奧運會門票系統(tǒng)故障(7)2009年2月份Google的Gmail故障(8)中國鐵路網(wǎng)上訂票出故障遭質(zhì)疑

軟件復(fù)雜性交流不夠、交流上有誤解或者根本不進(jìn)行交流程序設(shè)計錯誤需求變化時間壓力代碼文檔貧乏軟件開發(fā)工具3.軟件產(chǎn)生錯誤的原因1.3軟件質(zhì)量與質(zhì)量模型

軟件質(zhì)量是軟件的生命,它直接影響軟件的使用與維護(hù)。通常軟件質(zhì)量由以下幾方面進(jìn)行評價。①軟件需求是衡量軟件質(zhì)量的基礎(chǔ),不符合需求的軟件就不具備質(zhì)量。設(shè)計的軟件應(yīng)在功能、性能等方面都符合要求,并能可靠地運行。②軟件結(jié)構(gòu)良好,易讀、易于理解,并易于修改、維護(hù)。③軟件系統(tǒng)具有友好的用戶界面,便于用戶使用。④軟件生存周期中各階段文檔齊全、規(guī)范,便于配置、管理。

軟件的質(zhì)量因素很多,如正確性、精確性、可靠性、容錯性、性能、效率、易用性、可理解性、簡潔性、可復(fù)用性、可擴充性、兼容性等。軟件質(zhì)量因素也稱為軟件質(zhì)量特性,反映了質(zhì)量的本質(zhì)。討論一個軟件的質(zhì)量,問題最終要歸結(jié)到定義軟件的質(zhì)量特性。

面對眾多的質(zhì)量因素如何取折衷,這實際上就是區(qū)分質(zhì)量因素對軟件質(zhì)量影響程度輕重的問題,這個問題已經(jīng)有了解決方案,即軟件質(zhì)量模型。圖1-4所示為McCall軟件質(zhì)量模型,質(zhì)量模型中的質(zhì)量概念基于11個特性之上,這11個特性分別面向軟件產(chǎn)品的運行、修正、轉(zhuǎn)移。圖1-4McCall質(zhì)量模型

圖1-5所示為ISO/IEC9126-1991標(biāo)準(zhǔn)規(guī)定的軟件質(zhì)量度量模型。它由3層組成,其中第1層稱為質(zhì)量特性,第2層稱為質(zhì)量子特性,第3層稱為度量。圖1-5ISO軟件質(zhì)量度量模型

圖1-6所示為新的ISO/IEC9126軟件質(zhì)量模型,軟件質(zhì)量包括“內(nèi)部質(zhì)量”、“外部質(zhì)量”和“使用質(zhì)量”三部分。圖1-6新的ISO/IEC9126軟件質(zhì)量模型

所謂的內(nèi)部質(zhì)量是從內(nèi)部觀點出發(fā)的軟件產(chǎn)品特性的總體,是針對內(nèi)部質(zhì)量需求被測量和評價的質(zhì)量。內(nèi)部質(zhì)量特征主要包括:可維護(hù)性、靈活性、可移植性、可重用性、可讀性、可測試性、可理解性。

外部質(zhì)量的定義是:軟件產(chǎn)品在規(guī)定條件下使用時滿足需求的程度。外部質(zhì)量是從外部觀點出發(fā)的軟件產(chǎn)品特性的總體,它是當(dāng)軟件執(zhí)行時,更典型地是使用外部度量在模擬環(huán)境中,用模擬數(shù)據(jù)測試時,所被測量和評價的質(zhì)量,即在預(yù)定的系統(tǒng)環(huán)境中運行時可能達(dá)到的質(zhì)量水平。外部質(zhì)量特征主要包括:正確性、可用性、效率、可靠性、完整性、適應(yīng)性、精確性、堅固性。

使用質(zhì)量的定義是:在規(guī)定的使用環(huán)境下軟件產(chǎn)品使特定用戶在達(dá)到規(guī)定目標(biāo)方面的能力。它是從用戶觀點出發(fā),來看待軟件產(chǎn)品用于特定環(huán)境和條件下的質(zhì)量,反映的是從用戶角度看到的軟件產(chǎn)品在適當(dāng)系統(tǒng)環(huán)境下滿足其需求的程度。使用質(zhì)量用以下質(zhì)量特征表述:有效性、生產(chǎn)率、安全性、滿意程度等。1.4軟件測試

1.4.1軟件測試的定義及目的簡單地說,軟件測試就是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。

在IEEE提出的軟件工程標(biāo)準(zhǔn)術(shù)語中,軟件測試被定義為:“使用人工和自動手段來運行或測試某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或弄清楚預(yù)期結(jié)果與實際結(jié)果之間的差別。”軟件測試是與軟件質(zhì)量密切聯(lián)系在一起的,歸根結(jié)底,軟件測試是為了保證軟件質(zhì)量。

軟件測試是一個找錯的過程。軟件測試的過程亦是程序運行的過程。程序運行需要數(shù)據(jù),為測試設(shè)計的數(shù)據(jù)稱為測試用例。測試用例的設(shè)計原則是盡可能暴露程序中的錯誤。

軟件是由人來完成的,所有由人做的工作都不會是完美無缺的。軟件開發(fā)是個很復(fù)雜的過程,期間很容易產(chǎn)生錯誤。無論是軟件從業(yè)人員、專家和學(xué)者做了多大的努力,軟件錯誤仍然存在。因而大家也得到了一種共識:軟件中殘存著錯誤,這是軟件的一種屬性,是無法改變的。所以通常說軟件測試的目的就是為了發(fā)現(xiàn)盡可能多的缺陷,并期望通過改錯來把缺陷統(tǒng)統(tǒng)消滅,以期提高軟件的質(zhì)量。一個成功的測試用例在于發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的缺陷。

軟件測試的目的是以最少的人力、物力和時間找出軟件中潛在的各種錯誤和缺陷,通過修正各種錯誤和缺陷提高軟件質(zhì)量,回避軟件發(fā)布后由于潛在的軟件缺陷和錯誤造成的隱患所帶來的商業(yè)風(fēng)險。1.4.2軟件測試的原則

(1)盡早測試

(2)

全面測試

(3)全過程測試

(4)

獨立的、迭代的測試

(5)Pareto原則

(6)對測試出的錯誤結(jié)果一定要有一個確認(rèn)的過程。(7)制訂嚴(yán)格的測試計劃。制訂嚴(yán)格的測試計劃,并把測試時間安排得盡量寬松,不要希望在極短的時間內(nèi)完成一個高水平的測試。(8)完全測試是不可能的,測試需要終止。(9)注意回歸測試的關(guān)聯(lián)性。(10)妥善保存一切測試過程文檔。1.4.3軟件測試模型

軟件測試過程模型是對測試過程一種抽象,用于定義軟件測試的流程和方法。隨著測試過程管理的發(fā)展,軟件測試專家通過實踐總結(jié)出了很多很好的測試過程模型。這些模型將測試活動進(jìn)行了抽象,并與開發(fā)活動有機的進(jìn)行了結(jié)合,是測試過程管理的重要參考依據(jù)。1.V模型V模型是最具有代表意義的測試模型,反映出了測試活動與分析設(shè)計活動的關(guān)系。

V模型指出,單元和集成測試應(yīng)檢測程序的執(zhí)行是否滿足軟件設(shè)計的要求;系統(tǒng)測試應(yīng)檢測系統(tǒng)功能、性能的質(zhì)量特性是否達(dá)到系統(tǒng)要求的指標(biāo);驗收測試確定軟件的實現(xiàn)是否滿足用戶需要或合同的要求。圖1-7軟件測試V模型2.W模型W模型由兩個V字型模型組成,分別代表測試與開發(fā)過程。

W模型強調(diào):測試伴隨著整個軟件開發(fā)周期,而且測試的對象不僅僅是程序,需求、設(shè)計等同樣要測試,也就是說,測試與開發(fā)是同步進(jìn)行的。圖1-8軟件測試W模型3.H模型H模型將測試活動完全獨立出來,形成了一個完全獨立的流程,將測試準(zhǔn)備活動和測試執(zhí)行活動清晰地體現(xiàn)出來。

H模型揭示了軟件測試是一個獨立的流程,貫穿產(chǎn)品整個生命周期,與其他流程并發(fā)地進(jìn)行。圖1-9軟件測試H模型4.其他模型

除上述幾種常見模型外,還流傳著其他幾種模型,例如X模型、前置測試模型等。

X模型提出針對單獨的程序片段進(jìn)行相互分離的編碼和測試,此后通過頻繁的交接,通過集成最綜合成為可執(zhí)行的程序。前置測試模型體現(xiàn)了開發(fā)與測試的結(jié)合,要求對每一個交付內(nèi)容進(jìn)行測試。1.4.4軟件測試的分類1.按測試方式分類靜態(tài)測試動態(tài)測試2.按測試方法分類白盒測試黑盒測試3.按測試過程分類單元測試集成測試系統(tǒng)測試驗收測試4.按測試目的分類功能測試健壯性測試接口測試性能測試強度測試壓力測試用戶界面測試安全測試可靠性測試安裝/反安裝測試文檔測試恢復(fù)測試兼容性測試1.4.5軟件測試流程

軟件測試流程就是指從軟件測試開始到軟件測試結(jié)束經(jīng)過的一系列準(zhǔn)備、執(zhí)行、分析的過程。軟件測試工作一般要通過制訂測試計劃、設(shè)計測試、測試準(zhǔn)備和測試環(huán)境的建立、執(zhí)行測試、評估測試和總結(jié)測試工作等幾個階段來完成。圖1-10軟件測試流程測試流程1.測試計劃2.測試設(shè)計3.測試準(zhǔn)備和測試環(huán)境的建立4.執(zhí)行測試5.測試評估6.測試總結(jié)1.4.6軟件測試發(fā)展歷程和趨勢軟件測試是伴隨著軟件的產(chǎn)生而產(chǎn)生的,有了軟件的生成和運行就必然有軟件測試。在早期的軟件開發(fā)過程中,測試的含義比較窄,將測試等同于“調(diào)試”,目的是糾正軟件中已經(jīng)知道的故障,常常由軟件開發(fā)人員自己完成這部分工作。對測試的投入極少,測試介入得也晚,常常是等到形成代碼,產(chǎn)品已經(jīng)基本完成時才進(jìn)行測試。

直到1957年,軟件測試才開始與調(diào)試區(qū)別開來,成為一種發(fā)現(xiàn)軟件缺陷的活動。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論