因為教科書上面已經寫了很多,撇開測試的定義以及目的不談,單以軟體流程來說(也就是不涉及組織行為),最容易一窺全貌的是最著名的V-model或者W-model
但是從W-model來說,由於太過抽象,一般在requirement test跟functional test變得很模糊
比方說,requirement test可以執行幾樣工作的檢查
- Visible ?
- Clear? (unambiguous)
- Complete?
- Consistent? (conflicting requirements must be prioritized)
- Reasonable? (achievable)
- Measurable? (quantifiable)
- Modifiable? (will it change or is it stable?)
- Traceable? (the source is known)
- Dependent requirements identified?
- Testable? (given current environment, resources, skills)
或許可以使用specification by example的作法,再來檢驗這件事情會比較容易,也比較全面,以specification by example為骨幹,檢驗這幾個因素為分支,這樣就顯得較為明顯。
至於其他V model內建議的unit test, integrated test, system test, acceptance test比較工程化,也比較容易理解
以工程化的測試來說
依照測試特性可以分成
- 白箱測試
- 灰箱測試
- 黑箱測試
依照開發過程可以分成
- unit test
- integrated test
- system test
- acceptance test
- regression test
依照需求分類可以分成
- smoke test
- sanity test
- benchmark test
依照性質分類可以分成
- functional test
- equivalance class test
- boundary test
- random test
- state transition test
- nonfunctional test
- install/uninstall test
- usability test
- negative test
- recovery test
- security test
- compatibility test
- performance test
- stress test/load test
- volume test
- ad hoc test
在CMMI Level 3中可以對應到Verfication and Validation (V&V) KPA這個項目
Verfication : Are we building the thing right?
Validation : Are we building the right thing?
主要任務是
- 可追蹤性分析
- 評估
- 介面分析
- 關鍵性分析
- 測試
- 危害性分析
- 風險分析
- 其他
沒有留言:
張貼留言