第一章 軟件測試的基本概念
(本章是對于mooc上課程的筆記基于個人理解的總結(jié))
1.1 軟件測試基礎(chǔ)
(此小節(jié)了解即可 指數(shù) *)
1.1.1軟件測試的定義
定義1:在特定條件下運行系統(tǒng)或構(gòu)件,觀察或記錄結(jié)果,對系統(tǒng)的某方面做出評價。
定義2:分析某個軟件項以發(fā)現(xiàn)和現(xiàn)存的和要求的條件之差別并評價此軟件項的特征。
即:軟件測試=評錯+度量
1.1.2軟件測試特征
可以從需求開始,而不僅僅是代碼。
既是靜態(tài)活動也是動態(tài)活動。
用來預(yù)防失效。
有助于在軟件生命周期中盡早發(fā)現(xiàn)問題,降低修復(fù)缺陷所需的成本。
創(chuàng)建可重用的測試件。
1.1.3 軟件測試的目的:
以最少人力、物力、時間找出軟件中錯誤和缺陷,通過修正提高軟件質(zhì)量回避風(fēng)險。
通過分析測試過程可以發(fā)現(xiàn)當(dāng)前開發(fā)所采用的軟件過程的缺陷,修正軟件開發(fā)規(guī)則。
對軟件質(zhì)量進(jìn)行度量和評估。(軟件測試的目的是工程性的)
1.1.4 軟件測試的一些關(guān)鍵問題
軟件測試證偽而非證真
今早和不斷地進(jìn)行軟件測試
重視無效數(shù)據(jù)和非預(yù)期使用習(xí)慣的測試
避免檢查自己的程序
充分注意測試中的群集現(xiàn)象
用例要定期評審(用例:一組測試輸入、執(zhí)行條件以級預(yù)期結(jié)果)
應(yīng)當(dāng)對每一個測試結(jié)果做全面檢查
測試現(xiàn)場保護(hù)和資料歸檔
經(jīng)濟(jì)性原則
1.2 軟件測試的分類
(此小節(jié)要大概知道每種測試是什么 指數(shù)**)
1.按開發(fā)過程分類
單元測試:在編譯通過后由白盒工程師或開發(fā)工程師依據(jù)源程序和詳細(xì)設(shè)計文檔進(jìn)行測試。主要用白盒測試,先靜態(tài)檢查代碼是否符合規(guī)范,然后動態(tài)運行代碼,檢查其實際運行結(jié)果,關(guān)注容錯處理和邊界值等問題。
集成測試:由白盒工程師或開發(fā)工程師依據(jù)源程序和概要設(shè)計文檔測試。主要測試個單元測試模塊之間的接口。
系統(tǒng)測試:對軟件系統(tǒng)的功能、性能以及軟件所運行的軟硬件環(huán)境進(jìn)行整體測試,主要由黑盒工程師在系統(tǒng)集成完畢后進(jìn)行測試。前期主要滿足功能后期主要滿足性能以及兼容性。
驗收測試:按項目任務(wù)合同書等對整個系統(tǒng)進(jìn)行測試與評審,由以用戶為主的測試人員或質(zhì)量保證人員參與覺得是否接受或拒收系統(tǒng)。包括α測試(用戶、開發(fā)測試人員共同參與)和β測試(內(nèi)測后完全交給用戶公測)。
2.按是否運行進(jìn)行分類
靜態(tài)測試:是指不是及運行被測軟件,而只是靜態(tài)地檢查程序代碼、界面或文檔中可能存在的錯誤過程。
動態(tài)測試:運行程序,輸入相應(yīng)的測試數(shù)據(jù)檢查是否符合預(yù)期。
3.按是否查看代碼分類:
黑盒測試:不關(guān)心是什么,只關(guān)心軟件的輸入數(shù)據(jù)和輸出數(shù)據(jù)。
白盒測試:研究代碼和程序結(jié)構(gòu)。包括:
-
功能測試:檢查實際軟件功能是否符合用戶需求。
邏輯功能測試
界面測試
易用性測試
安裝測試
兼容性測試
-
性能測試:比較高級,后面介紹。
壓力測試
負(fù)載測試
一般性測試
穩(wěn)定性測試
4.其他分類
回歸測試:軟件修改后重新進(jìn)行的測試。(降級bug:修改原來的bug后帶來的bug)
冒煙測試:大規(guī)模測試前先驗證下基本功能是否實現(xiàn),是夠具備可測試性。(如果基本功能都實現(xiàn)不了大規(guī)模測試意義不大)。
隨機(jī)測試:隨機(jī)輸入數(shù)據(jù)模擬用戶操作。
1.3 軟件缺陷管理
(此小節(jié)了解 指數(shù) *)
目的:確保每個發(fā)現(xiàn)的缺陷都可以得到解決。
軟件缺陷定義:
軟件未達(dá)到說明書中表明的功能
軟件出現(xiàn)了產(chǎn)品說明書中指明不會出現(xiàn)的功能
軟件功能超出產(chǎn)品說明書中指明的范圍
軟件未達(dá)到茶品說明書中指明應(yīng)達(dá)到的目標(biāo)。
軟件測試人員或用戶認(rèn)為難以理解和使用、運行慢或不好
軟件缺陷單通常包括:

