第一章 軟件測試的基本概念
(本章是對于mooc上課程的筆記基于個人理解的總結)
1.1 軟件測試基礎
(此小節(jié)了解即可 指數(shù) *)
1.1.1軟件測試的定義
定義1:在特定條件下運行系統(tǒng)或構件,觀察或記錄結果前弯,對系統(tǒng)的某方面做出評價蚪缀。
定義2:分析某個軟件項以發(fā)現(xiàn)和現(xiàn)存的和要求的條件之差別并評價此軟件項的特征。
即:軟件測試=評錯+度量
1.1.2軟件測試特征
可以從需求開始恕出,而不僅僅是代碼询枚。
既是靜態(tài)活動也是動態(tài)活動。
用來預防失效浙巫。
有助于在軟件生命周期中盡早發(fā)現(xiàn)問題金蜀,降低修復缺陷所需的成本刷后。
創(chuàng)建可重用的測試件。
1.1.3 軟件測試的目的:
以最少人力渊抄、物力惠险、時間找出軟件中錯誤和缺陷,通過修正提高軟件質量回避風險抒线。
通過分析測試過程可以發(fā)現(xiàn)當前開發(fā)所采用的軟件過程的缺陷,修正軟件開發(fā)規(guī)則渣慕。
對軟件質量進行度量和評估嘶炭。(軟件測試的目的是工程性的)
1.1.4 軟件測試的一些關鍵問題
軟件測試證偽而非證真
今早和不斷地進行軟件測試
重視無效數(shù)據(jù)和非預期使用習慣的測試
避免檢查自己的程序
充分注意測試中的群集現(xiàn)象
用例要定期評審(用例:一組測試輸入、執(zhí)行條件以級預期結果)
應當對每一個測試結果做全面檢查
測試現(xiàn)場保護和資料歸檔
經(jīng)濟性原則
1.2 軟件測試的分類
(此小節(jié)要大概知道每種測試是什么 指數(shù)**)
1.按開發(fā)過程分類
單元測試:在編譯通過后由白盒工程師或開發(fā)工程師依據(jù)源程序和詳細設計文檔進行測試逊桦。主要用白盒測試眨猎,先靜態(tài)檢查代碼是否符合規(guī)范,然后動態(tài)運行代碼强经,檢查其實際運行結果睡陪,關注容錯處理和邊界值等問題。
集成測試:由白盒工程師或開發(fā)工程師依據(jù)源程序和概要設計文檔測試匿情。主要測試個單元測試模塊之間的接口兰迫。
系統(tǒng)測試:對軟件系統(tǒng)的功能、性能以及軟件所運行的軟硬件環(huán)境進行整體測試炬称,主要由黑盒工程師在系統(tǒng)集成完畢后進行測試汁果。前期主要滿足功能后期主要滿足性能以及兼容性。
驗收測試:按項目任務合同書等對整個系統(tǒng)進行測試與評審玲躯,由以用戶為主的測試人員或質量保證人員參與覺得是否接受或拒收系統(tǒng)据德。包括α測試(用戶、開發(fā)測試人員共同參與)和β測試(內測后完全交給用戶公測)跷车。
2.按是否運行進行分類
靜態(tài)測試:是指不是及運行被測軟件棘利,而只是靜態(tài)地檢查程序代碼、界面或文檔中可能存在的錯誤過程朽缴。
動態(tài)測試:運行程序善玫,輸入相應的測試數(shù)據(jù)檢查是否符合預期。
3.按是否查看代碼分類:
黑盒測試:不關心是什么不铆,只關心軟件的輸入數(shù)據(jù)和輸出數(shù)據(jù)蝌焚。
白盒測試:研究代碼和程序結構。包括:
-
功能測試:檢查實際軟件功能是否符合用戶需求誓斥。
邏輯功能測試
界面測試
易用性測試
安裝測試
兼容性測試
-
性能測試:比較高級只洒,后面介紹。
壓力測試
負載測試
一般性測試
穩(wěn)定性測試
4.其他分類
回歸測試:軟件修改后重新進行的測試劳坑。(降級bug:修改原來的bug后帶來的bug)
冒煙測試:大規(guī)模測試前先驗證下基本功能是否實現(xiàn)毕谴,是夠具備可測試性。(如果基本功能都實現(xiàn)不了大規(guī)模測試意義不大)。
隨機測試:隨機輸入數(shù)據(jù)模擬用戶操作涝开。
1.3 軟件缺陷管理
(此小節(jié)了解 指數(shù) *)
目的:確保每個發(fā)現(xiàn)的缺陷都可以得到解決循帐。
軟件缺陷定義:
軟件未達到說明書中表明的功能
軟件出現(xiàn)了產品說明書中指明不會出現(xiàn)的功能
軟件功能超出產品說明書中指明的范圍
軟件未達到茶品說明書中指明應達到的目標。
軟件測試人員或用戶認為難以理解和使用舀武、運行慢或不好
軟件缺陷單通常包括:
軟件缺陷嚴重程度:
軟件缺陷的類別:
軟件缺陷生命周期(這個可以多了解一點):
1.4 軟件質量特性與軟件測試特性
(此小節(jié)了解 指數(shù) *)
1.4.1 軟件質量特性
靜態(tài)質量特性:包括結構化的拄养、可維護的、可測試的代碼以及正確而又完整的文檔银舱。
動態(tài)質量特性:包括正確性瘪匿、可靠性、完整性寻馏、一致性棋弥、易用性、性能等诚欠。
正確性:軟件輸入域(所有可能輸入的集合)種每個元素都能得到預期結果顽染。
正確性是一個良好的愿望,但不是軟件測試的目標
可靠性:給定時間間隔和條件 下無故障運行概率轰绵。
1.4.2 軟件的測試特性
測試的復雜性:
黑盒測試的復雜性:輸入量太大粉寞、輸出結果太多、軟件實現(xiàn)途徑太多左腔、軟件規(guī)格說明沒有一個客觀標準仁锯。
白盒測試的復雜性:如途徑窮舉測試,十分復雜翔悠。
測試的經(jīng)濟性:要經(jīng)濟合理.
1.5 軟件測試充分性與停止分析
1.5.1 軟件測試的充分性:充分性是用來度量一個給定的測試集T是否能驗證軟件P滿足其需求R业崖。充分性度量是相對于具體的測試充分性準則C的。
覆蓋域:對于每一個測試準則C蓄愁,我們都可以得到一個有限集(測試需求或軟件代碼)双炕,稱之為覆蓋域Ce。
如果覆蓋域Ce僅依賴于被測軟件的代碼撮抓,則稱準則Ce為一個白盒測試充分性準則
如果覆蓋域Ce僅依賴于被測軟件的需求妇斤,則稱準則C是一個黑盒測試的充分性準則。
其他的測試充分性準則都是二者的混合
測試覆蓋率:執(zhí)行測試集丹拯,覆蓋域中被滿足需求所占比例站超。
測試充分性準則C2:
如果軟件P中的每一條路徑都被遍歷至少一次,則認為測試集T針對(P乖酬,R)是充分的死相。
1.5.2軟件測試終止準則
1.基于測試階段的原則:每個測試階段制定具體的測試結束標準。
2.基于測試用例的原則:測試用例經(jīng)過評審后可以作為測試結束的參考標準咬像。
3.基于缺陷收斂趨勢及缺陷修復率原則:通過缺陷的趨勢圖走向來判斷測試是否可以結束算撮。
4.基于驗收測試的原則:被驗收就結束生宛。
5.基于覆蓋率的原則:達到一定覆蓋率即可。
6.軟件項目終止肮柜,測試終止陷舅。