`

对代码覆盖率价值的初步认识

阅读更多
关于代码覆盖率,之前6年的工作经历中,只是依稀听闻过。之前的组织里,从未关注过这个指标,只是有一段时间用NUnit做了单元测试,主要是测试一些关键类关键方法是否正常,对代码覆盖率的印象就真的一直是停留在听闻的程度。汗一个!

前些时日,关于自动测试的讨论中有人提及到代码覆盖率,激发了我的好奇,到底什么是代码覆盖率?最重要的是于测试工作而言有怎样的价值呢?今天花了一点时间查了一下,有了初步的认识。大致归纳如下:

一。基本概念

   代码覆盖率是单元测试活动任务之一;

   覆盖率分语句覆盖率(即通常所说的行覆盖率)和分支覆盖率。

二。价值

   代码覆盖率的分析能在一定程度上评判代码质量,一般覆盖率高的代码出错的几率会相对低一些。但是高覆盖率只是表示执行了很多的代码,并不意味着这些代码被很好地执行了。所以,似乎覆盖率测试结果出来并不能帮我准确的评价代码质量。那么我们为什么要做覆盖率测试呢?如何让它给我们带来价值呢?

   1. 尽早评估代码质量。

比如在开发的过程中,定时的去看整个项目的代码覆盖率,监控覆盖报告可以帮助开发团队迅速找出不断增长的但是没有相应测试的代码。例如,在一周开始时运行覆盖报告,显示项目中一个关键的软件包的覆盖率是 70%。如果几天后,覆盖率下降到了 60%,那么您可以推断:软件包的代码行增加了,但是没有为新代码编写相应的测试(或者是新增加的测试不能有效地覆盖新代码)。能够监控事情的发展,无疑是件好事。定期地查阅报告使得设定目标(例如获得覆盖率、维护代码行的测试案例的比例等)并监控事情的发展变得更为容易。如果您发现测试没有如期编写,您可以提前采取一些行动,例如对开发人员进行培训、指导或帮助。

   2. 为功能测试关注点提供情报

假设覆盖报告在指出没有经过足够测试的代码部分方面非常有效,那么质量保证人员可以使用这些数据来评定与功能测试有关的关注区域,可以更有针对性地加强这些区域的测试,因为没有被测试代码覆盖到的区域,出错的几率应该相对更高。

   3. 估计修改已有代码所需的时间

  对一个开发团队而言,针对代码编写测试案例自然可以增加集体的信心。与没有相应测试案例的代码相比,经过测试的代码更容易重构、维护和增强。测试案例因为暗示了代码在测试工作中是如何工作的,所以还可以充当内行的文档。在另一方面,没有经过相应测试的代码更难于理解和安全地修改。因此,知道代码有没有被测试,并看看实际的测试覆盖数值,可以让开发人员和管理人员更准确地预知修改已有代码所需的时间。

   -----

   当然,这样的理解还是比较浅层的,我想实际应用中除了以上三点之外,还有一个很重要的工作就是提高测试代码的质量来更好的体现代码覆盖率的价值。


原文出处:http://www.51testing.com/?uid-101957-action-viewspace-itemid-70695
分享到:
评论

相关推荐

    测试代码覆盖率

    测试代码覆盖率是软件开发过程中的一个重要环节,它用于衡量测试用例执行时对源代码的覆盖程度。在标题中提到的“测试代码覆盖率”是指通过自动化测试来确定多少比例的代码被执行过,这对于确保软件质量、查找未被...

    代码覆盖率驱动的测试

    代码覆盖率驱动的测试是一种软件测试方法,其核心目标是通过测量代码执行过程中的覆盖率来指导测试活动,确保测试用例尽可能多地覆盖代码中的各种执行路径。代码覆盖率反映了在测试过程中执行到的代码行数与总代码...

    单元测试的代码覆盖率至少80%

    单元测试的代码覆盖率至少80%!一大早,一个年轻的程序员问大师:“我准备写一些单元测试用例。代码覆盖率应该达到多少为好?”大师回答道:“不要考虑代码覆盖率,只要写出一些好的测试用例即可。”  一大早,一个...

    使用工具查看RTL代码覆盖率.docx

    "使用工具查看RTL代码覆盖率" 在数字芯片开发中,Verilog是一种常用的 Hardware Description Language(HDL),用于描述数字电路的行为。RTL(Register-Transfer Level)代码是Verilog的一个重要组成部分,用于描述...

    lcov测试代码覆盖率例程

    lcov是一种广泛使用的工具,主要用于收集和生成C和C++项目的代码覆盖率报告。它与genhtml工具一起工作,提供了一种直观的方式来理解程序中的哪些部分被执行了,以及哪些部分未被执行,这对于软件测试和质量保证至关...

    在实时服务器上生成代码覆盖率报告

    "在实时服务器上生成代码覆盖率报告"这一主题聚焦于一个实用的技术实践,即在服务器环境中实时监控和分析代码执行情况,从而获取代码覆盖率数据。这种做法有助于开发者了解测试覆盖的程度,发现未被测试到的代码区域...

    Android Native C++代码覆盖率统计 Demo(基于NDK 21)

    本Demo主要介绍如何在Android环境中使用NDK 21来实现对C++代码的覆盖率统计。下面我们将深入探讨这个主题。 首先,代码覆盖率是衡量软件测试完整性的一个重要指标,它反映了测试用例执行时覆盖了多少源代码。对于...

    4-前端质量利器-马可代码覆盖率平台.pdf

    【马可代码覆盖率平台】是专门针对前端质量监控和优化的一款工具,旨在解决在互联网技术开发过程中遇到的挑战,如代码冗余、测试覆盖率不足、自动化测试成本高等问题。该平台在2021年vivo开发者大会上被提及,特别...

    Java单元测试之代码覆盖率-JaCoCo

    6. **JaCoCo插件**:在Maven或Gradle中,可以使用JaCoCo插件来配置覆盖率阈值,当覆盖率不达标时,构建会失败,以此强制代码覆盖率标准。 JaCoCoTest可能是一个包含示例代码和配置的压缩包,用于演示如何使用JaCoCo...

    Emma进行代码覆盖率检查(命令行方式)

    Emma 进行代码覆盖率检查(命令行方式) Emma 是一款 Java 代码覆盖率检查工具,可以帮助开发者了解代码的覆盖率情况,从而提高代码的质量。在 Offline 模式下使用 Emma 进行代码覆盖率检查需要经过三个步骤:插桩...

    java代码覆盖率测试工具Clover3.0.365+Junit4.1

    4. **高效性能**:尽管代码覆盖率测试会增加运行时负担,但Clover通过优化设计,尽可能减少对性能的影响。 5. **报告生成**:Clover可以生成详尽的HTML报告,展示各个层次的覆盖率,便于团队成员共享和分析。 结合...

    cobertura代码覆盖率工具

    代码覆盖率越高,表示测试用例对代码的覆盖率越好。 Cobertura 工具包 Cobertura 工具包提供了一系列工具,可以帮助开发者生成代码覆盖率报告。该工具包包括以下几个文件: * `cobertura-instrument.sh`:用于...

    eclemma单元测试代码覆盖率工具

    EclEmma是一款强大的Java单元测试代码覆盖率工具,它为开发者提供了直观的方式来衡量和评估他们的单元测试的质量。在软件开发过程中,单元测试是确保代码正确性和可靠性的关键步骤,而EclEmma则帮助开发者确保测试...

    C++代码覆盖率工具

    在软件开发过程中,尤其是进行单元测试或集成测试时,代码覆盖率是一个重要的度量标准,它衡量了源代码被执行的程度。C++代码覆盖率工具是开发者用来评估测试质量的利器,能够帮助找出未被测试覆盖的代码区域,从而...

    jacoco 代码覆盖率的报告,样式。

    jacoco 代码覆盖率的报告,样式,用来演示 代码覆盖率的讲解。

    一种Java代码覆盖率工具的应用研究.pdf

    在软件开发过程中,代码覆盖率分析是一种衡量测试用例充分性的技术,它通过量化测试用例执行过程中覆盖代码的程度来帮助开发团队了解测试过程的完整性。现代信息技术的快速发展导致软件应用普及到人类生活的方方面面...

    为任何网页生成的代码覆盖率

    "代码覆盖率"是衡量测试充分性的一个关键指标,它指的是被自动化测试执行过的源代码的比例。本话题将深入探讨如何为任何网页生成代码覆盖率,并提供相关的技术背景和实践方法。 1. 代码覆盖率的概念: 代码覆盖率是...

Global site tag (gtag.js) - Google Analytics