軟件缺陷嚴(yán)重程度:

軟件缺陷的類別:

軟件缺陷生命周期(這個可以多了解一點):

1.4 軟件質(zhì)量特性與軟件測試特性
(此小節(jié)了解 指數(shù) *)
1.4.1 軟件質(zhì)量特性
靜態(tài)質(zhì)量特性:包括結(jié)構(gòu)化的、可維護(hù)的、可測試的代碼以及正確而又完整的文檔。
動態(tài)質(zhì)量特性:包括正確性、可靠性、完整性、一致性、易用性、性能等。
正確性:軟件輸入域(所有可能輸入的集合)種每個元素都能得到預(yù)期結(jié)果。
正確性是一個良好的愿望,但不是軟件測試的目標(biāo)
可靠性:給定時間間隔和條件 下無故障運行概率。
1.4.2 軟件的測試特性
測試的復(fù)雜性:
黑盒測試的復(fù)雜性:輸入量太大、輸出結(jié)果太多、軟件實現(xiàn)途徑太多、軟件規(guī)格說明沒有一個客觀標(biāo)準(zhǔn)。
白盒測試的復(fù)雜性:如途徑窮舉測試,十分復(fù)雜。
測試的經(jīng)濟(jì)性:要經(jīng)濟(jì)合理.
1.5 軟件測試充分性與停止分析
1.5.1 軟件測試的充分性:充分性是用來度量一個給定的測試集T是否能驗證軟件P滿足其需求R。充分性度量是相對于具體的測試充分性準(zhǔn)則C的。
覆蓋域:對于每一個測試準(zhǔn)則C,我們都可以得到一個有限集(測試需求或軟件代碼),稱之為覆蓋域Ce。
如果覆蓋域Ce僅依賴于被測軟件的代碼,則稱準(zhǔn)則Ce為一個白盒測試充分性準(zhǔn)則
如果覆蓋域Ce僅依賴于被測軟件的需求,則稱準(zhǔn)則C是一個黑盒測試的充分性準(zhǔn)則。
其他的測試充分性準(zhǔn)則都是二者的混合
測試覆蓋率:執(zhí)行測試集,覆蓋域中被滿足需求所占比例。
測試充分性準(zhǔn)則C2:
如果軟件P中的每一條路徑都被遍歷至少一次,則認(rèn)為測試集T針對(P,R)是充分的。
1.5.2軟件測試終止準(zhǔn)則
1.基于測試階段的原則:每個測試階段制定具體的測試結(jié)束標(biāo)準(zhǔn)。
2.基于測試用例的原則:測試用例經(jīng)過評審后可以作為測試結(jié)束的參考標(biāo)準(zhǔn)。
3.基于缺陷收斂趨勢及缺陷修復(fù)率原則:通過缺陷的趨勢圖走向來判斷測試是否可以結(jié)束。
4.基于驗收測試的原則:被驗收就結(jié)束。
5.基于覆蓋率的原則:達(dá)到一定覆蓋率即可。
6.軟件項目終止,測試終止。