一般科學,真理 的把關者就是鐵面無私的「檢驗」。
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. 系統測試執行階段:執行系統測試用例,發現問題並回歸測試,提交系統測試日報和系統測試報告。
沒有留言:
張貼留言