从根本上来讲,设计与测试案例只不过是同一个需求的不同表现形式。设计更多的是从逻辑上表现系统/功能的内部结构,对象间关系,算法或者流程等内容。测试案例则偏重于其设计实现的校验上。我个人觉得,无论是传统的开发模式,或是TDD,都无法脱离或背离需求这个根本。
接下来回答楼主的问题。自己觉得:设计测试案例的过程是对需求的解读和翻译过程。但不同的是,不同的人,不同的技能等级和系统认知都会对相同的需求产生不同的结果。设计测试案例的过程不能等同于设计过程,尤其是黑盒测试(从细粒度上讲)的测试用例。充其量作为系统设计的补充,以完善异常处理,验证现有实现。所以,我现在反而觉得,所谓设计,只不过是人对系统的一种理解和实现手段,不是最终目标。而相关的人认同或不认同该种手段,而后讨论、修订,最后达成妥协一致,进而实现。所以,我认为设计测试用例的过程不能等同于设计过程,但是却可以作为设计的中间认知过程。
TDD中实现的不断集成,不断测试,先实现测试模块再进行逻辑编码,不过是种实现手段,也许开发出来的内容质量会相对更好些,但并不代表非它莫属,更与测试案例设计过程和及系统设计毫不关系——TDD更多代表一种思想而非具体的实现。更现实点讲,实现有很多种方法,过程有很多选择,我想不必太过执着于哪种形式吧。
文章来源于领测软件测试网 https://www.ltesting.net/