
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人在转型互联网行业的时候都会去学习软件测试的相关技术知识,而本文我们就通过案例分析来简单了解一下,软件测试代码覆盖率常见问题。
代码覆盖率是衡量项目源代码被测试的一种指标,部分的人认为这是一个非常有用的标准,越高的代码覆盖率可能就代表了更高更安全的质量保证;部分人对代码覆盖保持怀疑的态度,尽管承认覆盖率是测试质量的一个标准,但不一定相信已被覆盖的代码是经过良好的测试的;而也有一部分人认为代码覆盖率在项目中是没用甚至对项目是有害的,可能代码覆盖率较高,项目实际质量较差,给项目成员提供了一种错误的安全感。
尽管代码覆盖率分很多种(函数覆盖、语句覆盖、判断覆盖等),经过一段时间的实践,还是决定将重点放在语句覆盖,因为它相对简单、规则容易制定、结果方便可视化。本文将针对语句覆盖进行一些探索性的讨论。
代码覆盖率的度量
就接触过的大部分项目而言,大多采用了持续集成的形式,通过持续集成工具来进行自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
代码覆盖率的执行时机可分为两种:每日执行与每次构建执行,两种执行方式是独立且同时存在的。
对于每日执行的任务来说,可以配置一个定时任务,每次执行的范围是整个项目的所有源代码。通过工具执行生成的数据,可以建立dashboard展示每日/每周/每季度/每年/每种语言的代码覆盖率数据。同时也可以将dashboard实现项目与项目之间的比对,以评估比较各项目的质量情况。
对于每次构建执行的任务来说,可以将任务挂钩到codereview流程中去,在每次触发构建时,会执行codereview流程与代码覆盖率扫描,并将结果做可视化反馈给提交工程师与review的同学。
根据的经验,在提交之前执行并反馈代码覆盖率扫描是一个很重要的时机,因为此时是提交的开发工程师会对这项数据感兴趣的时机,其他时机研发会主动去提高覆盖率的可能性就会大大减少了。
各类语言覆盖率存在巨大差异的可能性与各语言之间的结构性、范式和编写难易程度有关,同时不同的测量工具也可能影响了代码覆盖率数据的准确性。但请注意,以上数据不足以成为通用的项目代码覆盖率的指标,这些数据也仅仅只为以后提升代码覆盖率提供了一定的数据参考。
通过部署持续构建+代码覆盖率扫描系统,我们持续收到了来自配合研发团队的正面反馈,其中得到好评多的就是在codereview流程中加入覆盖率统计的功能,这一功能有利地提高了codereview的关注点与效率,同时也间接地提升了代码被测覆盖率(review也算是代码覆盖率提升的方法)。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。