php代码覆盖率统计实践
一、需求描述
由于我司的业务大部分都是php项目,在实际的测试任务中,有测试工程师反馈存在测试结束后无法对测试覆盖率保有自信,担心存在漏测行为;本项目将作为漏测的辅助判断存在,帮助测试工程师进行是否存在漏测的辅助判断。
本项目需要在测试手工任务完成后,提供本次测试任务对应的代码的覆盖率,具体包括本次的测试任务对应了哪些php文件,以及这些php文件里,有哪些代码是尚未被覆盖的,以此来辅助判断本次测试任务是否存在漏测。
本项目由本人发起,与本组前端,php后端共同完成。
二、任务拆解
项目将被拆解为以下部分:
1.覆盖率统计系统
本系统主要借由xdebug的统计功能实现统计目的,但直接用xdebug的话会有一些问题,诸如:
- 测试结果不直观,xdebug的结果是代码文件、行数和对应覆盖与否,无法直观的看到测试结果;
- 不能做到统计权限隔离,导致当统计环境为公共环境时,其他人的行为会影响覆盖率的判断;
- 不能将项目和用户建立映射关系,导致用户的测试行为很可能会涉及到非本项目的覆盖率统计。
针对以上痛点,我们对xdebug加以封装改造,加入用户系统,图表系统,丰富了统计功能,从而使得覆盖率统计可以为测试人员提供参考价值。
本部分主要改造自开源项目:(https://github.com/cj58/PHPCodeCoverage)
2.项目仓库系统
仓库系统主要对项目和实现项目的php文件建立映射关系,统计覆盖率只会在项目内对应的php文件里进行,从而实现了项目的覆盖率隔离,避免非本项目的文件对本项目的覆盖率产生污染。
3.报表系统
报表系统主要对覆盖率结果进行分析,生成覆盖率图表加以展示,统计分为总项目统计和项目下分文件统计。
三、成果展示
demo部分截图如下
项目列表:
迭代查看界面:
查看文件代码覆盖率:
总览界面:
4.效果验证
尚在验证
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java 基础 之 算数运算符
http://www.verejava.com/?id=16992579787012 /* 1. 算数运算 */ public class Operation { public static void main(String[] args) { //1. 算数运算 加+,减-,乘*,整除/,取模%,自减--,自增++ int a=1; int b=2; int c=3; int d=4; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(b/a); System.out.println(a/b); //取模就是整除后余下的数 System.out.println(c%b); System.out.println(d%b); System.out.println(4%-3); System.out.println(-4%-3); System.out.println(-4%3); System.out.println(d++); System.out....
- 下一篇
Java 基础 之 赋值运算符
http://www.verejava.com/?id=16992591185213 public class Operation2 { public static void main(String[] args) { //赋值运算符 int result=10; result=result+1; result++; result+=1; result/=2; result%=2; result*=2; System.out.println(result); short s=10; s = s+5; s+=5; System.out.println(s); } } http://www.verejava.com/?id=16992591185213
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,CentOS7官方镜像安装Oracle11G
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启