https://www.facebook.com/rick.kyhwang/posts/10210605483812694
說明一些關於 #軟體測試的 觀念:
- 功能 (Functional)、整合 (Integration)、回歸 (Regression) 、效能 (Performance) 是不同的目標、目的 (請注意次序性)
- 測試這些事情所具備的條件、資源、環境是不一樣的
- 定義參閱 [1]
舉例
- #功能:處理一張圖檔的縮圖處理 - 重點在於功能可否運作
- #整合:處理一張圖縮圖 + 浮水印 + 改檔名 - 幾個功能放在一起運作邏輯
- #回歸:1) 重新驗證曾經出現的 bug/detect, 2)重跑功能 + 整合所有的 test cases.
- #效能:處理一萬張縮圖處理 - 重點在於完成所需的資源、時間
優先序:功能 > 整合 > 回歸 > 效能
觀察到的現象
- 很多人會把 功能 跟 效能 擺在一起測試,混為一談,特別是在規劃測試環境時,這兩個不能混為一談,會沒完沒了。
- 測試效能的前提是:功能能夠順利通過驗證。如果功能測試的可測性有問題,效能測試意義就不大。
- #整合測試 的排列組合無窮多,必須有使用者場景 (User Scenario) 支撐,參見 [3] 的案例分析
- 測試 也是 #解偶,不是啥東西都要扯在一起才能測。想想 AWS 怎麼測 EC2、VPC、DynamoDB ...
軟體測試的二分法
- 功能驗證 (FVT):#假設功能還沒好,目的是確認商業功能正確性,像是邏輯完整性、資料正確性、驗證與錯誤處理 … 等,強調功能本身的 #內聚力。
- 系統驗證 (SVT):#假設功能都好了,增加 外在環境因素 之後,把這些 功能 放到不同的環境會有什麼問題?強調外在 #耦合性、真實世界 的情境。
相關文章
[1] https://rickhw.github.io/2017/03/18/SQA/Stages-In-Software-Testing/
[2] https://rickhw.github.io/2018/03/18/SQA/Gossip-System-Testing/
[3] https://rickhw.github.io/2017/12/03/SQA/Regression-Test-Is-Tough/
[4] https://rickhw.github.io/2018/07/22/SQA/Performance-Test/