PHP代码覆盖工具 - PHPCodeCoverage 部署教程 windows篇

1. 简介
1.1 代码覆盖度

测试过程中一直有一个痛点,就是如果去统计测试工作的覆盖度。我们知道有用例覆盖度、需求覆盖度和代码覆盖度。其中,代码覆盖度(概念可参考这篇博文)的概念一般出现在单元测试或者白盒测试。那么怎么把代码覆盖度运用在黑盒领域中的系统测试上呢?

如果有一种工具,可以监听代码被执行的路径覆盖,是否就可以辅助我们去检查测试过程中,哪些代码条件逻辑是一次都没有被执行过的。

 

1.2 PHPCodeCoverage

就php语言而言,答案就是我最近了解到的 PHPCodeCoverage。
Github地址: https://github.com/cj58/PHPCodeCoverage

举个例子:

def func (status):
    if status == 1:
        statement1
    elif status == 2:
        statement2
    elif status == -1:
        statement3
    else:
        statement4

字段定义:1 有效 2无效 -1 黑名单

test case
C1 有效数据登录 预期: 可以登录
C2 无效数据登录
C3 异常传参

程序中这个函数有4条路径,测试人员用上面的功能测试用例测完了之后,就有可能遗漏黑名单这个功能点。如果有部署代码覆盖工具,那么我们查看监听结果时,可以轻松发现status==-1这个路径没走到。
在这里插入图片描述

PHP代码覆盖工具 - PHPCodeCoverage 部署教程 windows篇_第1张图片

2. 部署

2.1 安装xdebug

  • 下载xdebug

windows上安装xdebug需要下载的是dll组件,下载时注意php版本。
下载地址: http://www.xdebug.org/download.php

  • 部署tomcat
  • 配置php.ini文件

[Xdebug]
zend_extension_ts="/zend_ext/php_xdebug-2.6.0-7.1-vc14-x86_64.dll"
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir="/tmp/xdebug"
xdebug.profiler_enable=on
xdebug.profiler_output_dir="/tmp/xdebug"


2.2 安装PHPCodeCoverage

  • 下载PHPCodeCoverage

下载地址: https://github.com/cj58/PHPCodeCoverage

  • 解压后我直接放到apache的站点目录

因为后续还需要访问页面去查看代码覆盖

  • 编辑config.php文件

修改输出结果的目录,这里设置的是当前目录下的data文件夹

PHP代码覆盖工具 - PHPCodeCoverage 部署教程 windows篇_第2张图片

 

3使用方法

3.1 引入pcc

在 自己的php程序头部,加入这段内容。
其中include_once是上一步中PHPCOdeCoverage主程序放置的位置。而setAllMode()这个函数的作用是合并所有监听结果,去掉这句话,就是每次请求都只显示当前执行时的路径了。

include_once("../PHPCodeCoverage/Pcc.php");
$p = new Pcc('testpage');
$p->setAllMode();
$p->run();

3.2 参考demo

把这段代码copy到本地,新建为index.php。

setAllMode();
$p->run();

$status = $_GET['status'];

if ($status == 1){
	echo "有效帐号"; 
}elseif($status == 2){
	echo "无效帐号";
}elseif($status == -1){
	echo "黑名单";
}else{
	echo "异常";
}

?>

3.3 查看结果

  • 分别请求了这3次接口。

http://127.0.0.1/testpage/index.php?status=1

http://127.0.0.1/testpage/index.php?status=2

http://127.0.0.1/testpage/index.php?status=3

  • 访问PHPCodeCoverage目录下的index.php可以看到监听结果。

http://127.0.0.1/PHPCodeCoverage/index.php

3.4 最终结果如图
可以看到,之前的功能测试中,我们遗漏了status=-1的情况。

PHP代码覆盖工具 - PHPCodeCoverage 部署教程 windows篇_第3张图片

你可能感兴趣的:(php)