99久久99久久精品免费看蜜桃,亚洲国产成人精品青青草原,少妇被粗大的猛烈进出va视频,精品国产不卡一区二区三区,人人人妻人人澡人人爽欧美一区

首頁 > 文章中心 > 正文

軟件測試方法

前言:本站為你精心整理了軟件測試方法范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

軟件測試方法

摘要:開發(fā)過程中一次性開發(fā)成功或者無錯誤發(fā)生的幾率為零,因此在軟件的開發(fā)過程中需要不斷的完善,而這個不斷完善修改的過程就是軟件測試的過程。軟件測試也代表了了設(shè)計、編碼的最終復(fù)審。著重論述了目前軟件工程中普遍存在的一些測試問題,并對其產(chǎn)生的原因進(jìn)行了詳細(xì)的分析。介紹了軟件測試的本質(zhì),同時對目前流行的測試方法進(jìn)行了研究,提出了不同類型的軟件最佳的測試方案。

關(guān)鍵詞:軟件可靠性;軟件質(zhì)量;軟件測試;測試用例



1概述

信息技術(shù)的飛速發(fā)展,使軟件產(chǎn)品應(yīng)用到社會的各個領(lǐng)域,軟件產(chǎn)品的質(zhì)量自然成為人們共同關(guān)注的焦點。軟件開發(fā)商為了占有市場,必須把產(chǎn)品質(zhì)量作為企業(yè)的重要目標(biāo)之一,以免在激烈的競爭中被淘汰。用戶為了保證自己業(yè)務(wù)的順利完成,總是希望選用優(yōu)質(zhì)的軟件。質(zhì)量不佳的軟件產(chǎn)品不僅會使開發(fā)商的維護(hù)費用和用戶的使用成本大幅增加,還可能產(chǎn)生其他的責(zé)任風(fēng)險,在一些關(guān)鍵應(yīng)用,如民航訂票系統(tǒng)、銀行結(jié)算系統(tǒng)、證券交易系統(tǒng)等中使用質(zhì)量有問題的軟件,還可能造成災(zāi)難性的后果。

軟件危機曾經(jīng)是軟件界甚至整個計算機界最熱門的話題,為了解決這個危機,軟件從業(yè)人員、專家和學(xué)者做出了大量的努力。現(xiàn)在人們已經(jīng)逐步認(rèn)識到所謂的軟件危機實際上僅是一種狀況,那就是軟件中有錯誤,正是這些錯誤導(dǎo)致了軟件開發(fā)在成本、進(jìn)度和質(zhì)量上的失控。有錯是軟件的屬性,而且是無法改變的。因為軟件是由人來完成的,所有由人做的工作都不會是完美無缺的。問題在于應(yīng)該如何去避免錯誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯誤,使程序中的錯誤密度達(dá)到盡可能低的程度。

軟件工程學(xué)出現(xiàn)后,軟件開發(fā)被視為一項工程,以工程化的方法來進(jìn)行規(guī)劃和管理軟件的開發(fā)。事實上,不論采用什么技術(shù)和什么方法,軟件中出現(xiàn)錯誤總是難免的。采用新的語言、先進(jìn)的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出。測試是軟件開發(fā)的重要部分。統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中用在測試上的開銷要占30%到50%。如果把維護(hù)階段也考慮在內(nèi),討論整個軟件生存時期時,測試的成本比例也許會有所降低,但實際上維護(hù)工作相當(dāng)于二次開發(fā),仍至多次開發(fā),其中必定還包含有許多測試工作。系統(tǒng)的問題越早發(fā)現(xiàn),改正成本越低,破壞性越小,所以,在系統(tǒng)前要盡量多地把系統(tǒng)問題找出來,其手段就是有計劃、有組織地進(jìn)行充分的測試。

軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一組測試數(shù)據(jù),并利用這些測試數(shù)據(jù)運行程序,以發(fā)現(xiàn)程序錯誤的過程。根據(jù)測試數(shù)據(jù)設(shè)計方法,軟件測試可分為結(jié)構(gòu)測試和功能測試。在結(jié)構(gòu)測試過程中,測試者對程序的語句、分支和邏輯路徑進(jìn)行各種覆蓋測試,可以在不同點檢查程序的狀態(tài),以確定實際狀態(tài)與預(yù)期狀態(tài)是否一致。軟件測試的目的是發(fā)現(xiàn)錯誤,而不是確認(rèn)其正確性,而對已進(jìn)行的測試過程的程度進(jìn)行評估。

