php代码覆盖率统计实践

简介: 一、需求描述由于我司的业务大部分都是php项目,在实际的测试任务中,有测试工程师反馈存在测试结束后无法对测试覆盖率保有自信,担心存在漏测行为;本项目将作为漏测的辅助判断存在,帮助测试工程师进行是否存在漏测的辅助判断。

一、需求描述

由于我司的业务大部分都是php项目,在实际的测试任务中,有测试工程师反馈存在测试结束后无法对测试覆盖率保有自信,担心存在漏测行为;本项目将作为漏测的辅助判断存在,帮助测试工程师进行是否存在漏测的辅助判断。
本项目需要在测试手工任务完成后,提供本次测试任务对应的代码的覆盖率,具体包括本次的测试任务对应了哪些php文件,以及这些php文件里,有哪些代码是尚未被覆盖的,以此来辅助判断本次测试任务是否存在漏测。
本项目由本人发起,与本组前端,php后端共同完成。

二、任务拆解

项目将被拆解为以下部分:

1.覆盖率统计系统

本系统主要借由xdebug的统计功能实现统计目的,但直接用xdebug的话会有一些问题,诸如:

  1. 测试结果不直观,xdebug的结果是代码文件、行数和对应覆盖与否,无法直观的看到测试结果;
  2. 不能做到统计权限隔离,导致当统计环境为公共环境时,其他人的行为会影响覆盖率的判断;
  3. 不能将项目和用户建立映射关系,导致用户的测试行为很可能会涉及到非本项目的覆盖率统计。

