一、軟件測試是干什么的
軟件測試,是指對開發(fā)的軟件功能、使用進(jìn)行測試的過程,軟件測試的目的主要有:
1、發(fā)現(xiàn)程序中的錯誤,好的測試方案能發(fā)現(xiàn)尚未發(fā)現(xiàn)的錯誤,成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤。
2、除了找出錯誤,軟件測試的作用還有一個,是通過分析錯誤產(chǎn)生的原因和錯誤的發(fā)生趨勢,幫助軟件項目管理者發(fā)現(xiàn)當(dāng)前軟件開發(fā)過程中的缺陷,以便及時改進(jìn)。這種分析也能幫助測試人員設(shè)計出有針對性的測試方法,改善測試的效率和有效性。
3、另外,根據(jù)測試目的的不同,還有回歸測試、壓力測試、性能測試等,分別為了檢驗修改或優(yōu)化過程是否引發(fā)新的問題、軟件所能達(dá)到處理能力和是否達(dá)到預(yù)期的處理能力等。
二、軟件測試的原則有哪些
進(jìn)行軟件測試時,要注意遵循以下幾大原則:
1、測試應(yīng)該盡早進(jìn)行,最好在需求階段就開始介入,因為最嚴(yán)重的錯誤不外乎是系統(tǒng)不能滿足用戶的需求。
2、程序員應(yīng)該避免檢查自己的程序,軟件測試應(yīng)該由第三方來負(fù)責(zé)。
3、設(shè)計測試用例時應(yīng)考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下還要制造極端狀態(tài)和意外狀態(tài),如網(wǎng)絡(luò)異常中斷、電源斷電等。
4、應(yīng)該充分注意測試中的群集現(xiàn)象。
5、對錯誤結(jié)果要進(jìn)行一個確認(rèn)過程。一般由A測試出來的錯誤,一定要由B來確認(rèn)。嚴(yán)重的錯誤可以召開評審會議進(jìn)行討論和分析,對測試結(jié)果要進(jìn)行嚴(yán)格地確認(rèn),是否真的存在這個問題以及嚴(yán)重程度等。
6、制定嚴(yán)格的測試計劃。一定要制定測試計劃,并且要有指導(dǎo)性。測試時間安排盡量寬松,不要希望在極短的時間內(nèi)完成一個高水平的測試。
7、妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護(hù)提供方便。
三、軟件測試的方法有哪些
軟件測試有多種不同的方法,其中常用的四種測試方法分別是:
1、靜態(tài)測試
靜態(tài)測試方式指軟件代碼的靜態(tài)分析測驗,此類過程中應(yīng)用數(shù)據(jù)較少,主要過程為通過軟件的靜態(tài)性測試(即人工推斷或計算機(jī)輔助測試)測試程序中運算方式、算法的正確性,進(jìn)而完成測試過程,此類測試的優(yōu)點在于能夠消耗較短時間、較少資源完成對軟件、軟件代碼的測試,能夠較為明顯地發(fā)現(xiàn)此類代碼中出現(xiàn)的錯誤。靜態(tài)測試方法適用范圍較大,尤其適用于較大型的軟件測試。
2、動態(tài)測試
計算機(jī)動態(tài)測試的主要目的為檢測軟件運行中出現(xiàn)的問題,與靜態(tài)測試方式相比,其被稱為動態(tài)的原因是,測試方式主要依賴程序的運用,主要為檢測軟件中動態(tài)行為是否缺失、軟件運行效果是否良好。其最為明顯的特征即為進(jìn)行動態(tài)測試時軟件為運轉(zhuǎn)狀態(tài),只有如此才能于使用過程中發(fā)現(xiàn)軟件缺陷,進(jìn)而對此類缺陷進(jìn)行修復(fù)。目前動態(tài)測試過程中可包括兩類因素,即被測試軟件與測試中所需數(shù)據(jù),兩類因素決定動態(tài)測試正確展開、有效展開。
3、黑盒測試
黑盒測試,顧名思義,就是將軟件測試的環(huán)境模擬為不可見的“黑盒”。通過數(shù)據(jù)輸入觀察數(shù)據(jù)輸出,檢查軟件內(nèi)部功能是否正常。測試展開時,數(shù)據(jù)輸入軟件中,等待數(shù)據(jù)輸出。數(shù)據(jù)輸出時若與預(yù)計數(shù)據(jù)一致,則證明該軟件通過測試,若數(shù)據(jù)與預(yù)計數(shù)據(jù)有出入,即便出入較小亦證明軟件程序內(nèi)部出現(xiàn)問題,需盡快解決。
4、白盒測試
白盒測試相對于黑盒測試而言具有一定透明性,原理為根據(jù)軟件內(nèi)部應(yīng)用、源代碼等對產(chǎn)品內(nèi)部工作過程進(jìn)行調(diào)試。測試過程中常將其與軟件內(nèi)部結(jié)構(gòu)協(xié)同展開分析,最大優(yōu)點即為其能夠有效解決軟件內(nèi)部應(yīng)用程序出現(xiàn)的問題,測試過程中常將其與黑盒測試方式結(jié)合,當(dāng)測試軟件功能較多時,白盒測試法亦可對此類情況展開有效調(diào)試。其中,判定測試作為白盒測試法中最為主要的測試程序結(jié)構(gòu)之一,此類程序結(jié)構(gòu)作為對程序邏輯結(jié)構(gòu)的整體實現(xiàn),對于程序測試而言具有較為重要的作用。此類測試方式針對程序中各類型的代碼進(jìn)行覆蓋式檢測,覆蓋范圍較廣,適用于多類型程序。
實際檢測中,白盒測試法常與黑盒檢測法并用,以動態(tài)檢測方式中測試出的未知錯誤為例,首先使用黑盒檢測法,若程序輸入數(shù)據(jù)與輸出數(shù)據(jù)相同,則證明內(nèi)部數(shù)據(jù)未出現(xiàn)問題,應(yīng)從代碼方面進(jìn)行分析,若出現(xiàn)問題則使用白盒測試法,針對軟件內(nèi)部結(jié)構(gòu)進(jìn)行分析,直至檢測出問題所在,及時加以修改。