關於軟體測試的專業領域
大部人對於軟體測試的想像在於..
重複性的測試 — yes
程式是 RD 寫的 但是Quality 卻要 QA Manager 負責 — yes
常常都是指出有問題的人 — yes
這樣的工作專業為何?
十年前剛加入 QA 團隊,筆者一開始也有這樣的迷思,慢慢隨著專案與經驗的累積,
QA 的工作範疇,大體會接觸到 (Not limited to):
Coding languages
Development models
Development paradigms
Incidents
Incident handling
Maturity models
Money
People skills
People types
Process improvement
Product architectures
Product paradigms
Product risks
Quality assurance activities
Quality factors
Quality goals
Resources
Risk willingness
Standards
Testing obstacles
Testing progress
Test approaches
Test basis
Test effort
Test levels
Test objectives
Test policy
Test processes
Test process improvement
Test project risks
Test scopes
Test techniques
Test tools
Test types
Time
軟體測試的定義
讓我們來看看幾個國際組織對於軟體測試的定義與定位
IEEE 829: “The process of analyzing a software item to
detect the difference between existing and required conditions (that is, bugs)
and to evaluate the features of the software items.”
BS 7925-1: “Process of exercising software to
verify that it satisfies requirements and to detect errors.”
ISTQB:
“The process consisting
of all life cycle activities, both static and dynamic, concerned with planning,
preparation and evaluation of software products and related work products
to determine that they satisfy specified requirements, to demonstrate
that they are fit for purpose and to detect defects.”
筆者認為:
軟體的測試 = QA Process 測試流程 + Testing Techniques 測試技巧 + Domain Know-how 產業產品知識
- QA process 指的是測試的流程,可能受到公司、產業等的影響,會有不同的規範與品質政策
- Testing Techniques:如何測試,白箱或是黑箱測試、用什麼測試工具等
- Domain know-how:對該產品、客戶與產業的熟悉。例如 consumer 的產品與 Enterprise用的產品就會有所不同。
專業價值的提升
從找出問題 —> 到幫助解決問題 —> 持續不斷的改善
(圖案內容取至 “Guide to Advanced Software Testing”)
創造價值
QA 可以從三個構面創造價值,分述如下
1. 產品價值的提升
2. 產品的決策
3. 持續改善的流程
透過 QA 的參予可以讓好的產品品質變得更好,讓品質不好的產品品質有所提升,將品質風險可以得到控管。