2測試方法

2.1軟件測試實質(zhì)

軟件測試是一項邏輯性強、且極具條理的工作,也是具有風(fēng)險性的行為。由于軟件的輸入量、輸出結(jié)果、軟件實現(xiàn)途徑都很多,而且軟件產(chǎn)品說明書沒有客觀的標(biāo)準(zhǔn),導(dǎo)致從不同的角度看,軟件缺陷的標(biāo)準(zhǔn)不同,因而無法對軟件實施完全測試,這樣,就無法通過軟件測試顯示隱藏的軟件缺陷,只能盡量查找軟件缺陷,找到的軟件缺陷越多,說明軟件本身的缺陷就越多,況且還有一些是未發(fā)現(xiàn)、不能斷定的缺陷,這就是軟件測試的局限性。軟件測試與軟件開發(fā)過程的關(guān)系如圖1所示。

圖1軟件測試與軟件開發(fā)的關(guān)系

所有的軟件測試都有2個關(guān)鍵的問題組成:建立能測試應(yīng)用程序的環(huán)境,并在該環(huán)境中測試軟件能力。測試員必須理解和重新生成軟件所在的復(fù)雜軟件環(huán)境,并運用其能力確保正常的測試。

2.2軟件測試手段

從測試是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實現(xiàn)算法的角度來看,可分為白盒測試和黑盒測試。2.2.1黑盒測試

黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它是在已知產(chǎn)品所應(yīng)具有的功能情況下,通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息并且保持外部信息(如:數(shù)據(jù)庫或文件)的完整性。黑盒法著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),只針對軟件界面和軟件功能進(jìn)行測試,它主要用于軟件驗收測試。黑盒法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。測試情況實際上有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進(jìn)行測試。

2.2.2白盒測試

白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是在已知產(chǎn)品內(nèi)部工作過程情況下,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作,而不顧它的功能。白盒測試的主要方法有邏輯驅(qū)動、基路測試等,白盒法是窮舉路徑測試,主要用于軟件驗證。

(1)軟件有產(chǎn)品說明書時,對產(chǎn)品說明書實施測試和審查:由于軟件產(chǎn)品說明書屬于文檔,因此對產(chǎn)品說明書的測試是黑盒測試。在實施測試時要弄清所開發(fā)軟件的客戶,并熟悉現(xiàn)有的標(biāo)準(zhǔn)和規(guī)范,基于同類軟件測試的經(jīng)驗進(jìn)行測試。除了這些,如果時間和條件允許,應(yīng)該對產(chǎn)品說明書進(jìn)行審查,按照相關(guān)的標(biāo)準(zhǔn),看產(chǎn)品說明書是否符合要求。這都是通常的一些做法,當(dāng)然還可以采用其他軟件檢測方法。

(2)由于當(dāng)前軟件開發(fā)有時不是很正規(guī),在沒有產(chǎn)品說明書時應(yīng)使用試探性測試:首先要分步驟地弄清軟件特性,記錄軟件運行情況,詳細(xì)描述軟件功能,然后運用靜態(tài)和動態(tài)黑盒測試兩種方式來測試軟件,發(fā)現(xiàn)軟件缺陷,在這種情況下,可以將一些非法、錯誤和垃圾數(shù)據(jù)作為輸入數(shù)據(jù),以檢驗軟件的輸出結(jié)果。測試時可采用反復(fù)測試、邊界值測試和不合條件等方法。

(3)對有些軟件實施狀態(tài)測試:首先是熟悉軟件的邏輯流程,可能的話,建立狀態(tài)轉(zhuǎn)換圖,盡量清晰地描繪軟件可能的獨立狀態(tài),從一種狀態(tài)到另一種狀態(tài)所允許的輸入和條件,以及進(jìn)入或退出某種狀態(tài)時的設(shè)置條件和輸出結(jié)果;如果要測試的軟件規(guī)模較大、復(fù)雜性較高,那么建立狀態(tài)轉(zhuǎn)換圖將是非常艱巨的任務(wù),這時減少要測試的狀態(tài)及狀態(tài)的數(shù)量,但是必須保證每種狀態(tài)都必須測試一次,也可以在狀態(tài)測試時選擇那些不常用的分支,因為這是最容易被忽略的。在此基礎(chǔ)上,測試所有的錯誤狀態(tài)及返回值,測試隨機狀態(tài)轉(zhuǎn)換。

