採用什麼方法對軟件進行測試呢?經常使用的軟件測試方法有兩大類:靜態測試方法和動態測試方法。其中軟件的靜態測試不要求在計算機上實際執行所測程序,主要以一些人工的模擬技術對軟件進行分析和測試;而軟件的動態測試是經過輸入一組預先按照必定的測試準則構造的實例數據來動態運行程序,而達到發現程序錯誤的過程。在動態分析技術中,最重要的技術是路徑和分支測試。
白盒測試的測試方法有代碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程序變異。
白盒測試法的覆蓋標準有邏輯覆蓋、循環覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、斷定覆蓋、條件覆蓋、斷定/條件覆蓋、條件組合覆蓋和路徑覆蓋。六種覆蓋標準發現錯誤的能力呈由弱到強的變化:
1.語句覆蓋每條語句至少執行一次。
2.斷定覆蓋每一個斷定的每一個分支至少執行一次。
3.條件覆蓋每一個斷定的每一個條件應取到各類可能的值。
4.斷定/條件覆蓋同時知足斷定覆蓋條件覆蓋。
5.條件組合覆蓋每一個斷定中各條件的每一種組合至少出現一次。
6.路徑覆蓋使程序中每一條可能的路徑至少執行一次。
優勢
1.迫使測試人員去仔細思考軟件的實現
2.能夠檢測代碼中的每條分支和路徑
3.揭示隱藏在代碼中的錯誤
4.對代碼的測試比較完全
5.最優化
缺點
1.昂貴
2.沒法檢測代碼中遺漏的路徑和數據敏感性錯誤
3.不驗證規格的正確性
2、單元測試框架
一、 Junit
是一個Java語言的單元測試框架。它由Kent Beck和Erich Gamma創建,逐漸成爲源於Kent Beck的sUnit的xUnit家族中最爲成功的一個。 JUnit有它本身的JUnit擴展生態圈。多數Java的開發環境都已經集成了JUnit做爲單元測試的工具。[1-3]
JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個迴歸測試框架(regression testing framework)。Junit測試是程序員測試,即所謂白盒測試,由於程序員知道被測試的軟件如何(How)完成功能和完成什麼樣(What)的功能。Junit是一套框架,繼承TestCase類,就能夠用Junit進行自動測試了。
特性
JUnit是一個開放源代碼的Java測試框架,用於編寫和運行可重複的測試。他是用於單元測試框架體系xUnit的一個實例(用於java語言)。它包括如下特性:
a、用於測試指望結果的斷言(Assertion)
b、用於共享共同測試數據的測試工具
c、用於方便的組織和運行測試的測試套件
d、圖形和文本的測試運行器
二、qunit
是一個強大的JavaScript單元測試框架,該框架是由jQuery團隊的成員所開發,而且是jQuery的官方測試套件。Qunit是Jquery的單元測試框架,而且被普遍使用在各個項目中。
自動化的測試軟件在開發中是必備的。單元測試將會爲自動化測試建立一些基本的代碼塊:組件、單元,伴隨着不須要人工的干預,一次一次的重複運行的測試程序。總之,你能編寫一次測試就能在必要的時候再次運行而不用再次編寫。
額外的好處就是代碼運行的覆蓋測試,同時測試也能驅動軟件更好的設計,就像著名的測試驅動開發,在實現以前寫一個測試,你甚至能夠寫一個簡單的測試,而後測試失敗(由於如今代碼仍然沒有開始編寫),而後開始實現你的代碼直到你的測試經過。你可以拓展你的測試去覆蓋更多的需求和功能,而且再次擴充你的實現代碼。經過重複這些步驟,最終你獲得的代碼看起來經常和你最初開始實現的代碼大爲不一樣。
Javasscript 的單元測試和其餘計算機編程語言來講很是不一樣。所以你須要一個小的測試框架來運行你的測試用例,同時也做爲一組編寫單元測試的工具。
你想要自動測試nice應用和框架,也許從測試驅動開發的角度是很是有價值。寫出一個本身的測試框架也許是很吸引人的,可是就須要涉及大量的工做關於JavaScript 代碼在各個瀏覽器上所有的細節和個別特殊的要求。
然而這裏還有其餘JavaScript測試框架,你最好決定簽出Qunit,Qunit是Jquery的單元測試框架,而且被普遍使用在各個項目中。
爲了使用Qunit,你僅僅須要去包含2個Qunit文件在你的Html頁面。Qunit 包含了qunit.js 做爲運行器和測試框架,和qunit.css 文件,座位測試套件頁面顯示測試結果的樣式。
三、nunit
是專門針對於.NET來寫的.其實在前面有JUnit(Java),CPPUnit(C++),他們都是xUnit的一員.最初,它是從JUnit而來.接下來我所用的都是基於這個版本.
NUnit最初是由James W. Newkirk, Alexei A. Vorontsov 和Philip A. Craig,開發團隊逐漸龐大起來.在開發過程當中, Kent Beck 和ErichGamma2位牛人也提供了許多幫助.看來對於NUnit還真是下了一番力氣了
NUnit是xUnit家族種的第4個主打產品,徹底由C#語言來編寫,而且編寫時充分利用了許多.NET的特性,好比反射,客戶屬性等等.
最重要的一點是它適合於全部.NET語言.