关于单元测试

发表于:2010-7-09 11:29

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

 作者:Zhiming Jiang    来源:51Testing软件测试网采编

  偶然想起@jeffz_cn在twitter上问:“私有方法真的不应该单元测试吗?为什么?我觉得有的组件只是逻辑复杂一些,因此会提取私有方法,并且测试这些私有方法的逻辑。如果把这些内容统统从外部“注入”,这样私有的逻辑就变公开了……但是这样难道没有过渡设计的味道吗?”。

  然后就想起来我在项目中推动单元测试的经过。觉得还是应该总结一下比较好。

  先说现状(下面的数据我现在无法核实,但是,应该和实际值误差不大)

  我目前负责的项目,有代码200K+,控件产品,尤其是Grid控件产品的代码复杂度远比应用程序的产品复杂度高。因为功能级的耦合度就很高。因此,我认为我的产品的复杂度应该相当于普通应用程序500K+的水平。

  目前单元测试有1300+。这些单元测试主要是自5.1和6.0阶段引入的。对遗留代码的单元测试很少。这两个阶段添加和修改的代码应该在130K+。(呵呵,看到这里你一定觉得数据有问题。呵呵,确实看起来有问题。但是,细节这里就不能多说了。)

  目前的单元测试代码覆盖率应该在20%~25%之间。

  目前单元测试集成在每日构建中。至今没有发现单元测试失败的情况。(这一点很费解,目前归结为狗屎运)

  再说经验

  1.单元测试应该在物理设计阶段进行规划,而不是完成代码后补单元测试。

  2.Mock类库一般情况下是鸡肋

  3.对已有代码编写单元测试的难度非常高

  4.当单元测试很多的时候,组织和命名会比较有挑战。

  5.目前很少遇到单元测试影响重构的情况。

  6.单元测试对重构的帮助不如预期

  7.目前的现状下,很多平台的限制,使能够单元测试的部分很少。

  再说想法

  1.单元测试可以作为开发Leader掌控设计的一种工具

  2.单元测试可以帮助开发人员设计出更好的结构

  3.单元测试不需要对private成员进行。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号