(4)在前述測試的基礎(chǔ)上,對有些測試實施失敗狀態(tài)測試:具體在實施時,指的是幾個時間對某一資源競爭使用,比如:

①兩個不同的程序同時保持或打開同一個文檔。

②共享同一臺外圍設(shè)備。

③當(dāng)軟件處于讀取或者修改狀態(tài)時按鍵或者單擊鼠標(biāo)。

④同時關(guān)閉或者啟動同一個軟件的多個實例。

⑤使用不同的程序同時訪問同一個數(shù)據(jù)庫。

類似這樣的競爭條件還有很多,不一一舉例。

(5)在實際測試時還常用反復(fù)、壓迫和重負(fù)測試,實施這些測試的目的是考驗軟件在惡劣條件下是否能正常運行和退出,從而驗證軟件的性能。反復(fù)測試指的是不斷地執(zhí)行同樣的操作;壓迫測試是使用軟件在不夠理想的條件下運行,從而觀察軟件對外部資源的要求和依賴程度,借此來測試軟件的性能;重負(fù)測試是指盡量提供條件任其發(fā)揮,讓軟件處理盡可能大的數(shù)據(jù)文件,即最大限度地發(fā)掘軟件的能力,使之不堪重負(fù),大多數(shù)情況下,用時間作為參數(shù)實施重負(fù)測試,看其在重負(fù)情況下能否正常運行。實際測試時,常將三種測試方法結(jié)合起來使用。

(6)測試軟件的另一種有效方法就是進(jìn)行正式審查,其中包括以下幾個方面:確定問題、制定審查規(guī)則、準(zhǔn)備工作以及編寫報告,進(jìn)行審查的主要方法就是組織熟悉該類軟件的人員逐一檢查代碼,其中重要的軟件還需要按能力成熟度(CMM)中的要求進(jìn)行同行評審。

(7)在實際測試中經(jīng)常采用一種稱之為動態(tài)白盒測試的方法,其意義是指利用查看代碼功能和實現(xiàn)方式得到的信息來確定哪些要測試,哪些不需要測試,以及如何開展測試。其中不僅是查看代碼,還包括直接測試和控制軟件。包括以下幾個部分:

①直接測試底層功能、過程、子程序和庫。

②根據(jù)軟件運行的實際情況不斷地調(diào)整測試用例。

③對軟件中的部分變量和狀態(tài)信息進(jìn)行訪問,確定測試與預(yù)期結(jié)果是否相符,并強制軟件以正常測試難以實現(xiàn)的方式運行。在具體實施時應(yīng)分階段地進(jìn)行測試,即遵循單元測試、集成測試、配置項測試和系統(tǒng)測試的步驟。目前,灰盒測試逐漸為大家認(rèn)同,灰盒測試綜合了白盒測試和黑盒測試的優(yōu)點,模糊了兩者的界限,在做法上仍然把軟件當(dāng)成黑盒來測試,但是通過簡單地查看(不像白盒那樣進(jìn)行完整地查看)軟件內(nèi)部工作機制作為補充。現(xiàn)在的網(wǎng)頁制作就很適合灰盒測試。

3結(jié)束語

軟件測試的目的不是為了僅僅找出錯誤,而是通過它發(fā)現(xiàn)錯誤、分析錯誤,找到錯誤的分布特征和規(guī)律,從而幫助項目管理人員發(fā)現(xiàn)當(dāng)前所采用的軟件開發(fā)過程的缺陷,以便改進(jìn);同時也能夠通過設(shè)計有針對性的檢測方法,改善軟件測試的有效性。即使測試沒有發(fā)現(xiàn)任何錯誤,也是十分有價值的,因為完整的測試不僅可以給軟件質(zhì)量進(jìn)行一個正確的評價,而且是提高軟件質(zhì)量的重要方法之一。

參考文獻(xiàn)

[1]史濟民.軟件工程原理方法與應(yīng)用[M].北京:高等教育出版社,2001.

[2]張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,1997.