
1、按是否查看程序內(nèi)部結(jié)構(gòu)分為:
(1)黑盒測試(black-box testing):只關(guān)心輸入和輸出的結(jié)果
(2)白盒測試(white-box testing):去研究里面的源代碼和程序結(jié)構(gòu)
此外,還有灰盒測試:介于黑、白盒測試之間的,關(guān)注輸出對(duì)于輸入的正確性,同時(shí)也關(guān)注內(nèi)部表現(xiàn)
2、按是否運(yùn)行程序分為:
(1)靜態(tài)測試(static testing):是指不實(shí)際運(yùn)行被測軟件,而只是靜態(tài)地檢查程序代碼、界面或文檔可能存在的錯(cuò)誤的過程。
靜態(tài)測試包括:
對(duì)于代碼測試,主要是測試代碼是否符合相應(yīng)的標(biāo)準(zhǔn)和規(guī)范。
對(duì)于界面測試,主要測試軟件的實(shí)際界面與需求中的說明是否相符。
對(duì)于文檔測試,主要測試用戶手冊(cè)和需求說明是否真正符合用戶的實(shí)際需求。
(5)動(dòng)態(tài)測試(dynamic testing),是指實(shí)際運(yùn)行被測程序,輸入相應(yīng)的測試數(shù)據(jù),檢查輸出結(jié)果和預(yù)期結(jié)果是否相符的過程
3、按階段劃分:
(1)單元測試(unit testing),是指對(duì)軟件中的最小可測試單元進(jìn)行檢查和驗(yàn)證。
樁模塊(stud)是指模擬被測模塊所調(diào)用的模塊,驅(qū)動(dòng)模塊(driver)是指模擬被測模塊的上級(jí)模塊,驅(qū)動(dòng)模塊用來接收測試數(shù)據(jù),啟動(dòng)被測模塊并輸出結(jié)果。
(2)集成測試(integration testing),是單元測試的下一階段,是指將通過測試的單元模塊組裝成系統(tǒng)或子系統(tǒng),再進(jìn)行測試,重點(diǎn)測試不同模塊的接口部門。
集成測試就是用來檢查各個(gè)單元模塊結(jié)合到一起能否協(xié)同配合,正常運(yùn)行。
(3)系統(tǒng)測試(system testing),指的是將整個(gè)軟件系統(tǒng)看做一個(gè)整體進(jìn)行測試,包括對(duì)功能、性能,以及軟件所運(yùn)行的軟硬件環(huán)境進(jìn)行測試。
系統(tǒng)測試的主要依據(jù)是《系統(tǒng)需求規(guī)格說明書》文檔。
(4)驗(yàn)收測試(acceptance testing),指的是在系統(tǒng)測試的后期,以用戶測試為主,或有測試人員等質(zhì)量保障人員共同參與的測試,它也是軟件正式交給用戶使用的最后一道工序。
驗(yàn)收測試又分為a測試和beta測試,其中a測試指的是由用戶、 測試人員、開發(fā)人員等共同參與的內(nèi)部測試,而beta測試指的是內(nèi)測后的公測,即完全交給最終用戶測試。
4、黑盒測試分為功能測試和性能測試:
1)功能測試(function testing),是黑盒測試的一方面,它檢查實(shí)際軟件的功能是否符合用戶的需求。
包括邏輯功能測試(logic function testing)
界面測試(UI testing)UI=User Interface
易用性測試(usability testing):是指從軟件使用的合理性和方便性等角度對(duì)軟件系統(tǒng)進(jìn)行檢查,來發(fā)現(xiàn)軟件中不方便用戶使用的地方。
兼容性測試(compatibility testing):包括硬件兼容性測試和軟件兼容性測試
2)性能測試(performance testing)
軟件的性能主要有時(shí)間性能和空間性能兩種
時(shí)間性能:主要指軟件的一個(gè)具體事務(wù)的響應(yīng)時(shí)間(respond time)。
空間性能:主要指軟件運(yùn)行時(shí)所消耗的系統(tǒng)資源。
軟件性能測試分為:
一般性能測試:指的是讓被測系統(tǒng)在正常的軟硬件環(huán)境下運(yùn)行,不向其施加任何壓力的性能測試。
穩(wěn)定性測試也叫可靠性測試(reliability testing):是指連續(xù)運(yùn)行被測系統(tǒng)檢查系統(tǒng)運(yùn)行時(shí)的穩(wěn)定程度。
負(fù)載測試(load testing):是指讓被測系統(tǒng)在其能忍受的壓力的極限范圍之內(nèi)連續(xù)運(yùn)行,來測試系統(tǒng)的穩(wěn)定性。
壓力測試(stress testing):是指持續(xù)不斷的給被測系統(tǒng)增加壓力,直到將被測系統(tǒng)壓垮為止,用來測試系統(tǒng)所能承受的最大壓力。(Validate the system or software can allowed the biggest stress.)
5、其他測試類型:
回歸測試(regression testing)是指對(duì)軟件的新的版本測試時(shí),重復(fù)執(zhí)行上一個(gè)版本測試時(shí)的用例。(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.)
冒煙測試(smoke testing),是指在對(duì)一個(gè)新版本進(jìn)行大規(guī)模的測試之前,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn),是否具備可測性。(validate the major function is deployed or not in software of system when a new build or release is implement.)
隨機(jī)測試(random testing),是指測試中所有的輸入數(shù)據(jù)都是隨機(jī)生成的,其目的是模擬用戶的真實(shí)操作,并發(fā)現(xiàn)一些邊緣性的錯(cuò)誤。(means or all the test data is random, to validate the some edge bugs.)
測試流程
1.通用的測試流程:
需求——》開發(fā)——》自測(開發(fā))——》產(chǎn)品/設(shè)計(jì)驗(yàn)收——》提測——》測試——》上線
2.流程要持續(xù)優(yōu)化,不斷改進(jìn),滿足工作需要(如產(chǎn)品通過發(fā)郵件通知,如開發(fā)代碼的review,如單元測試的推進(jìn))一切都為了產(chǎn)品的質(zhì)量。
3.持續(xù)集成,結(jié)果及時(shí)反饋