下载此文档

基于Ldra Tbrun的单元测试..pdf


文档分类:通信/电子 | 页数:约22页 举报非法文档有奖
1/22
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/22 下载此文档
文档列表 文档介绍
基于Ldra Tbrun的单元测试 1 摘要单元测试是软件开发过程中重要的质量保证活动,是在测试过程中的最小粒度,单元测试的质量将很大程度上影响软件产品的最终质量,单元测试做好,可以显著提高软件质量。目前国内主要是开发人员来做单元测试,未来将会是测试人员主做单元测试的比重越来越大。本文介绍运用testbed单元测试工具基于c/c++的单元测试的项目实践,为软件企业开展单元测试提供借鉴。 2 单元测试的概念单元测试广义上是指包括静态分析、代码审查、动态测试。动态测试包括自动动态测试和人工动态测试。本文中单元测试主要是指人工动态测试,是指对单个的软件单元或者一组相关的软件单元所进行单独的隔离的测试,是代码级的测试。其中软件单元是指软件源代码中单个的函数或类,本文主张以函数为测试单元。 3单元测试的必要性单元测试是软件测试的基础,因此单元测试的效果会直接影响到软件的后期测试,最终在很大程度上影响到产品的质量。从如下几个方面就可以看出单元测试的重要性。?时间方面如果认真的做好了单元测试,在系统集成联调时非常顺利,因此会节约很多时间,反之那些由于因为时间原因不做单元测试或随便做的则在集成时总会遇到那些本应该在单元测试就能发现的问题,而这种问题在集成时遇到往往很难让开发人员预料到,最后在苦苦寻觅中才发现这是个很低级的错误而浪费了很多时间。?测试效果首先它是测试阶段的基础,做好了单元测试,在做后期的集成测试和系统测试时就很顺利。其次在单元测试过程中能发现一些很深层次的问题,同时还会发现一些很容易发现而在集成测试和系统测试很难发现的问题。再次单元测试关注的范围也特殊,它不仅仅是证明这些代码做了什么,最重要的是代码是如何做的,是否做了它该做的事情而没有做不该做的事情。?成本经验表明一个尽责的单元测试方法将会在软件开发的某个阶段发现很多的Bug,并且修改它们的成本也很低。在软件开发的后期阶段,Bug的发现并修改将会变得更加困难,并要消耗大量的时间和开发费用。无论什么时候作出修改都要进行完整的回归测试,在生命周期中尽早地对软件产品进行测试将使效率和质量得到最好的保证。在提供了经过测试的单元的情况下,系统集成过程将会大大地简化。开发人员可以将精力集中在单元之间的交互作用和全局的功能实现上,而不是陷入充满很多Bug的单元之中不能自拔。?产品质量单元测试的好与坏直接影响到产品的质量,可能就是由于代码中的某一个小错误就导致了整个产品的质量降低一个指标,或者导致更严重的后果,如果我们做好了单元测试这种情况是可以完全避免的。 4单元测试的目标单元测试的目标就是完整检测代码单元的功能逻辑。找出代码单元本身的所有功能逻辑错误,具体来说,就是检测对数据的各种分类是否考虑全面,处理是否正确。单元测试并不是用来代替系统测试、性能测试的,它的目标相当明确,就是检测代码单元本身的功能逻辑错误。而设计错误、性能问题难于在最小单元内测试,不是单元测试目标。单元测试并不是覆盖率所有代码,实践证明测试越多,额外测试的价值越少。单元测试的重点是功能逻辑复杂的代码,也就是算法密集度越高,可能的错误越多,越需要全面的测试,测试效益越大。80-20规则在软件开发中同样存在,也就是80%的代码错误可能存在于 20%的代码中,20%的代码可能占用了80%的开发调试时间。这20%就是算法密集的代码, 即使只对这些代码进行单元测试,也可以产生巨大的效益。 5单元测试方法单元测试主要采用白盒测试方法,尽可能达到彻底测试,辅以黑盒测试方法,使之对任何合理和不合理的输入都能鉴别和响应。 (Blake-box Testing) 是把程序看作一个不能打开的黑盒子,不考虑程序内部结构和内部特性,而是考察数据的输入、条件限制和数据输出,完成测试。 (White-box Testing) 也称结构测试或逻辑驱动测试。白盒测试方法是根据模块内部结构了解,基于内部逻辑结构,针对程序语句、路径、变量状态等来进行测试,检验程序中的各个分支条件是否得到满足、每条执行路径是否按预定要求正确的工作。白盒测试通过逻辑覆盖率来衡量完整性,具有可以精确统计的数字指标。逻辑单位主要有:语句、分支、条件、条件值、条件值组合,路径。语句覆盖就是覆盖所有的语句,其他类推。另外还有一种判定条件覆盖,其实是分支覆盖与条件覆盖的组合。在进行白盒测试时,可以使用单元测试工具追踪哪些代码被执行过,哪些代码被遗漏了。单元测试工具一般会提供有关功能覆盖、分支覆盖、条件覆盖的信息。 6 单元测试的难点就目前可以使用的技术来说,对C/C++的单元测试是一件困难、繁琐和耗时的事情,主要体现在以下几个方面: ?可测性差高耦合造成的可测性差是单元测试的一个难题。程序是客观事物的反映,客观事物本来就互相关联、互相纠缠,代码之间的大量耦

基于Ldra Tbrun的单元测试. 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息