近一直在研究软件测试相关理论,个人认为测试其实这是一个复杂的学科,一个的测试工程师需要具备多方面的能力和扎实的计算机理论,软件工程理论和编程思想。测试用例的设计更多地依赖你的逻辑是否完整,还需要一定统计学上基本东西,毕竟我们不能做到全路径覆盖。

  测试用例是测试的核心,如何设计出能发现问题,有效能覆盖需求,没有冗余的用例是每个测试工程师必须跨过的一道门槛。结合本人这么多年来在测试领域的经验总结,我们下面先探讨一下衡量和检验测试用例的标准?然后怎么做?为什么要这么做?还能做什么?测试用例的选择策略也可以谈谈,你如何来建立回归测试库?

  我心目中测试用例的标准如下:

  有可能发现bug的

  执行起来效率高,没有冗余步骤,每步都是佳选择

  能验证需求的,可追溯的

  粒度问题,不要超过3个检查点,如果很复杂,需要讨论怎么分解需求,多做到5个

  逻辑上一定是正确的,清晰的

  用例应该有级别,为以后选择用例提供参考。

  一一来分解:

  1 测试的主要目的是发现问题,查找错误,所以设计case的思路应该是”程序可能会怎样实效?“

  2 测试步骤不能太详细,派出一些冗余的步骤。另外有可能两个用例比较起来也会发现冗余,这样的用例执行起来效率低下,浪费时间。

  3 确认测试的主要目的是确认产品,软件的需求是否实现,因此每用例可以追溯到某条需求或者它的合理分解。怕是自己杜撰需求,设计出来的用例好能找到开发,或者市场,产品经理的review.

  4 测试用例应该有期望结果,期望结果里包含是检查点,检查点过多,过于复杂,难于被执行测试人员理解,影响测试执行效果。我的经验一个用例不要超过5个检查点。

  5 测试用例的顺序很重要,谁是谁的必要条件,逻辑上不能出错,否则很难执行,或者会误导测试执行人员,严重的情况失去测试人员信任,测试工程师后按照自己的想法执行,造成漏洞。

  6 不可能每条用例都要被执行,在后时间紧迫的情况下,测试经理会挑选级别高的测试用例来执行,保证主要功能被测试过。

  还有其他吗?希望大家积极思考,积极反馈!!

  如何能做到这些呢,我会根据大家的反馈,在下一篇里继续和大家探讨。