3. 缺点
用分离法进行单元测试最主要的缺点是它不能提供一个早期的单元集成。这必须要等到软件生命周期的集成阶段才能做到。(这很难说是一个真正的缺点)
用分离法进行单元测试时需要结构设计信息和使用测试桩、测试驱动。这会导致在测试靠近底层的单元时,所花费成本要高于自下而上法。然而,这个缺陷可以通过简化层次较高的单元的测试,以及每个单元每次发生变化时的较低花费得到补偿。4. 总结
用分离法进行单元测试是最合适的选择。在加上适当的集成策略作为补充,将会缩短软件开发时间所占比例和降低开发费用,这个优势将会贯穿整个软件开发过程和软件生命周期。
按照分离法进行单元测试时,被测单元可以按照自上而下或者自下而上的顺序进行集成,或者集成为任何便利的群组和群组的结合。然而,一个自下而上的集成方式是与目前流行的面向对象和面向对象的设计最相兼容的策略。
分离法单元测试是实现高层次结构覆盖的最佳手段,而高层次结构覆盖对于很多标准所要求的高完善性和安全的关键性应用来说是至关重要。在通过单元测试完成了所有实现好的结构覆盖的困难工作的基础上,集成测试就可以集中于全面的功能测试和单元交互的测试。
四、 使用AdaTEST和Cantata
一个单元的测试在整个软件生命周期中要重复进行很多次,无论是在开发阶段还是维护过程中。一些测试工具如:AdaTEST和Cantata,可以用于一些易于重复进行和花费较少的自动化单元测试中,这样可以有效降低人为因素带来的风险。
AdaTEST和Cantata测试脚本由一个测试驱动和一个桩的集合(可选的)组成。AdaTEST和Cantata可以用于本文所介绍的任何单元测试的组织方法,或者这些方法的任意组合,使得开发人员可以采用最适合于项目应用的测试策略。
IPL提供了两篇相关论文,如下所示:
“Achieving Testability when using Ada Packaging and Data Hiding Methods” “Testing C++ Objects” |
论文“Testing C++ Objects”同样详细讨论了在用自下而上法进行单元测试时,分离的类和层次等级的约束是如何引发问题的。文章介绍了分离单元测试法是如何成为唯一实用的处理分离的类和层次等级约束的途径。
五、 结论
在实践中,将任何一种方法专门用于进行单元测试是不可能的。通常,分离单元测试法要通过一些自下而上的测试加以修改,将被调用单元用测试桩和已测的实际单元的混合体来表示。例如,直接使用一个数学函数更有实际意义,因为它已被测试并且不大可能发生改变。
一些建议的策略如下:
1、基于你的分离法的单元测试策略,继而自下而上的集成被测单元。
2、折中法,即自下而上的通过合并一些便于合并的单元,(例如:使用实际的操作符,数学函数,字符串操作等。)但是要记住潜在的变化带来的影响。
无论是进行单元测试,还是随着所测单元发生变化时重新测试和维护,同时也为了满足软件的可靠性而促进彻底的测试覆盖,这些都将导致成本的最低化。
请记住,单元测试是指测试每一个单元,而集成测试是指测试被测单元之间的交互关系。
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51Testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。
相关阅读: