有效利用白盒工具提高代码质量(2)

发表于:2011-12-01来源:未知作者:领测软件测试网采编点击数: 标签:白盒测试
5、 线程分析、错误检测 在 Java 编程中,线程是一个非常好的技术,它可以让程序更加灵活 更加强大。但是,线程技术的误用 同样也会带来非常严重的问

  5、 线程分析、错误检测

  在Java编程中,线程是一个非常好的技术,它可以让程序更加灵活 更加强大。但是,线程技术的误用 同样也会带来非常严重的问题,而且线程问题是最难定位和修复的问题之一。在代码交付之前,程序员应充分分析和判断代码执行过程中是否存在线程死锁以及代码在什么位置使用了锁和同步机制等等,避免将线程问题拖延到系统测试阶段。与性能分析类似,线程的死锁很难通过手工的方式去判断,必须日借助动态的代码分析工具,了解线程间的调用次序、同步机制以及判断死锁。

  告别“刀耕火种”的手工时代

  随着软件应用环境的日趋复杂,对软件质量的要求越来越高。而随着敏捷式开发等新的开发方式的出现,开发的周期越来越短。显然,再依靠过去人工的方式逐行Review代码、统计测试覆盖率、查找bug等,实在是力不从心。幸运的是,越来越强大的白盒测试工具的出现,弥补了这一点人力的不足。

  自动化白盒工具的引入

  目前市场上存在着多种多样的白盒测试工具,有的是只为某项测试而设计的开源软件,如仅限于代码覆盖率的检查,也有功能强大、覆盖面广的商业套装软件,如Compuware的DevPartner系列、IBM的Rational系列工具等。笔者在这里简单介绍几款主流工具,供有兴趣的读者参考。

  1、Compuware DevPartner工具。

  虽然Compuware在国内的知名度还不是很高,但在北美市场,其白盒测试工具DevPartner却是声名远播、屡屡获奖,在最近的Visual Studio杂志的2008年工具评选中,其DevPartner Studio再次赢得了最受读者青睐奖 。

  DevPartner主要有面向.Net和Java两个版本,提供代码覆盖率统计、静态代码检查、内存分析和性能分析等多种分析手段,使用相对简单,可以与Visual Studio或Eclipse等开发工具IDE集成,但暂时还没有中文版本。

  2、IBM Rational工具集

  IBM的Rational系列也是一套为广大读者熟知的白盒工具集,如用于覆盖率检查的PureCoverage和内存检查的Purity。Rational系列工具对使用人员的专业技能要求较高,要想把这个工具用好,要求每个成员至少有两年的使用经验。

  3、C++ Test

  C++ TesT是ParASoft公司出品的一个针对C/C++源代码进行自动化单元测试的工具,支持白盒测试、黑盒测试以及回归功测试。C++ Test对于简单的静态代码分析和边界测试来说,是一款非常不错的工具,但由于自身性能问题,笔者认为不适合用于大型项目的开发。

  如何挑选白盒测试工具工欲善其事,必先利其器。挑选一款合适的白盒测试工具,能够有效的提高代码质量和节约开发人员的时间。下面笔者就结合自己所知,尝试解读挑选白盒测试工具的几个考虑因素。

  1.功能因素

  首先,应考虑工具支持的语言和平台。目前主流测试工具支持的开发语言包括.Net和Java,针对不同的语言,实现方式一般有较大差异。其次,选择适合的功能。并非功能越丰富越好,而是应该选择适用于自己应用场景和测试要求的工具。若对软件质量的要求较为严格,如军工、航天软件,则需要更多、更强的的白盒测试手段支持。若一般的自用或简单商用软件,则可以考虑某些功能简单又有较强针对性的工具,甚至是开源工具。再次,要考虑工具的集成能力。那些提供与开发环境向集成的白盒测试工具,能够避免程序员在开发和调试阶段在多个窗口之间频繁切换,节约宝贵的时间。

  2、价格因素

  任何一个软件的开发,都必须考虑成本的压力。对功能的要求越高,相应的工具软件肯定越昂贵,例如Rational就不是每个企业都负担得起的。

  3、易用性

  在选择白盒工具时,还要考虑到使用人员的技术素养以及工具的易用性。某些工具虽然功能强大,但易用性不高,需要较长时间摸索学习。一般,提供网上下载试用的工具会有比较好的易用性,如Compuware的DevPartner。

  如何有效利用白盒工具提高代码质量

  为了让读者对白盒工具的使用有一个直观、深入的认识,本文将分为四个专题,选择白盒测试的典型应用,阐述如何利用白盒测试工具提高代码质量。

  1.静态代码分析(JAVA)

  2.运行时内存分析(JAVA)

  3.性能优化及分析(JAVA)

  4.运行时内存分析、死锁检测以及测试覆盖率分析(JAVA)

原文转自:http://www.ltesting.net