寫了幾百次的測試講義…就是書上的摘録!!

一般科學,真理 的把關者就是鐵面無私的「檢驗」。






 1.軟體測試的發展簡史


 

1975, IEEE上發表了 “ 軟體數據選擇原理”,將軟體測試定論為一種研究方向。證實
1979, Glenford J. Myers 發行了 “軟體測試的藝術” , 證偽
1983, 軟體測試完全指南,缺陷預防
2000, 自動化測試技術盛行,向體系化發展, TMM 測試成熟度模型, TCMM 測試能力成熟度模型 等等出現
2002, 系統化軟體測試,測試是為了量測和提高軟體品質,對測試軟體進行工程設計、實施和維護的整個生命周期過程。

【Note】

2001, 敏捷軟體開發宣言, DevOps 等逐漸發展
2008, 敏捷軟體開發模式轉型,瀑布式開發測試開始轉型為敏捷式開發測試。手動式測試及自動化測試同步發展。


DevOps : 開發即運維

CI : 持續集成

CD : 持續交付

CICD 自動化流水線,再次縮短產品發布周期!

VUCA : Volatility 易變、Uncertainty 不定、Complexity 複雜、Ambiguity 模糊

2. 測試架構

與開發相比,測試更需具有系統和全局的視野視角,一個專業的測試人員可以就 基於 “對行業的理解”、”對用戶行為的剖析”、”對使用場景的狀況”、”對競爭對手的了解”等,對測試是否通過做出預測性的判斷。

要能夠對不同的組織、產品、研發模式做出最適合當下狀況的選擇並進行剛剛好的測試。

好的產品是設計出來的,測試分析不僅能夠幫助幫助測試人員更好的認識產品,還能更深入的幫助開發者確認需求設計。測試的意義不僅在通過測試發現缺陷、為產品發佈提供信心,還在於缺陷的預防,切實的的提升產品的質量。

2.1 需求分析的階段

需求是測試的源頭

理解需求 (商業目標和核心的價值)

制定測試策略 (以確定測什麼及怎麼測)

【Note】風險識別和有效的風險應對能力

2.2 測試分析和設計

以此確認測試設計中的測試的覆蓋度 (廣度與深度) 剛剛好。

測試設計大綱

【Note】
IEEE 2476-2010的定義,產品的品質是指在特定的使用條件下,產品滿足明示和隱含的需求的固有特性”,簡單來說是品質是滿足需求,但需要不是一個容易被了解的事情。

2.3 測試執行的階段

手動測試或自動化測試並分析當前測試項目和計劃的偏差

確認和計劃的偏差

選擇合適的測試案例

跟踪測試過程

【Note】明確測試目標、測試重點的能力

2.4 測試品質的評估

需求覆蓋度分析

code 的覆蓋度分析

【Note】品質分析和評估的能力

3. 系統測試計劃

基本測試約可分為 單元測試、集成測試、系統測試、驗收測試,每個測試階段又包含了 測試計劃、測試設計、測試實現、測試執行等活動。

3.1 軟體測試生命周期

軟體工程中有軟體生命周期,同樣測試也有軟體測試生命周期,它是指一個測試如何完成,
像測試計劃-> 測試設計->測試實現->測試執行就是一個典型的軟體測試生命周期。

3.2 系統測試的四個階段

系統測試是針對軟體產品系統進行的測試,在總體上包含有功能測試和非功能測試兩個部份。
.功能性測試:是驗證軟體系統功能是否符合軟體系統的需求規格的測試過程。
.非功能性測試:是在驗證軟體系統是否符合軟體系統規格的基礎上,進而驗證測試系統的容錯性、穩定性、可用性…等等的測試過程。

具體的系統測試過程與軟體組織的具體過程定義相關。通常系統測試過程可分為:

1.系統測試計劃階段:完成系統測試計劃

2. 系統測試設計階段:完成系統測試方案

3. 系統測試實現階段:完成系統測試用例、腳本和規程.

4. 系統測試執行階段:執行系統測試用例,發現問題並回歸測試,提交系統測試日報和系統測試報告。

IEEE 1028 - Software Reviews and Audits. 2008.
IEEE 829 - Standard for Software and System Test Documentation, 2008
IEEE 730 - Software Quality Assurance Processes, 2014.
IEEE 1012 - System, Software, and Hardware Verification and Validation, 2016
ISO/IEC/IEEE 15939 - Systems and software engineering - Measurement process, 2017.

 

 

沒有留言:

張貼留言