使用测试覆盖率指标测量代码质量

上一篇 / 下一篇  2019-12-02 13:10:25 / 个人分类:软件测试

   代码质量和测试覆盖率指标是在软件测试期间起作用的两个重要指标。测试的这两个方面是相互关联的,但是没有直接的公式可以相互评估。让我们了解什么是测试覆盖率以及如何对它们进行一般性评估。
  测试覆盖率
  测试团队说的是特定项目的测试覆盖率百分比,但是他们是否以正确的方式评估了该测试覆盖率百分比分数?测试团队根据功能需求文档设计测试用例,但是这些测试用例实际上覆盖了代码行,也就是说,当测试团队执行这些测试用例时,系统确保给定程序的所有代码行都具有成功执行或在测试期间涵盖。答案可能是无法保证,但是功能方面的测试覆盖率是可靠的。因此,应借助以下公式根据代码行来评估测试覆盖率。
  假设一个测试中的项目有10,000行代码。假设X = 10,000。
  执行的测试用例仅覆盖7500行代码。假设Y = 7,500。
  实际测试覆盖率为(7,500 / 10,000)* 100 = 75%。通常,如果测试覆盖率超过80%,则测试团队会得出结论,他们有足够的测试覆盖率来确保代码质量。测试覆盖范围将与代码质量成正比,但测试团队仍应考虑许多其他方面。
  测试团队应在测试覆盖率的基础上考虑好项目的数量以及否定项目的数量。当我们用测试覆盖率来谈论代码质量时,这变得非常有趣。因此,如果测试团队说通过涉及所有代码行来拥有100%的测试覆盖率,则不能保证代码质量,但是代码质量将取决于以下两个因素。
  足够的测试覆盖率,即大于或等于80%。100%的测试覆盖率可能是理想的情况。
  功能测试的良好测试用例。
  如何为一个项目实现良好的测试用例?
  好吧,这没什么大不了的,对于有经验的测试人员来说,这应该非常简单。测试人员在编写测试用例时,应考虑应用程序流程的良好测试用例,异常测试用例,满意和不满意的测试方案。可以通过可追溯性矩阵来确保需求与测试覆盖率之间的关系。可追溯性矩阵将始终确保您具有满足特定需求的适当测试方案,并且在测试的正面和负面方面都有基础的测试用例来覆盖功能测试。如果在可追溯性矩阵中涵盖了100%的功能方面进行测试,那么可以说您在测试资料库中拥有良好的测试用例以覆盖功能测试。
  使用可追溯性矩阵满足需求可以达到最佳覆盖范围,但从实际意义上说需求是否完整?谁将负责构建我们良好的测试用例所依据的不完整需求,同时我们的目标是测试代码质量。因此,具体要求是开发良好测试用例的先决条件之一,因此,代码质量的评估将因此受到影响。
  如何根据测试覆盖率得出代码质量的结论?
  我们已经讨论过,如果我们在代码行和基于可追溯性矩阵的良好测试用例方面具有足够的测试覆盖率,需求,然后我们可以根据测试结果来确保项目的代码质量。在这里,我们仅讨论代码质量的一个方面,但实际上,还有更多影响代码质量的因素。有许多代码扫描器工具可帮助从技术角度评估代码质量。开发人员已编写了满足功能目的的代码,但实际上该功能可能以错误的方式编码,或者开发人员未遵循所需的编码标准。代码中可能存在代码块已死或控件根本无法访问的事件。代码块可能会陷入无限循环。该代码可能未正确优化,并给整体系统性能带来了损失。成功执行该块后,可能会发生内存泄漏或未正确关闭连接的情况。在软件模块的代码块中可能存在不适当的垃圾回收。这些是一些性能警告,它们直接或间接影响代码质量,因此不能忽略。因此,建议对软件项目进行非功能或性能测试,因为这些挑战只能通过诸如SONAR CUBE的代码扫描仪工具或进行适当的性能测试后才能公开。
  安全测试是影响代码质量的软件测试的另一个方面。我们不希望在应用程序在功能和性能方面都运行良好的情况下运行,但是未经授权的用户可以轻松突破系统并窃取与业务相关的关键信息。因此,应该对应用程序进行安全性测试,以确保在减轻安全漏洞方面开发应用程序代码的能力。
  结论
  足够的测试覆盖率指标可以在一定程度上帮助揭示代码质量。代码质量指标还取决于其他因素。这些因素是在可追溯性指标,性能测试,代码扫描和安全性测试的帮助下设计的良好测试用例。当所有这些测试方面都成功完成后,明智的结论是代码质量无与伦比,并且可以承担整个项目团队的工作。


TAG:

 

评分:0

我来说两句

Open Toolbar