2013年6月26日 星期三

軟體測試...筆記(1)

因為教科書上面已經寫了很多,撇開測試的定義以及目的不談,單以軟體流程來說(也就是不涉及組織行為),最容易一窺全貌的是最著名的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
  1. equivalance class test
  2. boundary test
  3. random test
  4. state transition test
  • nonfunctional test
  1. install/uninstall test
  2. usability test
  3. negative test
  4. recovery test
  5. security test
  6. compatibility test
  7. performance test
  8. stress test/load test
  9. volume test
  10. 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?
主要任務是
  • 可追蹤性分析
  • 評估
  • 介面分析
  • 關鍵性分析
  • 測試
  • 危害性分析
  • 風險分析
  • 其他

沒有留言:

張貼留言