浅谈软件开发各阶段的自动化测试技术

发表于:2011-7-28 10:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:茹炳晟    来源:51Testing软件测试网原创

  摘要:本文根据软件开发的生命周期,依次探讨了各个软件开发阶段的自动化测试技术以及各阶段典型的测试框架与工具。使读者对软件开发各个阶段的“自动化测试”建立起全局的概念,并了解各阶段的主流测试框架与工具。

  关键字:自动化测试;测试框架;单元测试;集成测试;确认测试

  软件测试领域很多人都在谈论软件自动化测试,视乎自动化测试在软件测试领域是一个很时髦的词。但是绝大部分人对于自动化测试的认识还只是停留在GUI功能测试自动化的层面。其实自动化测试本身可以根据软件生命周期的不同阶段而分为多个层面,在每个层面,“自动化”一词将具有完全不同的内涵,下面将依次根据软件开发生命周期的各个阶段,与大家分享一下各个层面的“自动化”测试的内涵以及在各层面常用的自动化测试技术与测试框架。(注:以下内容部分节选自本人作为51testing专家的答疑活动,可以参考http://bbs.51testing.com/thread-313165-1-1.html)。

  一、单元测试阶段的自动化测试技术

  首先,在单元测试阶段,有所谓的单元测试自动化,可能很多人认为单元测试先天就是自动化的,因为单元测试会根据软件详细设计采用边界值等价类方法设计测试用例,然后以测试代码实现后再统一以自动化的方式执行。这个观点非常正确,但是这仅仅是一部分,并没有完整地描述单元测试阶段“自动化”的内涵。从比较广义的层面上讲,单元测试阶段的“自动化”内涵不是仅仅指测试用例执行的自动化,还应该包含以下五个方面的内容:

  (1)单元测试用例框架代码生成的自动化。比如以下图片所示的部分框架代码就应该由工具自动生成,而不是由单元测试的开发者手工去写。单元测试开发者应该把更多的精力放在测试数据的选择与设计上,从而较大程度地提高单元测试用例的质量和用例的开发效率。

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/13/n-241113.html

  (5)测试覆盖率的自动统计与分析。单元测试用例执行结束后,工具应该可以自动统计各种测试覆盖率,包括代码行覆盖率、分支覆盖率、MC/DC覆盖率等,以此体现单元测试用例集合整体的充分性和完备性,并以此为依据增补适当的测试用例以提高测试覆盖率。

  接下来列举几个满足或部分满足以上特点的典型的单元测试框架或工具。以C/C++为例,比较主流的测试工具有C++Test和Visual Unit,以JAVA为例有JUnit和TestNG。其中C++Test是Parasoft针对C/C++的一款自动化单元测试工具,同时也能通过“抽桩”技术而较好地应用于软件代码级集成测试阶段。Visual Unit是KaileSoft推出的国产C/C++单元测试工具,创新提出了一些全新的概念,我个人觉得还是值得推荐的。JUnit就不多介绍了,它是一个开放源代码的Java测试框架,广泛应用于Java代码的单元测试,另外根据JUnit的设计思想也陆续出现了一系列的XUnit框架,其中比较著名的有NUnit(针对.NET的单元测试)、CPPUnit(针对C++的单元测试)、DUnit(针对Dephi的单元测试)、PHPUnit(针对PHP的单元测试)等。TestNG(Test Next Generation)是下一代的Java单元测试框架,它是基于J2SE5.0的注释(Annotations)特性的而构建的轻量级的单元测试框架,是对JNuit的完善与扩充,同时TestNG也是直接支持运行JNnit测试用例的。

  另外,在C/C++的嵌入式开发领域,如果单元测试用例必须运行目标系统上,那么这时单元测试自动化的内涵除了包括以上讨论的含义外,还应该包括测试用例的自动交叉编译连接以及目标系统的自动化下载与执行,这里推荐一个行业里用的比较多的工具IBM Rational Test Real Time(RTRT)。RTRT使用了目标适配技术(Target Deployment Port),使得测试与编译器、连接器、调试器以及目标系统结构无关,实现了跨多开发环境、多目标系统结构的自动化测试。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号