很多开发人员在开发软件时, 会说他们的工作很难估得很准, 因为 spec 常常更改, 或者 spec 不明确, 所以无法确保要做多久.
哪测试呢? 测试的工作就能估得很准吗? 很多人会以为开发人员都已经写好了, 测试人员只是把 test cases 跑完就好, 哪有什么不确定的.
是这样吗? 让我们看下去....
假设, 我们要执行 40 个 test case. 每个 test case 需要执行 2 分钟.
如果我们遇到 bug, 测试人员需要花 6 分钟来确认错误原因; 或者是否还有相关的问题; 或是确保这真的是 bug 而不是 user error; 或者是花时间把 bug report 写完.
所以, 如果没有找到任何 bug 的状况下, 40 个 test case 要执行完, 测试人员需要花 80 分钟.
当测试人员遇到第一个 bug, 他需要花 2 分钟执行, 外加 6 分钟去进一步探索相关事情. 因此在总时间不变的状况下, 他只能执行完 36 个 test case, 加原先那个, 在相同时间下, 他最多只能执行 37 个 test cases.
( 80 - (2+6) ) / 2 = 36
如果再遇到下一个 bug, 测试人员又要再花 8 分钟. 所以剩下的时间, 测试人员只能在执行 32 个 test case, 所以加上原先 2 个 test case,在相同时间下, 只能执行完 34 个 test cases.
( 80 - (2+6) - (2+6) ) / 2 = 32
See… 找到越多 bug, 会让测试需要花越多时间, 无法保证他何时可以做完.
所以, 所以, 所以 ….. 测试人员做不完......
原来是开发人员的错, 没事产生这么多 bug XDDDD