軟件測試的基本概念和方法

發表于:2007-04-22來源:作者:點擊數: 標簽:軟件測試測試方法方法基本概念
軟件測試的基本概念 軟件測試方法之所以沒能完全標準化和統一化,主要原因是因為軟件產業產品到軟件測試有各式各樣的軟件。但是目前仍有很多各樣軟件測試方法都基本可用的常用概念和方法。我們這里介紹的思路和方法就是可用于多數應用軟件的測試。有六個有關

軟件測試的基本概念

軟件測試方法之所以沒能完全標準化和統一化,主要原因是因為軟件產業產品到軟件測試有各式各樣的軟件。但是目前仍有很多各樣軟件測試方法都基本可用的常用概念和方法。我們這里介紹的思路和方法就是可用于多數應用軟件的測試。有六個有關軟件測試方法的基本概念是很重要的:白箱測試,黑箱測試,灰箱測試,有效用例和無效用例,邊界條件以及等價類測試。
白箱測試或白盒測試(White-box testing 或glass-box testing)是通過程序的源代碼進行測試而不使用用戶界面。這種類型的測試需要從代碼句法發現內部代碼在算法,溢出,路徑,條件等等中的缺點或者錯誤,進而加以修正。
黑箱測試或黑盒測試(Black-box testing)是通過使用整個軟件或某種軟件功能來嚴格地測試, 而并沒有通過檢查程序的源代碼或者很清楚地了解該軟件或某種軟件功能的源代碼程序具體是怎樣設計的。測試人員通過輸入他們的數據然后看輸出的結果從而了解軟件怎樣工作。通常測試人員在進行測試時不僅使用肯定出正確結果的輸入數據,而且還會使用有挑戰性的輸入數據以及可能結果會出錯的輸入數據以便了解軟件怎樣處理各種類型的數據。
灰箱測試或灰盒測試(Gray-box testing):灰箱測試就像黑箱測試一樣是通過用戶界面測試,但是測試人員已經有所了解該軟件或某種軟件功能的源代碼程序具體是怎樣設計的。甚至于還讀過部分源代碼。 因此測試人員可以有的放矢地進行某種確定的條件/功能的測試。這樣做的意義在于:如果你知道產品內部的設計和對產品有透過用戶界面的深入了解,你就能夠更有效和深入地從用戶界面來測試它的各項性能。
有效用例(Valid case)或者叫合法輸入用例:是那些已知軟件程序能正確地處理的測試用例。一般是指軟件輸入的測試用例。比如說,在 Microsoft Excel 中,用鍵盤輸入“=1+1”, 看到的結果是“2”。 這里輸入的有效用例是“=1+1”。無效用例(Invalid case有人叫不合法輸入用例)或者出錯用例(error case):是那些事先就知道軟件程序不支持處理的測試用例。比如說在 Microsoft Excel 中,用鍵盤輸入“=a+1”, 看到的結果是“#NAME?”。這里輸入的“=a+1”既是無效用例同時也是出錯用例。
邊界條件(Boundary Cases):環繞邊界值的測試。通常意味著最大值,最小值或者所設計軟件能夠處理的最長的字符串等等。比如說某軟件字體的字號支持范圍是:從8到72。那么邊界測試用例應該包括:小于8, 等于8, 等于72 和大于72。
等價類(equivalent classes):等價類測試用例指的是如果有很多測試用例執行再多也不會找到新的中的缺陷。因為雖然輸入和輸出結果有所不同,但是它們都通過同樣的軟件的源代碼路徑。通常只要一個源代碼程序的路徑是用于處理一定數值范圍內的所有數值,那么除了邊界值以外,在邊界值范圍以內的所有數值一般都屬于等價類。因為如果軟件程序能正確處理一個值,也就意味著該程序能正確處理在這個范圍內的除了邊界值以外的其他任何有效輸入值。我們來用以上軟件字體的字號來舉例說明。軟件支持的字號范圍是:從8到72。那么8和72之間的所有支持的字號都可以被認為是等價類的測試用例。再比如:測試超鏈接時兩個用例http://www.yahoo.com/ 和 http://www.yahoo2.com/ 也是等價類的測試用例。
?

軟件測試的基本方法

