一、軟件測試概述
軟件測試是軟件開(kāi)發(fā)過(guò)程的重要組成部分,是用來(lái)確認一個(gè)程序的品質(zhì)或性能是否符合開(kāi)發(fā)之前所提出的一些要求。軟件測試的目的,第一是確認軟件的質(zhì)量,其一方面是確認軟件做了你所期望的事情(Do the right thing),另一方面是確認軟件以正確的方式來(lái)做了這個(gè)事件(Do it right)。第二是提供信息,比如提供給開(kāi)發(fā)人員或程序經(jīng)理的反饋信息,為風(fēng)險評估所準備的信息。第三軟件測試不僅是在測試軟件產(chǎn)品的本身,而且還包括軟件開(kāi)發(fā)的過(guò)程。如果一個(gè)軟件產(chǎn)品開(kāi)發(fā)完成之后發(fā)現了很多問(wèn)題,這說(shuō)明此軟件開(kāi)發(fā)過(guò)程很可能是有缺陷的。因此軟件測試的第三個(gè)目的是保證整個(gè)軟件開(kāi)發(fā)過(guò)程是高質(zhì)量的。
軟件質(zhì)量是由幾個(gè)方面來(lái)衡量的:一、在正確的時(shí)間用正確的的方法把一個(gè)工作做正確(Doing the right things right at the right time.)。二、符合一些應用標準的要求,比如不同國家的用戶(hù)不同的操作習慣和要求,項目工程中的可維護性、可測試性等要求。三、質(zhì)量本身就是軟件達到了最開(kāi)始所設定的要求,而代碼的優(yōu)美或精巧的技巧并不代表軟件的高質(zhì)量(Quality is defined as conformance to requirements, not as “goodness” or “elegance”.)。四、質(zhì)量也代表著(zhù)它符合客戶(hù)的需要(Quality also means “meet customer needs”.)。作為軟件測試這個(gè)行業(yè),最重要的一件事就是從客戶(hù)的需求出發(fā),從客戶(hù)的角度去看產(chǎn)品,客戶(hù)會(huì )怎么去使用這個(gè)產(chǎn)品,使用過(guò)程中會(huì )遇到什么樣的問(wèn)題。只有這些問(wèn)題都解決了,軟件產(chǎn)品的質(zhì)量才可以說(shuō)是上去了。
測試人員在軟件開(kāi)發(fā)過(guò)程中的任務(wù):
1、尋找Bug;
2、避免軟件開(kāi)發(fā)過(guò)程中的缺陷;
3、衡量軟件的品質(zhì);
4、關(guān)注用戶(hù)的需求。
總的目標是:確保軟件的質(zhì)量。
二、常用的軟件測試方法
1. 黑盒測試
黑盒測試顧名思義就是將被測系統看成一個(gè)黑盒,從外界取得輸入,然后再輸出。整個(gè)測試基于需求文檔,看是否能滿(mǎn)足需求文檔中的所有要求。黑盒測試要求測試者在測試時(shí)不能使用與被測系統內部結構相關(guān)的知識或經(jīng)驗,它適用于對系統的功能進(jìn)行測試。
黑盒測試的優(yōu)點(diǎn)有:
1)比較簡(jiǎn)單,不需要了解程序內部的代碼及實(shí)現;
2)與軟件的內部實(shí)現無(wú)關(guān);
3)從用戶(hù)角度出發(fā),能很容易的知道用戶(hù)會(huì )用到哪些功能,會(huì )遇到哪些問(wèn)題;
4)基于軟件開(kāi)發(fā)文檔,所以也能知道軟件實(shí)現了文檔中的哪些功能;
5)在做軟件自動(dòng)化測試時(shí)較為方便。
黑盒測試的缺點(diǎn)有:
1)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達到總代碼量的30%;
2)自動(dòng)化測試的復用性較低。
2. 白盒測試
白盒測試是指在測試時(shí)能夠了解被測對象的結構,可以查閱被測代碼內容的測試工作。它需要知道程序內部的設計結構及具體的代碼實(shí)現,并以此為基礎來(lái)設計測試用例。如下例程序代碼:
HRESULT Play( char* pszFileName )
{
if ( NULL == pszFileName )
return;
if ( STATE_OPENED == currentState )
{
PlayTheFile();
}
return;
}
讀了代碼之后可以知道,先要檢查一個(gè)字符串是否為空,然后再根據播放器當前的狀態(tài)來(lái)執行相應的動(dòng)作?梢赃@樣設計一些測試用例:比如字符串(文件)為空的話(huà)會(huì )出現什么情況;如果此時(shí)播放器的狀態(tài)是文件剛打開(kāi),會(huì )是什么情況;如果文件已經(jīng)在播放,再調用這個(gè)函數會(huì )是什么情況。也就是說(shuō),根據播放器內部狀態(tài)的不同,可以設計很多不同的測試用例。這些是在純粹做黑盒測試時(shí)不一定能做到的事情。
白盒測試的直接好處就是知道所設計的測試用例在代碼級上哪些地方被忽略掉,它的優(yōu)點(diǎn)是幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質(zhì)量,發(fā)現代碼中隱藏的問(wèn)題。
白盒測試的缺點(diǎn)有:
1)程序運行會(huì )有很多不同的路徑,不可能測試所有的運行路徑;
2)測試基于代碼,只能測試開(kāi)發(fā)人員做的對不對,而不能知道設計的正確與否,可能會(huì )漏掉一些功能需求;
3)系統龐大時(shí),測試開(kāi)銷(xiāo)會(huì )非常大。
3. 基于風(fēng)險的測試
基于風(fēng)險的測試是指評估測試的優(yōu)先級,先做高優(yōu)先級的測試,如果時(shí)間或精力不夠,低優(yōu)先級的測試可以暫時(shí)先不做。有如下一個(gè)圖,橫軸代表影響,豎軸代表概率,根據一個(gè)軟件的特點(diǎn)來(lái)確定:如果一個(gè)功能出了問(wèn)題,它對整個(gè)產(chǎn)品的影響有多大,這個(gè)功能出問(wèn)題的概率有多大?如果出問(wèn)題的概率很大,出了問(wèn)題對整個(gè)產(chǎn)品的影響也很大,那么在測試時(shí)就一定要覆蓋到。對于一個(gè)用戶(hù)很少用到的功能,出問(wèn)題的概率很小,就算出了問(wèn)題的影響也不是很大,那么如果時(shí)間比較緊的話(huà),就可以考慮不測試。
javascrīpt:if(this.width>500){this.resized=true;this.style.width=500;}" ōnclick="javascrīpt:window.open(this.src);">
基于風(fēng)險測試的兩個(gè)決定因素就是:該功能出問(wèn)題對用戶(hù)的影響有多大,出問(wèn)題的概率有多大。其它一些影響因素還有復雜性、可用性、依賴(lài)性、可修改性等。測試人員主要根據事情的輕重緩急來(lái)決定測試工作的重點(diǎn)。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/