针对以上痛点,我们对xdebug加以封装改造,加入用户系统,图表系统,丰富了统计功能,从而使得覆盖率统计可以为测试人员提供参考价值。
本部分主要改造自开源项目:(https://github.com/cj58/PHPCodeCoverage

2.项目仓库系统

仓库系统主要对项目和实现项目的php文件建立映射关系,统计覆盖率只会在项目内对应的php文件里进行,从而实现了项目的覆盖率隔离,避免非本项目的文件对本项目的覆盖率产生污染。

3.报表系统

报表系统主要对覆盖率结果进行分析,生成覆盖率图表加以展示,统计分为总项目统计和项目下分文件统计。

三、成果展示

demo部分截图如下

项目列表:
img_7fe979b0d5c315e8dcfa9f2240bb98d6.jpe
项目列表.jpg
迭代查看界面:
img_ef652bcc420197ea279e5fc888be08bc.png
迭代查看界面.png
查看文件代码覆盖率:
img_58bfefd16fa4b1efbb9bed763cc3c56c.png
代码查看界面.png
总览界面:
img_9338e7f435a87090d55a4d7f961d2b6f.png
总览界面.png

4.效果验证

尚在验证
目录
相关文章
|
9天前
|
PHP
PHP中的面向对象编程:基础与实践
在PHP的世界中,面向对象编程(OOP)是提升代码重用性、可维护性和扩展性的利器。本文通过浅显易懂的语言和实例引导读者理解OOP的核心概念,并展示如何在PHP项目中应用这些理念。我们将一起探索类与对象的定义、构造方法的使用、继承机制的魅力以及接口和抽象类的高级技巧。无论你是PHP新手还是希望深化理解的老手,这篇文章都将为你提供宝贵的知识和实战技能。
|
3天前
|
程序员 PHP
PHP中的异常处理:理解与实践
【9月更文挑战第15天】在编程世界中,错误和异常是避免不了的。它们就像路上的坑洼,让我们的代码之旅变得颠簸不堪。但是,如果我们能够学会使用PHP的异常处理机制,就能像驾驶一辆装有先进悬挂系统的车辆一样,平稳地驶过这些坑洼。本文将引导你理解PHP中异常的本质,并教你如何捕获和处理它们,以确保你的代码更加健壮和可靠。准备好,让我们一起探索这个主题,开启一段新的编程旅程吧!
33 17
|
1天前
|
PHP 开发者
PHP 7新特性深度解析与实践应用
【9月更文挑战第17天】本文将深入探讨PHP 7的新特性及其对开发者的实际影响,同时通过实例演示如何有效利用这些特性优化代码和提高性能。我们将从类型声明的增强开始,逐步深入到其他关键改进点,最后通过一个综合案例展示如何将这些新特性应用于日常开发中。
|
8天前
|
PHP 数据格式
PHP中的异常处理:深入理解与实践
【9月更文挑战第10天】在代码的世界里,异常处理如同生活中的急救箱—当事情不按计划进行时,它为我们提供了一种应对机制。本文将带你领略PHP异常处理的奥秘,从基础概念到深入实践,让你学会如何优雅地处理程序中的错误和异常情况。
|
1天前
|
设计模式 人工智能 算法
PHP中的设计模式:策略模式的深入解析与实践软件测试中的人工智能革命:提升效率与准确性的新篇章
在PHP开发中,理解并运用设计模式是提升代码质量和可维护性的重要途径。本文聚焦于策略模式(Strategy Pattern),一种行为型设计模式,它允许在运行时选择算法或业务规则。通过本文,我们将深入探讨策略模式的定义、结构、使用场景以及如何在PHP项目中有效地实现和利用策略模式。不同于性能优化等技术性摘要,本文着重于提供对策略模式全面而实用的理解,助力开发者编写出更加灵活和可扩展的应用程序。 本文深入探讨了人工智能在软件测试领域的应用,揭示了其如何显著提高测试过程的效率和准确性。通过实际案例分析,展示了AI技术在自动化测试、缺陷检测及结果分析中的关键作用,并讨论了实施AI测试策略时面临的挑
10 3
|
1天前
|
设计模式 PHP 开发者
PHP中的面向对象编程:核心概念与实践
本文旨在深入探讨PHP中面向对象编程的核心概念及其在实际开发中的应用。通过详细阐述类、对象、继承、多态等OOP基本原则,并结合实际案例,帮助读者理解如何在PHP项目中运用这些原则来提高代码的重用性、可维护性和扩展性。此外,文章还将探讨面向对象设计模式在PHP中的应用,以及如何避免常见的OOP陷阱。
|
4天前
|
PHP 开发者
PHP中的异常处理:从入门到实践
【8月更文挑战第46天】在编程的世界里,错误和异常是难以避免的。它们如同路上的石头,让我们的步伐变得蹒跚。但是,如果我们学会了如何优雅地处理这些“石头”,我们的代码之旅将变得更加顺畅。本文将引导你了解PHP中异常处理的基本概念,并通过实际示例展示如何捕获和处理异常,让你的代码更加健壮和可靠。
|
6天前
|
存储 PHP 开发者
深入探索PHP中的面向对象编程:从基础到实践
PHP作为一种广泛应用于Web开发的服务器端脚本语言,其强大的功能和灵活性在很大程度上得益于对面向对象编程(OOP)的良好支持。本文将引导读者从OOP的基础知识入手,逐步深入到PHP中的具体应用和最佳实践,旨在帮助开发者不仅理解OOP的理论,更能够在实际项目中灵活运用这些知识解决问题。
13 5
|
3天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提高代码的可维护性与扩展性
在本文中,我们将深入探讨PHP编程语言中设计模式的重要性,以及如何通过应用这些模式来提高代码的可维护性和扩展性。设计模式是一套被反复使用、经过分类编目的代码设计经验的总结。它们代表了最佳的实践,能帮助开发者编写出更加健壮、灵活和可复用的代码。本文将介绍几种常见的设计模式,并通过PHP代码示例展示其应用。
|
5天前
|
缓存 NoSQL PHP
使用PHP-redis实现键空间通知监听key失效事件的技术与代码示例
通过上述方法,你可以有效地在PHP中使用Redis来监听键空间通知,特别是针对键失效事件。这可以帮助你更好地管理缓存策略,及时响应键的变化。
22 3