资料介绍
软件简介
Infection 是一个基于 AST(抽象语法树)突变的PHP 突变 (Mutation ) 测试库。它用作 CLI 工具,可以从项目的根目录执行
突变测试是一种基于故障的测试技术,它提供了一种突变评分指标 (MSI)的测试标准。MSI 可用于衡量测试集在检测故障能力方面的有效性。Infection 提供如下测试功能:
- 运行测试套件,以查看是否所有测试都通过
- 使用一组预定义的变异器(变异运算符)来变异源代码
- 对于每个突变体(经过一次更改的修改代码),Infection 会进行新的测试(覆盖已更改代码)
- 分析测试是否失败
- 收集被杀死、逃脱的突变体、错误和超时的结果
假设你有一个带有 hasErrors() 方法的 Form 类,
// Form.php
public function hasErrors(): bool
{
return count($this->errors) > 0;
}
Infection 会产生以下突变体:
边界条件突变:
public function hasErrors(): bool
{
- return count($this->errors) > 0;
+ return count($this->errors) >= 0;
}
条件协商突变
public function hasErrors(): bool
{
- return count($this->errors) > 0;
+ return count($this->errors) < 0;
}
整数 0- 1,1 -0 突变
public function hasErrors(): bool
{
- return count($this->errors) > 0;
+ return count($this->errors) > 1;
}
突变评分指标(MSI)
Metrics:
Mutation Score Indicator (MSI): 47%
Mutation Code Coverage: 67%
Covered Code MSI: 70%
这个例子报告了一些测试分数:
突变评分指标 (MSI)
MSI 为 47%。这意味着所有生成的突变中有 47% 被检测到(即杀死、超时或致命错误)。MSI 是主要的突变测试指标。鉴于代码覆盖率为 67%,存在 20% 的差异,因此在此示例中代码覆盖率是一个糟糕的质量度量。
计算公式:
TotalDefeatedMutants = KilledCount + TimedOutCount + ErrorCount;
MSI = (TotalDefeatedMutants / TotalMutantsCount) * 100;
突变代码覆盖率
MCC 为 67%。正常来说,它应该跟正常代码的覆盖率在同一范围内。
计算公式:
TotalCoveredByTestsMutants = TotalMutantsCount - NotCoveredByTestsCount;
CoveredRate = (TotalCoveredByTestsMutants / TotalMutantsCount) * 100;
覆盖代码变异评分指标
被测试覆盖的代码的 MSI 为70%(忽略未测试的代码),这个数据展示了测试的实际效果。
计算公式:
TotalCoveredByTestsMutants = TotalMutantsCount - NotCoveredByTestsCount;
TotalDefeatedMutants = KilledCount + TimedOutCount + ErrorCount;
CoveredCodeMSI = (TotalDefeatedMutants / TotalCoveredByTestsMutants) * 100;
- 开源软件-Ocara PHP框架
- PHP教程:foreach使用引用注意的问题
- 人体行为识别API接口aip-php-sdk-4.15.4 3次下载
- PHP学习教程分享 7次下载
- 如何使用PHP-X快速开发一个PHP扩展 8次下载
- 学习PHP需要注意那几点 8次下载
- smarty如何调用PHP常量 3次下载
- 如何使用PHP-X快速开发一个PHP扩展 9次下载
- PHP基础知识的详细资料总结 7次下载
- PHP的CI框架分页使用程序资料免费下载 5次下载
- PHP4的session使用资料说明 11次下载
- PHP多个版本的比较资料说明 0次下载
- Python单元测试框架是什么?及如何使用详细代码说明 2次下载
- 基于小波变换的信号突变检测
- PHP/MySQL教程 0次下载
- Python自动化测试框架及其应用 354次阅读
- phpy:PHP与Python互调用库 827次阅读
- API测试框架Grillon概述 1895次阅读
- 一款扩展性高的渗透测试框架渗透测试框架 497次阅读
- OpenHarmony自动化测试框架开发指南 1108次阅读
- 如何在Ubuntu 20.04安装PHP 8.1并将其与Nginx集成 3148次阅读
- DPU性能评测系统框架与测试流程 2255次阅读
- 聊聊PHP的web应用程序开发框架存在的漏洞有哪些 1561次阅读
- Hypium的单元测试框架和UI测试框架 1920次阅读
- 自动化测试框架unittes详解 2730次阅读
- php是什么语言编写的 4855次阅读
- 为什么PHP的开发效率比java高但是java比PHP流行 1w次阅读
- Python自动化测试框架有哪些? 4575次阅读
- php开发中遇到的难点有哪些_十大php开发常见问题盘点 1.8w次阅读
- php开发环境的搭建和使用 3330次阅读
下载排行
本周
- 1Keysight B1500A 半导体器件分析仪用户手册、说明书 (中文)
- 19.00 MB | 4次下载 | 免费
- 2使用TL431设计电源
- 0.67 MB | 2次下载 | 免费
- 3BT134双向可控硅手册
- 1.74 MB | 2次下载 | 1 积分
- 4一种新型高效率的服务器电源系统
- 0.85 MB | 1次下载 | 1 积分
- 5LabVIEW环形控件
- 0.01 MB | 1次下载 | 1 积分
- 6PR735,使用UCC28060的600W交错式PFC转换器
- 540.03KB | 1次下载 | 免费
- 751单片机核心板原理图
- 0.12 MB | 1次下载 | 5 积分
- 8BP2879DB支持调光调灭的非隔离低 PF LED 驱动器
- 1.44 MB | 1次下载 | 免费
本月
- 1开关电源设计原理手册
- 1.83 MB | 54次下载 | 免费
- 2FS5080E 5V升压充电两串锂电池充电管理IC中文手册
- 8.45 MB | 23次下载 | 免费
- 3DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 4UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 12次下载 | 免费
- 5ST7789V2单芯片控制器/驱动器英文手册
- 3.07 MB | 11次下载 | 1 积分
- 6TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 7STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 8基于MSP430FR6043的超声波气体流量计快速入门指南
- 2.26MB | 7次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
评论
查看更多