前言:本站為你精心整理了軟件測(cè)試方法范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。
摘要:開(kāi)發(fā)過(guò)程中一次性開(kāi)發(fā)成功或者無(wú)錯(cuò)誤發(fā)生的幾率為零,因此在軟件的開(kāi)發(fā)過(guò)程中需要不斷的完善,而這個(gè)不斷完善修改的過(guò)程就是軟件測(cè)試的過(guò)程。軟件測(cè)試也代表了了設(shè)計(jì)、編碼的最終復(fù)審。著重論述了目前軟件工程中普遍存在的一些測(cè)試問(wèn)題,并對(duì)其產(chǎn)生的原因進(jìn)行了詳細(xì)的分析。介紹了軟件測(cè)試的本質(zhì),同時(shí)對(duì)目前流行的測(cè)試方法進(jìn)行了研究,提出了不同類型的軟件最佳的測(cè)試方案。
關(guān)鍵詞:軟件可靠性;軟件質(zhì)量;軟件測(cè)試;測(cè)試用例
1概述
信息技術(shù)的飛速發(fā)展,使軟件產(chǎn)品應(yīng)用到社會(huì)的各個(gè)領(lǐng)域,軟件產(chǎn)品的質(zhì)量自然成為人們共同關(guān)注的焦點(diǎn)。軟件開(kāi)發(fā)商為了占有市場(chǎng),必須把產(chǎn)品質(zhì)量作為企業(yè)的重要目標(biāo)之一,以免在激烈的競(jìng)爭(zhēng)中被淘汰。用戶為了保證自己業(yè)務(wù)的順利完成,總是希望選用優(yōu)質(zhì)的軟件。質(zhì)量不佳的軟件產(chǎn)品不僅會(huì)使開(kāi)發(fā)商的維護(hù)費(fèi)用和用戶的使用成本大幅增加,還可能產(chǎn)生其他的責(zé)任風(fēng)險(xiǎn),在一些關(guān)鍵應(yīng)用,如民航訂票系統(tǒng)、銀行結(jié)算系統(tǒng)、證券交易系統(tǒng)等中使用質(zhì)量有問(wèn)題的軟件,還可能造成災(zāi)難性的后果。
軟件危機(jī)曾經(jīng)是軟件界甚至整個(gè)計(jì)算機(jī)界最熱門的話題,為了解決這個(gè)危機(jī),軟件從業(yè)人員、專家和學(xué)者做出了大量的努力。現(xiàn)在人們已經(jīng)逐步認(rèn)識(shí)到所謂的軟件危機(jī)實(shí)際上僅是一種狀況,那就是軟件中有錯(cuò)誤,正是這些錯(cuò)誤導(dǎo)致了軟件開(kāi)發(fā)在成本、進(jìn)度和質(zhì)量上的失控。有錯(cuò)是軟件的屬性,而且是無(wú)法改變的。因?yàn)檐浖怯扇藖?lái)完成的,所有由人做的工作都不會(huì)是完美無(wú)缺的。問(wèn)題在于應(yīng)該如何去避免錯(cuò)誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯(cuò)誤,使程序中的錯(cuò)誤密度達(dá)到盡可能低的程度。
軟件工程學(xué)出現(xiàn)后,軟件開(kāi)發(fā)被視為一項(xiàng)工程,以工程化的方法來(lái)進(jìn)行規(guī)劃和管理軟件的開(kāi)發(fā)。事實(shí)上,不論采用什么技術(shù)和什么方法,軟件中出現(xiàn)錯(cuò)誤總是難免的。采用新的語(yǔ)言、先進(jìn)的開(kāi)發(fā)方式、完善的開(kāi)發(fā)過(guò)程,可以減少錯(cuò)誤的引入,但是不可能完全杜絕軟件中的錯(cuò)誤,這些引入的錯(cuò)誤需要測(cè)試來(lái)找出。測(cè)試是軟件開(kāi)發(fā)的重要部分。統(tǒng)計(jì)表明,在典型的軟件開(kāi)發(fā)項(xiàng)目中,軟件測(cè)試工作量往往占軟件開(kāi)發(fā)總工作量的40%以上。而在軟件開(kāi)發(fā)的總成本中用在測(cè)試上的開(kāi)銷要占30%到50%。如果把維護(hù)階段也考慮在內(nèi),討論整個(gè)軟件生存時(shí)期時(shí),測(cè)試的成本比例也許會(huì)有所降低,但實(shí)際上維護(hù)工作相當(dāng)于二次開(kāi)發(fā),仍至多次開(kāi)發(fā),其中必定還包含有許多測(cè)試工作。系統(tǒng)的問(wèn)題越早發(fā)現(xiàn),改正成本越低,破壞性越小,所以,在系統(tǒng)前要盡量多地把系統(tǒng)問(wèn)題找出來(lái),其手段就是有計(jì)劃、有組織地進(jìn)行充分的測(cè)試。
軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一組測(cè)試數(shù)據(jù),并利用這些測(cè)試數(shù)據(jù)運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過(guò)程。根據(jù)測(cè)試數(shù)據(jù)設(shè)計(jì)方法,軟件測(cè)試可分為結(jié)構(gòu)測(cè)試和功能測(cè)試。在結(jié)構(gòu)測(cè)試過(guò)程中,測(cè)試者對(duì)程序的語(yǔ)句、分支和邏輯路徑進(jìn)行各種覆蓋測(cè)試,可以在不同點(diǎn)檢查程序的狀態(tài),以確定實(shí)際狀態(tài)與預(yù)期狀態(tài)是否一致。軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤,而不是確認(rèn)其正確性,而對(duì)已進(jìn)行的測(cè)試過(guò)程的程度進(jìn)行評(píng)估。
2測(cè)試方法
2.1軟件測(cè)試實(shí)質(zhì)
軟件測(cè)試是一項(xiàng)邏輯性強(qiáng)、且極具條理的工作,也是具有風(fēng)險(xiǎn)性的行為。由于軟件的輸入量、輸出結(jié)果、軟件實(shí)現(xiàn)途徑都很多,而且軟件產(chǎn)品說(shuō)明書(shū)沒(méi)有客觀的標(biāo)準(zhǔn),導(dǎo)致從不同的角度看,軟件缺陷的標(biāo)準(zhǔn)不同,因而無(wú)法對(duì)軟件實(shí)施完全測(cè)試,這樣,就無(wú)法通過(guò)軟件測(cè)試顯示隱藏的軟件缺陷,只能盡量查找軟件缺陷,找到的軟件缺陷越多,說(shuō)明軟件本身的缺陷就越多,況且還有一些是未發(fā)現(xiàn)、不能斷定的缺陷,這就是軟件測(cè)試的局限性。軟件測(cè)試與軟件開(kāi)發(fā)過(guò)程的關(guān)系如圖1所示。
圖1軟件測(cè)試與軟件開(kāi)發(fā)的關(guān)系
所有的軟件測(cè)試都有2個(gè)關(guān)鍵的問(wèn)題組成:建立能測(cè)試應(yīng)用程序的環(huán)境,并在該環(huán)境中測(cè)試軟件能力。測(cè)試員必須理解和重新生成軟件所在的復(fù)雜軟件環(huán)境,并運(yùn)用其能力確保正常的測(cè)試。
2.2軟件測(cè)試手段
從測(cè)試是否針對(duì)系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法的角度來(lái)看,可分為白盒測(cè)試和黑盒測(cè)試。2.2.1黑盒測(cè)試
黑盒測(cè)試也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,它是在已知產(chǎn)品所應(yīng)具有的功能情況下,通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試時(shí),把程序看作一個(gè)不能打開(kāi)的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測(cè)試者在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息并且保持外部信息(如:數(shù)據(jù)庫(kù)或文件)的完整性。黑盒法著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),只針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試,它主要用于軟件驗(yàn)收測(cè)試。黑盒法是窮舉輸入測(cè)試,只有把所有可能的輸入都作為測(cè)試情況使用,才能以這種方法查出程序中所有的錯(cuò)誤。測(cè)試情況實(shí)際上有無(wú)窮多個(gè),人們不僅要測(cè)試所有合法的輸入,而且還要對(duì)那些不合法但是可能的輸入進(jìn)行測(cè)試。
2.2.2白盒測(cè)試
白盒測(cè)試也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,它是在已知產(chǎn)品內(nèi)部工作過(guò)程情況下,通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書(shū)的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作,而不顧它的功能。白盒測(cè)試的主要方法有邏輯驅(qū)動(dòng)、基路測(cè)試等,白盒法是窮舉路徑測(cè)試,主要用于軟件驗(yàn)證。
(1)軟件有產(chǎn)品說(shuō)明書(shū)時(shí),對(duì)產(chǎn)品說(shuō)明書(shū)實(shí)施測(cè)試和審查:由于軟件產(chǎn)品說(shuō)明書(shū)屬于文檔,因此對(duì)產(chǎn)品說(shuō)明書(shū)的測(cè)試是黑盒測(cè)試。在實(shí)施測(cè)試時(shí)要弄清所開(kāi)發(fā)軟件的客戶,并熟悉現(xiàn)有的標(biāo)準(zhǔn)和規(guī)范,基于同類軟件測(cè)試的經(jīng)驗(yàn)進(jìn)行測(cè)試。除了這些,如果時(shí)間和條件允許,應(yīng)該對(duì)產(chǎn)品說(shuō)明書(shū)進(jìn)行審查,按照相關(guān)的標(biāo)準(zhǔn),看產(chǎn)品說(shuō)明書(shū)是否符合要求。這都是通常的一些做法,當(dāng)然還可以采用其他軟件檢測(cè)方法。
(2)由于當(dāng)前軟件開(kāi)發(fā)有時(shí)不是很正規(guī),在沒(méi)有產(chǎn)品說(shuō)明書(shū)時(shí)應(yīng)使用試探性測(cè)試:首先要分步驟地弄清軟件特性,記錄軟件運(yùn)行情況,詳細(xì)描述軟件功能,然后運(yùn)用靜態(tài)和動(dòng)態(tài)黑盒測(cè)試兩種方式來(lái)測(cè)試軟件,發(fā)現(xiàn)軟件缺陷,在這種情況下,可以將一些非法、錯(cuò)誤和垃圾數(shù)據(jù)作為輸入數(shù)據(jù),以檢驗(yàn)軟件的輸出結(jié)果。測(cè)試時(shí)可采用反復(fù)測(cè)試、邊界值測(cè)試和不合條件等方法。
(3)對(duì)有些軟件實(shí)施狀態(tài)測(cè)試:首先是熟悉軟件的邏輯流程,可能的話,建立狀態(tài)轉(zhuǎn)換圖,盡量清晰地描繪軟件可能的獨(dú)立狀態(tài),從一種狀態(tài)到另一種狀態(tài)所允許的輸入和條件,以及進(jìn)入或退出某種狀態(tài)時(shí)的設(shè)置條件和輸出結(jié)果;如果要測(cè)試的軟件規(guī)模較大、復(fù)雜性較高,那么建立狀態(tài)轉(zhuǎn)換圖將是非常艱巨的任務(wù),這時(shí)減少要測(cè)試的狀態(tài)及狀態(tài)的數(shù)量,但是必須保證每種狀態(tài)都必須測(cè)試一次,也可以在狀態(tài)測(cè)試時(shí)選擇那些不常用的分支,因?yàn)檫@是最容易被忽略的。在此基礎(chǔ)上,測(cè)試所有的錯(cuò)誤狀態(tài)及返回值,測(cè)試隨機(jī)狀態(tài)轉(zhuǎn)換。
(4)在前述測(cè)試的基礎(chǔ)上,對(duì)有些測(cè)試實(shí)施失敗狀態(tài)測(cè)試:具體在實(shí)施時(shí),指的是幾個(gè)時(shí)間對(duì)某一資源競(jìng)爭(zhēng)使用,比如:
①兩個(gè)不同的程序同時(shí)保持或打開(kāi)同一個(gè)文檔。
②共享同一臺(tái)外圍設(shè)備。
③當(dāng)軟件處于讀取或者修改狀態(tài)時(shí)按鍵或者單擊鼠標(biāo)。
④同時(shí)關(guān)閉或者啟動(dòng)同一個(gè)軟件的多個(gè)實(shí)例。
⑤使用不同的程序同時(shí)訪問(wèn)同一個(gè)數(shù)據(jù)庫(kù)。
類似這樣的競(jìng)爭(zhēng)條件還有很多,不一一舉例。
(5)在實(shí)際測(cè)試時(shí)還常用反復(fù)、壓迫和重負(fù)測(cè)試,實(shí)施這些測(cè)試的目的是考驗(yàn)軟件在惡劣條件下是否能正常運(yùn)行和退出,從而驗(yàn)證軟件的性能。反復(fù)測(cè)試指的是不斷地執(zhí)行同樣的操作;壓迫測(cè)試是使用軟件在不夠理想的條件下運(yùn)行,從而觀察軟件對(duì)外部資源的要求和依賴程度,借此來(lái)測(cè)試軟件的性能;重負(fù)測(cè)試是指盡量提供條件任其發(fā)揮,讓軟件處理盡可能大的數(shù)據(jù)文件,即最大限度地發(fā)掘軟件的能力,使之不堪重負(fù),大多數(shù)情況下,用時(shí)間作為參數(shù)實(shí)施重負(fù)測(cè)試,看其在重負(fù)情況下能否正常運(yùn)行。實(shí)際測(cè)試時(shí),常將三種測(cè)試方法結(jié)合起來(lái)使用。
(6)測(cè)試軟件的另一種有效方法就是進(jìn)行正式審查,其中包括以下幾個(gè)方面:確定問(wèn)題、制定審查規(guī)則、準(zhǔn)備工作以及編寫(xiě)報(bào)告,進(jìn)行審查的主要方法就是組織熟悉該類軟件的人員逐一檢查代碼,其中重要的軟件還需要按能力成熟度(CMM)中的要求進(jìn)行同行評(píng)審。
(7)在實(shí)際測(cè)試中經(jīng)常采用一種稱之為動(dòng)態(tài)白盒測(cè)試的方法,其意義是指利用查看代碼功能和實(shí)現(xiàn)方式得到的信息來(lái)確定哪些要測(cè)試,哪些不需要測(cè)試,以及如何開(kāi)展測(cè)試。其中不僅是查看代碼,還包括直接測(cè)試和控制軟件。包括以下幾個(gè)部分:
①直接測(cè)試底層功能、過(guò)程、子程序和庫(kù)。
②根據(jù)軟件運(yùn)行的實(shí)際情況不斷地調(diào)整測(cè)試用例。
③對(duì)軟件中的部分變量和狀態(tài)信息進(jìn)行訪問(wèn),確定測(cè)試與預(yù)期結(jié)果是否相符,并強(qiáng)制軟件以正常測(cè)試難以實(shí)現(xiàn)的方式運(yùn)行。在具體實(shí)施時(shí)應(yīng)分階段地進(jìn)行測(cè)試,即遵循單元測(cè)試、集成測(cè)試、配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試的步驟。目前,灰盒測(cè)試逐漸為大家認(rèn)同,灰盒測(cè)試綜合了白盒測(cè)試和黑盒測(cè)試的優(yōu)點(diǎn),模糊了兩者的界限,在做法上仍然把軟件當(dāng)成黑盒來(lái)測(cè)試,但是通過(guò)簡(jiǎn)單地查看(不像白盒那樣進(jìn)行完整地查看)軟件內(nèi)部工作機(jī)制作為補(bǔ)充?,F(xiàn)在的網(wǎng)頁(yè)制作就很適合灰盒測(cè)試。
3結(jié)束語(yǔ)
軟件測(cè)試的目的不是為了僅僅找出錯(cuò)誤,而是通過(guò)它發(fā)現(xiàn)錯(cuò)誤、分析錯(cuò)誤,找到錯(cuò)誤的分布特征和規(guī)律,從而幫助項(xiàng)目管理人員發(fā)現(xiàn)當(dāng)前所采用的軟件開(kāi)發(fā)過(guò)程的缺陷,以便改進(jìn);同時(shí)也能夠通過(guò)設(shè)計(jì)有針對(duì)性的檢測(cè)方法,改善軟件測(cè)試的有效性。即使測(cè)試沒(méi)有發(fā)現(xiàn)任何錯(cuò)誤,也是十分有價(jià)值的,因?yàn)橥暾臏y(cè)試不僅可以給軟件質(zhì)量進(jìn)行一個(gè)正確的評(píng)價(jià),而且是提高軟件質(zhì)量的重要方法之一。
參考文獻(xiàn)
[1]史濟(jì)民.軟件工程原理方法與應(yīng)用[M].北京:高等教育出版社,2001.
[2]張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,1997.
免责声明:以上文章内容均来源于本站老师原创或网友上传,不代表本站观点,与本站立场无关,仅供学习和参考。本站不是任何杂志的官方网站,直投稿件和出版请联系出版社。
工信部备案:蜀ICP备18023296号-3 川公网安备:51010802001409 出版物经营许可证:新出发蓉零字第CH-B061号 统一信用码:91510108MA6CHFDC3Q © 版权所有:四川好花科技有限公司
免责声明:本站持有《出版物经营许可证》,主要从事期刊杂志零售,不是任何杂志官网,不涉及出版事务,特此申明。