本文轉自51testing.com
原文:What Every Developer Needs to Know About Testing – James Bach
在某些開發人員眼裏,測試很神祕;在某些開發人員眼裏,測試很簡單;在某些開發人員眼裏,測試就是質量。下面是關於測試開發人員需要知道的一些基本的東西。
The product is more than software.
產品不僅僅是軟件本身
產品的底層是計算機、操作系統、插件等;產品還需要幫助文檔、手冊等配套文件;產品往往有多個版本,是新代碼、舊代碼、框架的融合;產品研製出來了還要有後續的支持,需要安裝、技術支持、補丁等。
所以說產品不僅僅是軟件本身,對於測試人員來說,要考慮的問題不僅僅是軟件程序本身。
Quality is more than the lack of bugs.
質量不僅僅取決於缺陷數量
缺陷數量少不意味着質量高,質量包括的範圍很廣,有些不構成bug,但是也是質量問題。
系統工作時是否解決了所有問題?
Functionality 功能性
-Suitability適宜性
-Correctness正確性
-Interoperability互用性
-Compatibility兼容性
-Compliance 規範性
-Security 安全性
-Installability 可安裝性
是否實用?
Usability 可用性
-Understandability 可理解性
-Learnability 易學性
-Operablility 易操作性
-Performance 性能
系統是否能持續工作?
Raliability 可靠性
-Maturity完備性
-Fault-tolerance容錯性
-Integrity完整性
-Recoverability可恢復性
-Safety 安全性
是否充分利用系統資源?
Efficiency 效率
-Storage 容量
-Processing處理能力
重新構建和維護是否經濟?
Maintainability 可維護性
-Analyzability可分析性
-Changeability可更改性
-Stability穩定性
-Testability可測試性
Portability可移植性
-Adaptability適應性
-Localizability本地化
-Reusability可重用性
詳細的定義可以從ISO-9126找到。
Quality assurance is more than testing
質量保證不僅限於測試
QA是爲了最小化風險和錯誤並讓產品更加優秀而做的所有事情。包括:
風險管理
顧客參與
開發人員的技能
過程定義和改進
檢查和測試
基於經驗的改進
…
Testing is hard to do
測試不是簡單的事情
測試很難做,因爲你必須預料到你的用戶使用的數據、具備的技能、採取的動作、對軟件的期待、使用環境等。
測試很難做,因爲你檢查的產品通常具備以下的特性:
不可見的
不穩定的
易變的
複雜的
不熟悉的
測試很難做,因爲你要使用的過程通常是:
冗長的
不明確的
不一致的
乏味的
費力的
測試很難做,因爲你要找的問題很多是不可想象的。
想想下面的工作量:
1、各種各樣的功能、輸入數據、狀態
2、產品要支持的各種平臺
3、系統的各種外部因素
4、測試的只是所有情況中能夠想到的預期的情況
5、測試產品的各個版本
自動化測試能否解決這些工作量呢?
1、 人可以發現更多的問題,更準確地發現問題
2、 完整有用的測試自動化是一個大型的軟件項目
3、 所用的支持工具通常都很昂貴並且古怪
4、 測試自動化通常是滯後的
You can make testing easier to do
你可以讓測試更簡單些
既然測試這麼複雜,那麼開發人員對測試給與必要的尊重外,是否還能做些什麼讓測試更簡單些呢?答案是肯定的。
你可以把設計文檔化
使用內部錯誤檢查
在集成之前測試每個單元
告訴測試人員增加了什麼新特性或者有什麼古怪的問題是需要進一步測試判斷的
對於每個構建的版本首先自己測試一下
在功能層面上改進產品
內建一些可測性接口