首页 > 其他分享 >架构师-逻辑覆盖

架构师-逻辑覆盖

时间:2024-09-27 19:50:06浏览次数:3  
标签:语句 逻辑 每个 覆盖 路径 判定 架构师 执行

1. 语句覆盖(Statement Coverage)

定义:语句覆盖是指测试用例执行了程序中的每一条语句,确保每个语句至少被执行一次。

语句覆盖的目的是测试程序中的代码是否被执行,它只测试代码中的执行语句,这里的执行语句不包括头文件、注释、空行等。

语句覆盖在多分支的程序中,只能覆盖某一条路径,使得该路径中的每一个语句至少被执行一次,但不会考虑各种分支组合情况。

通俗例子:想象你在一个房子里,每个房间(语句)你都至少要进一次,这样可以确保你已经看过房子里的每个地方。

解释:语句覆盖检查的是代码的每个语句是否都被执行过。如果某个语句没有被执行,那么可能存在未发现的错误。

2. 分支覆盖(Branch Coverage)

定义:分支覆盖是指测试用例执行了程序中的每一个分支,即每个条件语句(如if-else)中的每一个可能的路径都被执行了。比如判定1(A>0 && B>0),需要使A>0有真假值,并且B>0也要有真假值,不需要考虑如何组合,只需满足基本条件即可

通俗例子:在房子里有一些门(条件语句),每扇门可能通向不同的房间。你不仅要进每个房间,还要确保每扇门的每个方向(开门或关门)你都尝试过。

解释:分支覆盖检查的是代码中的每个分支是否都被执行过,这样可以确保所有可能的路径都被测试到了。

3. 判定覆盖(Condition Coverage)

定义:判定覆盖(Decision Coverage)又称为分支覆盖,其原则是设计足够多的测试用例,在测试过程中保证每个判定至少有一次为真值,有一次为假值。

判定覆盖的作用是使真假分支均被执行,虽然判定覆盖比语句覆盖测试能力强,但仍然具有和语句覆盖一样的单一性。

通俗例子:在一个房间里有灯的开关(布尔表达式),你要确保灯的开和关两种状态都测试过。

解释:判定覆盖关注的是每个条件中的每个布尔表达式的所有可能值都被测试过,确保逻辑条件在不同情况下都能正确执行。

4. 路径覆盖(Path Coverage)

定义:路径覆盖是指测试用例执行了程序中的所有可能的路径,从入口到出口的每一种可能的路径都被执行过。

通俗例子:想象你在迷宫中,每条可能的路径你都要走一遍,确保你探索了所有的路线。

解释:路径覆盖是最严格的一种覆盖标准,它要求测试用例执行程序中的所有可能路径。这种方法可以发现更复杂的逻辑错误,但在实际应用中,由于路径数量可能非常多,往往很难完全实现。

总结
  • 语句覆盖:每个语句至少执行一次(进每个房间)。
  • 分支覆盖:每个条件的每个分支至少执行一次(开关每扇门)。
  • 判定覆盖:每个条件的每个布尔值(True/False)至少执行一次(测试灯的开关)。
  • 路径覆盖:每条可能的路径至少执行一次(探索迷宫中的每条路径)。

在外面很多的教程都认为这六种逻辑覆盖从弱到强的排列顺序是:

语句覆盖->判定覆盖->条件覆盖->判定-条件覆盖->条件组合覆盖->路径覆盖

 

标签:语句,逻辑,每个,覆盖,路径,判定,架构师,执行
From: https://blog.csdn.net/sadfasdfsafadsa/article/details/142449487

相关文章

  • 证券公司结算业务系统信创国产化建设难点及信创总体逻辑架构设计思路
    数字化和国产化是金融IT行业目前的两大趋势。在金融行业,除了数字化以外,国产化也是核心趋势。信创建设从政府办公电脑开始,目的是借助政府的力量培养自主可控生态,而真正的繁荣还要靠行业大客户的支持,其中金融行业是最关键的战略要地。然而,从实际应用案例来看,很多证券公司已在全面推广......
  • 小说推文变现逻辑
    小说推文顾名思义是推广小说,博主将小说精彩部分复制下来,结合素材剪辑成视频发布到短视频平台上,只要有用户通过推文视频点击下载注册小说,或者是搜索小说,进入小说充值会员,那么博主也能得到收益。也就是说目前有这两种模式,就是拉新跟会员订单。在发布推文之后是需要回填链接,用......
  • 伯俊开发回忆录---VIP充值退款增加短信验证逻辑
    一、前提总部财务需要增加对VIP卡充值退款的管控,防止资金被异常盗用,1、针对VIP充值退款获取验证码,表单增加验证码字段 2、系统随机生成6位数验证码并生成提醒信息通过公司发送平台进行发送   三、校验规则未输入验证码不允许提交验证码校验不通过提示重新输入 ......
  • 虚函数,虚函数表,虚表指针,覆盖
    1、虚函数在成员函数前面加virtual后,该函数就称为虚函数,此时该类就会像虚继承一样多了一个虚表指针(虚函数表指针、虚指针)2、虚函数表虚表指针指向的是属于该类的一张表格的首地址,该表格中记录了该类的所有虚函数的首地址    如果类中没有其他成员变量    ......
  • centos磁盘逻辑卷LVM创建
    centos磁盘逻辑卷LVM创建一、磁盘逻辑卷LVM说明二、centos磁盘使用情况三、LVM安装指南1.LVM工具安装1.yumlistlvm2.yumsearchlvm3.yumsearchpvcreate4.yumlistlvm25.yuminstalllvm22.创建物理卷2.1磁盘情况查看2.2创建物理卷(PV)3.创建卷组(VG)4.创建逻辑......
  • 条件逻辑快速摘要:要求和边缘情况
    随着时间的推移,我们发展了读写逻辑条件的技能,新的语言特性可以为我们提供新的解决方案。但并非所有解决方案都是平等的。让我们快速看一个例子。设置假设我们有一个可能存在于多个位置的属性,并且我们希望优先考虑嵌套实例。以下是一些可能的解决方案://OptionA:Ternarycon......
  • 优选拼团平台架构解析与关键代码逻辑概述
    一、系统架构设计优选拼团平台采用多层架构设计,主要包括前端展示层、业务逻辑层、数据访问层及数据存储层。前端展示层:负责用户界面的展示和交互,包括商品列表、拼团详情、订单管理等页面。前端采用现代前端框架(如Vue、React)构建,支持响应式布局,提供流畅的用户体验。业务逻辑层:处理平......
  • ArduSub程序学习(11)--EKF实现逻辑①
    1.read_AHRS()进入EKF,路径ArduSub.cpp里面的fast_loop()里面的read_AHRS();//从AHRS(姿态与航向参考系统)中读取并更新与飞行器姿态有关的信息voidSub::read_AHRS(){//PerformIMUcalculationsandgetattitudeinfo//-------------------------------------......
  • 一款高性价比4g工业路由器,配置简单,网络覆盖强
    ​各位老铁,今天给大家介绍一下SR600这款工业级4G路由器。这玩意儿是专门为工业环境设计的,比如说化工厂、矿场这种恶劣环境,普通路由器根本扛不住。先说说SR600的硬件配置:处理器:工业级CPU,厂家没透露具体型号,但性能够用内存:128MB,满足工业控制需求存储:16MBFl......
  • 20240924_012514 c语言 逻辑运算符
    逻辑运算符练一练应用场景演练演练......