軟件測試方法在不同的書籍中可能有不同的分類,不同的叫法和不同的解釋。比如,從測試人員角度看,可分為手動測試和自動測試。從源代碼的角度可分為單元測試功能測試。從理論定義來分,可分為黑箱測試,白箱測試和灰箱測試。這里要討論的基本軟件測試方法主要側重于軟件功能的黑箱測試方法:功能測試(Functionality Test),可接受性測試(Aclearcase/" target="_blank" >cceptance Test),用戶界面(User interface或UI)測試,Ad hoc一般指‘探討或開放’型測試,邊界條件測試(Boundary Condition),性能測試(Performance Test),回歸測試(Regression Test),強力測試(Stress Test),配置和安裝測試(Configuration and Setup Test),兼容性測試(Comparability Test),國際化支持測試(International Sufficiency)以及本地化語言測試(Localization)。
功能測試:驗證測試軟件功能能否正常按照它的設計工作??催\行軟件時的期望行為是否符合原設計。比如,測試Microsoft Excel插入->符號的功能包括測試能夠在Microsoft Excel所選單元格中正確地插入符號并且顯示正確符號?能否正確顯示使用不同的字體的符號?
可接受性測試:是在把測試的版本交付測試部門大范圍測試以前進行的對最基本功能的簡單測試。因為在把測試的版本交付測試部門大范圍測試以前應該先驗證該版本對于所測試的功能基本上比較穩定。必須滿足一些最低要求。比如不會很容易程序就掛起或崩潰。如果一個新版本沒通過可測試性的驗證,就應該阻攔測試部門花時間在該測試版本上測試。同時還要找到造成該版本不穩定的主要缺陷并督促盡快加以修正。
用戶界面測試:分析軟件用戶界面的設計是否合乎用戶期望或要求。它常常包括菜單,對話框及對話框上所有按鈕,文字,出錯提示,幫助信息(Menu 和Help content)等方面的測試。比如,測試Microsoft Excel中插入符號功能所用的對話框的大小,所有按鈕是否對齊,字符串字體大小,出錯信息內容和字體大小,工具欄位置/圖標等等。
‘探索或開放’型的測試:不是按部就班的按照一個又一個正式的測試用例來進行,也不局限于測試用例特定的步驟。這種測試是測試人員在理解該軟件功能的基礎上運用靈活多樣的想象力和創造力去模擬用戶的需求來使用該軟件的多種功能。通常涉及很多的測試用例或者通過更復雜的步驟來使用該軟件。
邊界條件測試:是環繞邊界值的測試。通常意味著測試軟件各功能是否能正確處理最大值,最小值或者所設計軟件能夠處理的最長的字符串等等。
性能測試是:通常驗證軟件的性能在正常環境和系統條件下重復使用是否還能滿足性能指標?;蛘邎绦型瑯尤蝿諘r新版本不比舊版本慢。一般還檢查系統記憶容量在運行程序時會不會流失(memory leak)。比如,驗證程序保存一個巨大的文件新版本不比舊版本慢。
回歸測試:根據修復好了的缺陷再重新進行的測試。目的在于驗證以前出現過但已經修復好的缺陷不再重新出現。一般指對某已知修正的缺陷再次圍繞它原來出現時的步驟重新測試。通常確定所需的再測試的范圍時是比較困難的,特別當臨近產品發布日期時。因為為了修正某缺陷時必需更改源代碼,因而就有可能影響這部分源代碼所控制的功能。所以在驗證修好的缺陷時不僅要服從缺陷原來出現時的步驟重新測試,而且還要測試有可能受影響的所有功能。因此應當鼓勵對所有回歸測試用例進行自動化。
強力測試:它通常驗證軟件的性能在各種極端的環境和系統條件下是否還能正常工作?;蛘哒f是驗證軟件的性能在各種極端環境和系統條件下的承受能力。比如,在最低的硬盤驅動器空間或系統記憶容量條件下,驗證程序重復執行打開和保存一個巨大的文件1000次后也不會崩潰或死機。
集成與兼容性測試:驗證該功能能夠如預期的那樣與其他程序或者構件協調工作。兼容性經常意味著新舊版本之間的協調,也包括測試的產品與其它產品的兼容使用。比如用同樣產品的新版本時不影響與用舊版本用戶之間保存文件,格式,和其他數據等操作。
裝配/安裝/配置測試:驗證軟件程序在不同廠家的硬件上,所支持的不同語言的新舊版本平臺上,和不同方式安裝的軟件都能夠如預期的那樣正確運行。比如,把英文版的 Microsoft Office 2003安裝在韓文版 的Windows Me 上,再驗證所有功能都正常運行。
國際化支持測試:驗證軟件程序在不同國家或區域的平臺上也能夠如預期的那樣運行,而且還可以按照原設計尊重和支持使用當地常用的日期,字體,文字表示,特殊格式等等。比如,用英文版的 Windows XP 和 Microsoft Word 能否展示阿拉伯字符串?用阿拉伯版的 Windows XP 和 阿拉伯版的Microsoft Word 能否展示阿拉伯字符串?又比如,日文版的Microsoft Excel對話框是否顯示正確翻譯的日語?一旦來說執行國際化支持測試的測試人員往往需要基本上了解這些國家或地區的語言要求和期望行為是什么。
本地化語言測試:要驗證所有已計劃要發布的不同語言版本軟件如預期的那樣被正確地翻譯成當地語言。這類測試一般包括驗證菜單,對話框,出錯信息,幫助內容等所有用戶界面上的文字都能夠顯示正確翻譯好的當地文字。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97