一.引言 軟件測試是伴隨著計算機軟件的產(chǎn)生而產(chǎn)生的。在早期軟件開發(fā)的過程中,軟件就是由程序員寫的簡單計算機程序代碼。因而,軟件測試的含義比較狹窄,測試等同于“調試”。軟件測試的目的就是為尋找和糾正軟件中的故障,這部分的工作常常由開發(fā)人員自己完成。直到上世紀80年代早期,軟件測試定義發(fā)生了改變,測試不單純是一個發(fā)現(xiàn)錯誤的過程,而且包含軟件質量評價的內容。軟件開發(fā)人員和測試人員開始坐在一起探討軟件工程和測試問題。制定了各類標準,軟件測試是高質量、高可靠性軟件的重要保證。在軟件系統(tǒng)的開發(fā)中,軟件測試不僅是軟件生命周期中的一個獨立的階段,在需求分析、軟件設計和編碼階段,都需要對這些階段的軟件產(chǎn)品,包括需求規(guī)格說明書、軟件架構、概要設計和詳細設計說明書進行測試。軟件測試已經(jīng)形成了完整的、系統(tǒng)的測試方法,并且有眾多的手工和自動化測試工具支持這些方法。通過評審文檔、閱讀代碼等方式測試軟件稱為靜態(tài)測試,通過運行程序測試軟件稱為動態(tài)測試。在動態(tài)測試中,通常使用白盒測試和黑盒測試從不同的角度設計測試用例,查找軟件代碼中的錯誤。 二.白盒測試 白盒測試也叫結構測試,目的是發(fā)現(xiàn)程序編碼過程中的錯誤。編寫代碼的過程中,程序員的編程經(jīng)驗、對開發(fā)工具的掌握程度、編程時的精神狀態(tài),都可能使他在編碼過程中引入錯誤。對于基本的語法錯誤,調試程序時就能發(fā)現(xiàn)并糾正。但對于運算順序、邏輯判斷、執(zhí)行路徑上的錯誤,調試程序時很難發(fā)現(xiàn)。事實上,即使編程水平很高的程序員,也無法保證代碼的結構沒有任何錯誤。白盒測試將被測程序看作一個打開的盒子,測試者能夠看到被測源程序,可以分析被測程序的內部結構。因此,白盒測試可以用來對代碼結構進行全面測試。 三.黑盒測試 黑盒測試也叫功能測試,目的是發(fā)現(xiàn)軟件需求或者設計規(guī)格說明中的錯誤。軟件是為了完成特定的功能而開發(fā)的。需求分析階段得到的需求規(guī)格說明書對軟件功能作了完整的描述。軟件設計階段將整個軟件系統(tǒng)劃分為多個模塊,每個模塊實現(xiàn)一個或多個功能。因此,軟件測試需要驗證每個模塊是否能夠完成自己的功能,整個軟件系統(tǒng)是否能夠滿足用戶的需要。黑盒測試將被測程序看成一個打不開的盒子,測試人員無法看到代碼,只能看到軟件或模塊的功能描述。黑盒測試可用來驗證軟件或模塊功能是否得到實現(xiàn)。 四.白盒測試和黑盒測試的應用 一個實際的軟件系統(tǒng),首先必須驗證它能夠正確運行,這需要白盒測試;其次還必須確認系統(tǒng)正確地滿足了用戶的需求,這需要黑盒測試。 下面通過一個實例,說明如何在實踐中使用白盒測試和黑盒測試。 軟件需求描述: 圖形用戶界面上有3個文本框tl、t2、t3,以及代表加、減、乘、除運算的四個按鈕。在t1和t2中輸人數(shù)字,點擊一個按鈕,在t3中顯示這兩個數(shù)的運算結果。 這是一個很簡單的軟件,只需要編寫一個模塊。可以根據(jù)這個需求設計程序流程圖,見圖1。可以使用某種程序設計語言,例如VC+ +,Delphi或Java,編寫代碼。圖2是Java編寫的代碼運行時的界面。白盒測試最理想的情況是覆蓋流程圖中的每條路徑。對流程圖中的前3個分支節(jié)點,需要設計足夠的測試用例測試每個分支節(jié)點的每條分支以及這些分支的組合。第一個分支節(jié)點,可取dl=100.1d2=26,和dl=100.1 d2=abc覆蓋它的兩個分支。第二個分支節(jié)點,可取按鈕“+”、“一”、“ ”、“/”覆蓋它的四個分支;執(zhí)行“/”時,可取d2=0、d2=26覆蓋第3個分支節(jié)點的兩個分支。第四個分支節(jié)點形成了循環(huán)。循環(huán)中的路徑有無數(shù)條,實際對循環(huán)執(zhí)行路徑覆蓋時,通常只執(zhí)行一次循環(huán),驗證循環(huán)體。上述每個測試用例執(zhí)行了一次循環(huán)。因此對第四個分支節(jié)點只要測試關閉按鈕能否關閉窗口。
這樣,同樣我們還可以設計出一組白盒測試通過例子來驗證此程序的正確性,具體的驗證過程見表1。 表1 白盒測試用例 黑盒測試需要確認本程序能正確完成需求中規(guī)定的加減乘除運算。可以設計一組黑盒測試用例,見表2。 黑盒測試時,有時還需要執(zhí)行健壯性測試,即測試軟件處理異常或錯誤輸入的能力。對這個例子,輸入兩個或一個非數(shù)值的數(shù)據(jù)時,應該能夠報錯; 表2 黑盒測試用例
五.結束語 軟件測試無法做到窮舉測試。在上例中,僅僅兩個實數(shù)的加運算就有無窮多種可能的輸入。設計和運行測試用例還需要耗費人力和物力。因此,軟件測試追求的目標是以盡可能少的測試用例發(fā)現(xiàn)軟件中盡可能多的錯誤或缺陷。白盒測試驗證程序的正確性,黑盒測試確認軟件滿足需求,兩者各有優(yōu)缺點。動態(tài)軟件測試實踐中,通常單元測試階段主要使用白盒測試,集成測試和系統(tǒng)測試階段主要使用黑盒測試。兩種不同的測試方式各有各的側重點。在具體的測試環(huán)境中我們要根據(jù)實際情況來選取合適的軟件檢測方法。
本站部分文章來自網(wǎng)絡,如發(fā)現(xiàn)侵犯了您的權益,請聯(lián)系指出,本站及時確認刪除 E-mail:349991040@qq.com
論文格式網(wǎng)(www.donglienglish.cn--論文格式網(wǎng)拼音首字母組合)提供其他論文畢業(yè)論文格式,論文格式范文,畢業(yè)論文范文