Test Case所涵蓋的範圍足夠了嗎?


很多人常常問, 如何得知test cases是否已經開得足夠了, 是否已經cover所有的範圍了, 這還真的是很難回答的問題, 但是也是各很值得大家一起討論的問題.

因此小弟在此先拋磚引玉, 先列出一些個人的看法, 希望大家能夠一起參予討論, 貢獻一下不同的想法

1. Requirement - Test Cases Mapping
常見的手法, 是建立requriement/design 和test case的對應關係. 這樣你便可以知道, 是否每個requirement已經有對應的test cases. 如果沒有對應的部份, 便要加開 test case
Pro
- 容易開始作
- 提供一個high level mapping relationship
- 有這樣的關係, 之後還可以進一步做一些分析, 例如 bug, test cases和requirement的關係
Con
- 不容易對所有細項功能都做這樣的mapping, 會花大多時間
- 通常常沒有requriement/design的文件, 所以想mapping也mapping不起來.

2. Test Coverage
經由coverage ratio你便可以知道哪些地方沒有測到, 便可以要求加開test case
Pro
- 可以精確知道哪裡沒有test case包含到
Con
- 不是所有系統都可以找到可以使用的coverage tool
- coverage criteria是一個重點, all statement coverage 100%, 和all decision coverage 100%是不同程度的coverage. all statement coverage 100%只是最低程度的要求(我是以學術研究的角度來看, 呵呵)
- 如果都不寫erro handling的程式, coverage ratio通常最高, 但我想這應該不是你要的結果
- 需要RD協助, QA才能進行的比較順利. 因為要分辨3-party的 codes, 或是exception handling, error handling的執行, 這些地方常需要RD幫助才能做到

3. Beta Bugs
由Beta 所找到的bugs分布或是數量, 可以知道目前的test case是否已經足夠了. 若是有些部分被找到很多bug, 那便是這部份的test case還不足夠
Pro
- 可以提供不同的角度來驗證是否足夠, 尤其這是real world的觀點
Con
- 這個時間點已經在專案後期, 因此可能會讓你沒有時間再補開更多test cases, RD也可能沒有時間作design的修改.
- 可能有些公司是沒有Beta這個階段, 所以你沒辦法有這樣的資訊
- 有些project是不需要Beta這個階段, 所以你沒辦法有這樣的資訊

4. Alpha Bugs
由Alpha所找到的bugs分布或是數量, 可以知道目前的test case是否已經足夠了. 若是有些部分被找到很多bug, 那便是這部份的test case還不足夠. 和Beta不同的是, 一定會有Alpha這個階段
Pro
- 可以根據找到的bug, 再加開test case以增加完整性
Con
- 在Alpha階段, 就要能一邊測試, 一邊review測試個案是否足夠, 否則也是會太慢才得知不夠

5. History data
可以根據歷史資料, 來得知是否已經開足夠的test case. 例如大約多少行的程式要開立多少的test case. 或是多少test case害找多少bug. 用他們還回推是否test case已經足夠
Pro
- 通常下一個版本時, team的能力不會改變太多, 所以出來的資料是蠻準確的. 不會因為你做過一次或是功能不同, 而會差太多
Con
- 真尷尬的是, 大部分的公司或是team, 沒有記下任何歷史資料
- 如果是1.0的版本, 可能也沒有資料可以參考

6. Test Case Type
在開立測試個案之前, 先將測試個案分類, 至於要分成哪些類別, 可以根據team的需求自行定義. 因此當QA在開case時, 要對其test case分類, 之後便可以檢查是否他所開立的case種類涵蓋度夠. 可參考以下文章, 知道更進一步作法
http://www.wretch.cc/blog/kojenchieh/12801500
Pro
- 若是你沒有分類, 這個QA所開的case可能都只是屬於某幾類, 即使個數很多, 代表性可能也不夠
- 訓練QA能從更多面向來思考
- 若是之後發現某些類別(type)要增加, 可以在要求所有QA針對這項目來加開
Con
- 要有哪些類別(Type)不容易定義完整
- 有些類別(type), QA不知道那是什麼或是要怎麼開case. 例如 security test case, state based test case等等.

arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(3) 人氣()