主路径覆盖(Prime Path Coverage)

一般来说,语句覆盖率和分支覆盖率、MCDC覆盖率以及循环覆盖率并不关心你是如何到达某个地方的,只要你以满足条件(Condition)的方式执行代码即可。而路径覆盖率关注的是你如何到达某个地方:

例如:

复制代码
void foo (int x, bool y )
{
   for i in range (x)
      something()
   
   if  y: 
        somethingElse()
}

case1:x=0, y为真,执行路径为:

somethingElse(); // something执行0次,somethingElse执行1次

case2: x=1, y 为真,执行路径为:

something();

somethingElse(); // something执行1次,somethingElse执行1次

case3:x=2, y为真,执行路径为:

something();

something();

somethingElse(); // something执行2次,somethingElse执行1次

对于y为假的情况,x=0, 咱跳过这些步骤,这也是一个路径;

.....

实际上,随着x无限扩大, 这段代码包含了2^n的无穷多条路径,100%路径覆盖率是我们测试想要达到的理想状态,但实际上无法真正实现。怎么办?使用主路径覆盖(PPC)方法来确保复杂逻辑和循环结构得到充分测试:

  • 简单路径 (Simple Path):一条路径中除了起点和终点可以相同外,其他节点均不重复。简单路径内部没有环。
  • 主路径 (Prime Path):是一条简单路径,且不能被其他更长的简单路径包含(即不作为其他简单路径的子路径)。
  • PPC 的定义:测试用例集合需覆盖程序图中所有的主路径

优势: 主路径覆盖能够发现由于循环(Loops)不当或逻辑跳转导致的隐蔽 Bug。它比普通的路径覆盖更具操作性,因为它解决了无限循环导致的路径爆炸问题(通过限制为"简单路径")。

相关推荐
Mack.Jason2 天前
软件测试中的计划,方案和统筹
功能测试·测试覆盖率
开开心心就好1 个月前
一键隐藏桌面图标任务栏的实用工具
人工智能·pdf·音视频·语音识别·媒体·测试覆盖率·威胁分析
博晶网络1 个月前
小体积MR100A工业级4G插卡路由器模块全球通版评测
物联网·智能路由器·测试覆盖率
测试渣3 个月前
测试左移实战:如何在需求阶段拦截80%缺陷?
selenium·pytest·测试覆盖率
薯条不要番茄酱3 个月前
【测试实战篇】“发好论坛”接口自动化测试
python·功能测试·测试工具·单元测试·测试用例·pytest·测试覆盖率
Feng.Lee4 个月前
测试工作重复性多无法成长该如何破局
自动化·可用性测试·测试覆盖率
007张三丰4 个月前
软件测试/测试开发入门(开篇)
软件测试·功能测试·测试覆盖率
2.5条悟T^T4 个月前
ActDraw测试报告
功能测试·测试覆盖率
zhengfei6114 个月前
AI渗透工具—Shannon完全自主的AI渗透测试工具
人工智能·深度学习·web安全·知识图谱·测试覆盖率·安全性测试·威胁分析