技术开发 频道

从单元测试框架选用看开发语言主流

【ITPUB调研分析报告】

编者按:

    第3届中国IT技术趋势大调查活动于2008年9月15日启动,历经1个月时间。在线调查期间,受到来自ITPUB、IXPUB和ChinaUnix.net(以下简称CU)以及其它合作网站网友的极大关注和积极参与。目前调查已经完满结束,所有数据都在后台整理和统计之中。本次网上调查共回收调查问卷25,946份,其中合格问卷为23,804份。由于今年新加入IT168的CU论坛网友的大力支持,今年回收问卷数量较去年增加近64%,合格问卷的填写数量较去年增加61.1%。从整体上看,今年的调查无论从数量上还是质量上都较去年有比较大的提高。本次调查的内容涉及:中国IT人才发展环境、企业信息化、信息安全、服务器、存储、网络管理、.NET、Java、软件测试、项目管理和数据库应用等11方面的研究成果,这些将最终形成《2008-2009年IT技术应用趋势调研报告》,并将整合到《2008-2009中国IT应用技术蓝皮书》中,于2009年1月在第3届中国IT技术精英大会上对外发布。  

    在本次调查问卷的软件测试技术应用部分,针对企业常用的保证代码质量方法和常用单元测试工具的使用情况展开调查。数据显示:2008年度,软件企业在实施测试的方法和手段方面趋于多元化,即综合使用单元测试、代码走查、同行评审等方式来保证代码质量,而不仅仅依赖后期的系统测试。Junit仍是采用单元测试框架的首选。

单元测试力保代码质量

    在关于企业都采用哪些方法来保证代码质量的提问中,68.8%的企业选择了采用单元测试这一动态的代码检查方式。在静态的代码检查方式中采用最多的是制定编码规范,占到42%。其次,使用代码走查、同行评审、提高代码覆盖率等方法也都分别有38.4%、30.4%和29.7%的企业采用。

图1 企业采用保证代码质量的方法分布

数据来源: IT168&ITPUB&IXPUB 2008, 11

    从以上数据,我们首先看到的是企业对代码质量及软件产品质量的日益重视,并且在保证质量这个问题上不再只是流于口头重视,而开始通过采用各种不同的方法和手段实现质量保证。

    参考2006-2007年度的数据,当年企业选择单元测试的比例是54.0%,提高代码覆盖率和代码走查分别是21.9%和19.1%,其他占5.0%。数据显示,单元测试是当年企业用来保证代码质量的主要方法,代码走查和提高代码覆盖率的比例不高,其他如编码规范则包括在其他的5%中。通过单元测试,企业更多地从功能层面保证了代码质量,而对代码走查和编码规范等方法的忽略,则带来编码格式、代码可读性、代码传承性等方面问题。

    比较两组数据,单元测试比例从54.0%到68.8%,上升幅度并不大;代码走查和提高代码覆盖率则分别从19.1%上升到38.4%,以及从21.9%上升到29.7%。我们可以看到,今天,企业保证代码质量的方法已从集中采用单元测试转向多元化的测试方式和手段,包括编码规范、代码走查、同行评审等,来综合保证软件代码质量,并且更加趋向于在项目前期就控制软件问题的出现。

    同时,单元测试仍然是企业采用最多的方式。单元测试也确实是一个值得投入的测试环节,因为它把很多质量问题控制在初始阶段,做好单元测试对于产品质量的提高,以及减缓后续的测试压力都有非常重要的意义。

    由于目前代码检查工具日趋成熟,代码检查工具可以自动检查代码满足编码规范的程度,可以有效降低人工代码走查和规范性检查的成本,可以预见,将会有越来越多的企业采用自动的规范检查、自动的代码走查方式来保证代码质量。

从单元测试框架看开发语言主流

    在关于企业使用单元测试工具或框架分布的反馈数据中,从未使用单元测试工具与框架的比例是36.2%(如图2),这与上图显示68.8%的企业采用单元测试方法的结果基本吻合,互相印证。在使用单元测试工具与框架的人群中(如图3),使用Junit的占到37.5%,使用Cunit的占到23.9%,使用CppUnit的占22.7%,使用SQLUnit对数据库展开单元测试的有8.0%。

图2 企业使用单元测试工具或框架分布(包含从未使用人数)

数据来源: IT168&ITPUB&IXPUB 2008, 11

图3 企业使用单元测试工具或框架分布(不包含从未使用人数)

数据来源: IT168&ITPUB&IXPUB 2008, 11

    可以看到,2008年度Junit仍然是单元测试框架的首选。虽然受到JTiger、TestNG等“新起之秀”的追赶,但是JUnit在相关文档资料的支持,以及与IDE整合等方面的优势,让其更胜一筹。

    同时,由于单元测试框架和工具的采用与被测试对象使用的开发语言有直接的关系,因此,通过本次调查数据也可以从一个侧面看出目前企业都采用的哪些开发语言。可以看到Java、C、C++仍是开发语言的主流。其中,Java语言的使用比例明显较高,C及C++的使用比例则非常接近。

  SQL Unit的使用比例则让我们看到,企业开始同样重视数据库功能和性能的测试。通过对系统后台数据库服务器中的存储过程、函数等进行单元测试,保证由其实现的业务逻辑和计算逻辑的质量,也是产品质量保证中非常重要的一部分。
  
  此外,从整体调查数据还可看到,在综合保证软件质量方面,很多软件企业仍未领悟持续集成、每日构建、持续自动化测试这些“非常好的实践”的重要意义。这是今后软件企业需要认识和重视的地方。

0
相关文章