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

軟體測試實驗報告

文思屋 人氣: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 黑盒測試用例

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