當前位置:文思屋>學習教育>畢業論文>

軟件測試實驗報告

文思屋 人氣:1.16W

 

軟件測試實驗報告

一.引言
 軟件測試是伴隨着計算機軟件的產生而產生的。在早期軟件開發的過程中,軟件就是由程序員寫的簡單計算機程序代碼。因而,軟件測試的含義比較狹窄,測試等同於“調試”。軟件測試的目的就是爲尋找和糾正軟件中的故障,這部分的工作常常由開發人員自己完成。直到上世紀80年代早期,軟件測試定義發生了改變,測試不單純是一個發現錯誤的過程,而且包含軟件質量評價的內容。軟件開發人員和測試人員開始坐在一起探討軟件工程和測試問題。制定了各類標準,軟件測試是高質量、高可靠性軟件的重要保證。在軟件系統的開發中,軟件測試不僅是軟件生命週期中的一個獨立的階段,在需求分析、軟件設計和編碼階段,都需要對這些階段的軟件產品,包括需求規格說明書、軟件架構、概要設計和詳細設計說明書進行測試。軟件測試已經形成了完整的'、系統的測試方法,並且有衆多的手工和自動化測試工具支持這些方法。通過評審文檔、閱讀代碼等方式測試軟件稱爲靜態測試,通過運行程序測試軟件稱爲動態測試。在動態測試中,通常使用白盒測試和黑盒測試從不同的角度設計測試用例,查找軟件代碼中的錯誤。
二.白盒測試
 白盒測試也叫結構測試,目的是發現程序編碼過程中的錯誤。編寫代碼的過程中,程序員的編程經驗、對開發工具的掌握程度、編程時的精神狀態,都可能使他在編碼過程中引入錯誤。對於基本的語法錯誤,調試程序時就能發現並糾正。但對於運算順序、邏輯判斷、執行路徑上的錯誤,調試程序時很難發現。事實上,即使編程水平很高的程序員,也無法保證代碼的結構沒有任何錯誤。白盒測試將被測程序看作一個打開的盒子,測試者能夠看到被測源程序,可以分析被測程序的內部結構。因此,白盒測試可以用來對代碼結構進行全面測試。
三.黑盒測試
 黑盒測試也叫功能測試,目的是發現軟件需求或者設計規格說明中的錯誤。軟件是爲了完成特定的功能而開發的。需求分析階段得到的需求規格說明書對軟件功能作了完整的描述。軟件設計階段將整個軟件系統劃分爲多個模塊,每個模塊實現一個或多個功能。因此,軟件測試需要驗證每個模塊是否能夠完成自己的功能,整個軟件系統是否能夠滿足用戶的需要。黑盒測試將被測程序看成一個打不開的盒子,測試人員無法看到代碼,只能看到軟件或模塊的功能描述。黑盒測試可用來驗證軟件或模塊功能是否得到實現。
四.白盒測試和黑盒測試的應用
 一個實際的軟件系統,首先必須驗證它能夠正確運行,這需要白盒測試;其次還必須確認系統正確地滿足了用戶的需求,這需要黑盒測試。
下面通過一個實例,說明如何在實踐中使用白盒測試和黑盒測試。
軟件需求描述:
 圖形用戶界面上有3個文本框tl、t2、t3,以及代表加、減、乘、除運算的四個按鈕。在t1和t2中輸人數字,點擊一個按鈕,在t3中顯示這兩個數的運算結果。
 這是一個很簡單的軟件,只需要編寫一個模塊。可以根據這個需求設計程序流程圖,見圖1。可以使用某種程序設計語言,例如VC+ +,Delphi或Java,編寫代碼。圖2是Java編寫的代碼運行時的界面。白盒測試最理想的情況是覆蓋流程圖中的每條路徑。對流程圖中的前3個分支節點,需要設計足夠的測試用例測試每個分支節點的每條分支以及這些分支的組合。第一個分支節點,可取dl=100.1d2=26,和dl=100.1 d2=abc覆蓋它的兩個分支。第二個分支節點,可取按鈕“+”、“一”、“ ”、“/”覆蓋它的四個分支;執行“/”時,可取d2=0、d2=26覆蓋第3個分支節點的兩個分支。第四個分支節點形成了循環。循環中的路徑有無數條,實際對循環執行路徑覆蓋時,通常只執行一次循環,驗證循環體。上述每個測試用例執行了一次循環。因此對第四個分支節點只要測試關閉按鈕能否關閉窗口。
 
 
 

                           

 

 這樣,同樣我們還可以設計出一組白盒測試通過例子來驗證此程序的正確性,具體的驗證過程見表1。
 
 表1 白盒測試用例
 黑盒測試需要確認本程序能正確完成需求中規定的加減乘除運算。可以設計一組黑盒測試用例,見表2。
黑盒測試時,有時還需要執行健壯性測試,即測試軟件處理異常或錯誤輸入的能力。對這個例子,輸入兩個或一個非數值的數據時,應該能夠報錯;
 
 表2 黑盒測試用例

五.結束語
 軟件測試無法做到窮舉測試。在上例中,僅僅兩個實數的加運算就有無窮多種可能的輸入。設計和運行測試用例還需要耗費人力和物力。因此,軟件測試追求的目標是以儘可能少的測試用例發現軟件中儘可能多的錯誤或缺陷。白盒測試驗證程序的正確性,黑盒測試確認軟件滿足需求,兩者各有優缺點。動態軟件測試實踐中,通常單元測試階段主要使用白盒測試,集成測試和系統測試階段主要使用黑盒測試。兩種不同的測試方式各有各的側重點。在具體的測試環境中我們要根據實際情況來選取合適的軟件檢測方法。