测试驱动开发(TDD)用例的设计

最近转到一家公司,对质量经理的职责有了更广泛的定义,即同时负责需求的设计。在这种情况下,引入TDD(测试驱动开发)这种开发模式。在TDD下,如果我们再按照系统测试用例的编写方式去设计用例,将出现大量的遗漏。我们在进行测试用例的设计时,需要进行一些针对性的步骤设计以及必要的冗余用例设计。

要体现出表操作

开发时,功能开发与涉及到列表、数据显示与查询页面无法同时完成。所以功能涉及到的表操作,我们几乎没法通过页面查询来判断。此时,功能实现中涉及到的数据库表操作应该在用例步骤中体现出来。否则开发人员在对数据库表结构不是非常熟悉的情况下,会导致一些该做的表操作并没有执行。

要覆盖到所有流程分支

在由多个子系统组成的系统中,如果我们仅仅针对于场景做系统测试用例,会导致一些流程分支覆盖不完全。区别于场景设计,此时应根据具体可能出现的情况分别针对性设计用例。而不应按黑盒的基本概念,不关心里面的内部逻辑来设计用例。同时,我们需要在用例中体现出内部的通信处理方式,比如同步和异步通信处理。

边界设计,需要给出具体的边界判断方式,而不仅仅是测试数据

在黑盒测试用例设计时,我们设计用例往往只给出了测试数据,这些数据可能就是根据边界判断方程式得出的(如A-B)。但在TDD开发模式下,我们应该同时把该数据怎么得出的其它相关条件(或数据)及方程式放入对应用例。这样开发人员,才能根据用例进行相应的程序处理。

当需求发生变更时,测试用例要及时更新

当需求发生变更时,应及时对测试用例做更新。同时要把更新的用例以某种项目的方式标识出来,并确保将其通知到对应开发人员。

可能情况下,设计单元测试用例

如果要让程序员更加受益于TDD开发模式。那我们可能引入单元测试用例的设计。这样,程序员不会去关注具体的业务逻辑,只要根据单元测试用例,把对应的功能一一实现就OK了。这个仅仅是作者本人的猜想,还没尝试过这样的方法。

总之,TDD模式开发,测试用例设计应区别于以往的黑盒用例设计。要尽可能的去覆盖流程分支,从而避免遗漏。



留言