測試理論基礎
1.軟件的組成:程序刃滓,數據,文檔
2.軟件測試:使用人工或者自動化手段運行程序,為了發(fā)現軟件的錯誤而執(zhí)行檢驗的過程
3.軟件測試的目的:以最少的人力物力時間找到軟件中的缺陷并修改,從而規(guī)避風險
4.軟件測試作用:發(fā)現并修改軟件中存在的缺陷溃斋,提高用戶對產品的使用信心;記錄軟件運行過程中產生的一些數據吸申,從而為決策提供數據支持梗劫;可以降低同類型產品開發(fā)遇到的問題風險
5.軟件測試的七原則:a.測試顯示軟件存在缺陷b.窮盡測試是不可能的c.測試盡早介入d.缺陷集群性(2/8原則)e.殺蟲劑悖論f.測試活動依賴于測試內容g.沒有錯誤是好事謬論
6.測試對象:需求分析階段:各種需求規(guī)格說明—>軟件架構設計:API接口文檔接口測試—>編碼實現階段:源代碼(白盒測試,單元測試)—>系統功能使用:軟件功能主題(當前行業(yè)做的最多的一種測試)
7.測試級別(測試階段):單元測試(最小的軟件設計單元)—>集成測試—>系統測試—>回歸測試—>驗收測試(分2種:α[用戶在開發(fā)者的場所進行截碴,在受控環(huán)境]? 和β[用戶記錄測試中遇到的問題并報告給開發(fā)者梳侨,開發(fā)者對系統進行最后的修改,并開始準備發(fā)布最終的軟件])
8.系統測試分類:功能測試日丹,兼容性測試走哺,性能測試,安全測試
黑盒有可能是動態(tài)(運行程序哲虾,輸入輸出),也可能是靜態(tài)(不運行丙躏,只看界面);
白盒有可能是動態(tài)(運行程序并分析代碼結構),也可能是靜態(tài)(不運行择示,只靜態(tài)查看代碼);
動態(tài)測試有可能是黑盒(運行,只看輸入輸出),也有可能是白盒(運行并分析代碼結構);
靜態(tài)測試有可能是黑盒(不運行晒旅,只查看界面),也可能是白盒(不運行栅盲,只查看代碼)
9.軟件測試流程:需求分析評審—>制定測試計劃—>測試用例設計—>測試用例評審—>執(zhí)行測試用例—>缺陷管理—>輸出測試報告(測試范圍,進度废恋,缺陷管理谈秫,結論)—>產品發(fā)布—>結束測試
測試模型
1.V模型:需求分析—>概要設計—>詳細設計—>編碼—>單元測試—>集成測試—>系統測試—驗收測試
優(yōu)點:包含底層測試(單元測試)和高層測試(系統測試),清楚的標識了開發(fā)和測試的各個階段鱼鼓,自下而上逐步求精拟烫,每個階段分工明確,便于整體項目的把控
缺點:自下而上的順序導致測試工作在編碼之后蚓哩,有錯誤不能及時修改;在工作中用戶需求經常變化上渴,導致v模型步驟岸梨,反復執(zhí)行,返工量大稠氮,靈活度低
2.W模型:
開發(fā)v:需求分析—>概要設計—>詳細設計—>編碼—>集成—>實施—>交付
測試v:驗收/系統測試設計—>集成測試設計—>單元測試設計—>單元測試—>集成測試—>系統測試—>驗收測試
優(yōu)點:強調測試伴隨整個軟件開發(fā)周期曹阔,并且測試對象不僅僅是程序,需求和概要設計同樣要測試隔披;更早地接入測試赃份,可以發(fā)現開發(fā)初期的缺陷,且用更低的成本進行缺陷修復奢米,分階段的工作抓韩,便于把控項目
缺點:依賴于軟件開發(fā)和軟件測試依然保持一前一后的線性關系,依然無法支持迭代鬓长、自發(fā)性和需求等變更調整谒拴,在當前很多項目中,在執(zhí)行過程中根本不產生文檔涉波,W模型無法適用英上;使用起來對技術復雜度很高,對需求和設計的測試要求很高啤覆,實踐困難苍日。
軟件測試分類
1.按開發(fā)階段分類:單元測試—>集成測試—>系統測試—>驗收測試
2.按是否查看代碼分類:
a.黑盒測試:(1).功能測試:邏輯功能測試—>界面測試—>易用性測試—>安裝測試—>兼容性測試
(2).性能測試:一般性能測試—>穩(wěn)定性測試—>負載測試—>壓力測試
b.白盒測試
c.灰盒測試
3.按測試對象劃分:性能測試—>安全測試—>兼容性測試—>文檔測試—>易用性測試(用戶體驗)—>業(yè)務測試—>界面測試—>安裝測試
4.按測試執(zhí)行方式:靜態(tài)測試—>動態(tài)測試
5.按測試實施組織分類:α測試—>β測試—>第三方
測試用例
1.測試用例:
2.測試用例作用:
3.測試用例特點(要素):用例編號—>測試項—>測試標題—>用例屬性—>重要級別—>預置條件—>測試輸入—>操作步驟—>預期結果—>實際結果—>
4.編寫測試用例方法:等價劃分法—>邊界值分析法—>因果圖法—>判定表法—>場景設計法(流程分析發(fā))—>正交試驗法—>錯誤推斷法