Selenium 学习(0.16)——软件测试之测试用例设计方法——白盒测试——逻辑覆盖法(语句覆盖和判定覆盖)

news2024/11/23 0:44:51
        写在前面

        今天回来有点晚,因为上午给小伙伴们开了个小会,随便说了些什么,结果小伙伴们下班就没急着走,弄点我还有点不好意思提前走了,就略留了一会。其实也没说什么,就是强调工作要抓点紧,8小时内提高效率就好,我反对无意义的加班;要他们遵守好规章就好,该干啥就干啥;最好不要摸鱼,千万不要以为摸鱼才是挣钱,把正常上班当等价交换;大家都从学生过来的,坐在下面都以为自己作弊技术高明,其实站在上面的人一眼就能看出来,不管是眼神、动作或神态;我没什么能耐,但是盯个一二十个人还是没啥问题的,如果非要让人盯着,就不太好玩了。也许可能说的不对,请大家“有则改之,无则加冕”,我的要求就是“和谐工作、开心生活”,不要因为工作产生什么不愉快,搞清楚自己上班是为啥、值不值继续得就好了……
        其实我一点也不想贩卖焦虑,我只想能工作顺顺利利推动就好,大家都能拿到想要的就好。大家这么配合,我都脸红了,真心只是希望大家都好,当然你们好了我才会好!感谢!

        定义

       逻辑覆盖法又称控制流覆盖,是一种按照程序内部逻辑结构设计测试用例的测试方法,目的是要测试程序中的判定和条件,测试程序逻辑结构通常需要通过使用控制流覆盖准则来定量测试进行程度。       

        它包括:语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖。

        语句覆盖

        又称为线覆盖面或段覆盖面,通过选择足够数目测试数据,使被测程序中每个可执行语句至少执行一次。

         以上被测单元代码包含两个 if 语句,每个判定表达式又由两个子条件组成。绘制流程图如上所示,P1~P5表示若干段控制流。

        若要做到语句覆盖,即每条语句至少执行一次程序执行的路径应该是 P1-P3-P2-P5-P4。可设计测试用例如下:

        语句覆盖可以很直观地从源代码得到测试用例,无须细分每条判定表达式,但由于这种测试方法仅仅针对程序逻辑中显式存在的语句,对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。

        判定覆盖

        又称为分支覆盖或所有边覆盖:每个判定(例如if语句和while语句)的分支至少执行一次。
        
注意:每个判定视为一个整体,取值为 true 或 false,而不考虑内部是否包含“逻辑与”或者“逻辑或”等操作符。

        判定覆盖法的基本思想是指设计的测试用例,使得程序中每个判定至少分别取“真”和取“假”分支一次,即判断真假值均被满足。

        第一种:覆盖P1-P3-P2-P5-P4和P1-P2-P4两条路径
        第二种:覆盖P1-P3-P2-P4和P1-P2-P5-P4条路径

        根据第二种设计测试用例如下:

         判定覆盖法对程序的逻辑覆盖程度仍度高,流程图表示的源程序有4条路径,以上的一种测试用例只覆盖了其中的2条。

        判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

=========================================================================

        更新待续,洗涤睡了……困!2023年11月27日23:01

=========================================================================

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1261179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FLASK博客系列7——我要插入数据库

我们来继续上次的内容,实现将数据插入数据库。 我们先更改下models.py,由于上次笔误,把外键关联写错了。在这里给大家说声抱歉。不过竟然没有小伙伴发现。 models.py from app import dbclass User(db.Model): # 表名将会是 user&#xff0…

GPIO的使用--操作PE02 PE03 PE04实现开关控制灯泡亮灭

效果: 开关控制灯的亮灭 目录 1.找到引脚组别(DEFG) led灯硬件结构 开关硬件结构 2.时钟使能 3.GPIO时钟控制 4.控制实现思路 5. 完整代码 6.视频演示 1.找到引脚组别(DEFG) 开关的引脚组别--E;LED灯的引脚组别--F led灯硬件结构 开关硬件结构…

SpringBoot整合Sharding-Jdbc实现分库分表和分布式全局id

SpringBoot整合Sharding-Jdbc Sharding-Jdbc sharding-jdbc是客户端代理的数据库中间件;它和MyCat最大的不同是sharding-jdbc支持库内分表。 整合 数据库环境 在两台不同的主机上分别都创建了sharding_order数据库,库中都有t_order_1和t_order_2两张…

移动安全威胁:今天和明天的危险

随着技术的发展,个人和公司的设备、数据和隐私所面临的威胁也在发生变化。在本文中,我们将仔细研究当今移动设备安全面临的主要威胁,并共同探讨不久的将来的前景。 但首先让我们从基础开始:如何对移动设备发起攻击? …

血的教训--redis被入侵之漏洞利用复现--总览

血的教训–redis被入侵之漏洞利用复现–总览 相信大家对于自己的服务器被入侵,还是比较憎恨的,我的就被攻击了一次,总结经验,自己也是整理了这一个系列,从最基础到最后面的自己总结被攻破的步骤,非常清晰的…

Jboss启动报错Unrecognized VM option PermSize=128m

1.问题现象 JBoss启动提示创建JAVA虚拟机失败,异常信息如下 异常截图 异常日志 .JBoss Bootstrap Environment .JBOSS_HOME: E:\Jboss\jboss-4.0.2_BR_5.4.4.21\bin\\.. .JAVA: C:\Java\jdk1.6.0_38\bin\java .JAVA_OPTS: -Xms64m -Xmx1024m -Dprogram.namerun.ba…

STK Components 二次开发- StarLink

1.星链数据下载 CelesTrak: Current GP Element Sets 下载二根数就可以。 2.处理数据 下载下来的数据是这样,要将字符串转为 二根数对象 TwoLineElementSet tle new TwoLineElementSet(tleString); Sgp4Propagator propagator new Sgp4Propagator(tle); 3.批量…

红米手机如何远程控制荣耀手机?

很多人都知道,华为体系有【畅联】,与华为手机或平板“畅连”通话时,可共享屏幕给对方,一边聊天一边演示,还可在屏幕上涂鸦帮助理解。同样,小米体系有【小米通话】,它的远程协助功能可以帮助朋友…

C语言--每日选择题--Day27

第一题 1. 对于代码段,问下面不可以表示a[1]地址的是() int a[10]; A:&a[0] 1 B:a sizeof(int) C:(int*)&a 1 D:(int*)((char*)&a sizeof(int)) 答案及解析 A A:取到…

【索引优化与查询优化】

文章目录 1. 索引失效的案例1.1 最左优先1.2 主键插入顺序1.3 计算、函数、类型转换(自动或手动)导致索引失效1.4 范围条件右边的列索引失效1.5 非 条件索引失效1.6 like以通配符%开头索引失效1.7 OR 前后存在非索引的列,索引失效 2. 关联查询优化 1. 索引失效的案例…

Locust单机多核压测,以及主从节点的数据通信处理!

一、背景 这还是2个月前做的一次接口性能测试,关于locust脚本的单机多核运行,以及主从节点之间的数据通信。 先简单交代下背景,在APP上线之前,需要对登录接口进行性能测试。经过评估,我还是优先选择了locust来进行脚…

构建沉浸式 AI 文本编辑器:开源 3B 编辑器的设计原则与思路

借助于在 AutoDev 与 IDE 上的 AI 沉浸式体验设计,我们开始构建一个 AI 原生的文本编辑器,以探索沉浸式创作体验。其适用于需求编写、架构文档等等文档场景,以加速软件开发中的多种角色的日常工作。 GitHub:https://github.com/un…

C++11线程以及线程同步

C11中提供的线程类std::thread,基于此类创建一个新的线程相对简单,只需要提供线程函数和线程对象即可 一.命名空间 this_thread C11 添加一个关于线程的命名空间std::this_pthread ,此命名空间中提供四个公共的成员函数; 1.1 get_id() 调用命名空间s…

Seata简介与常用模式解决方案概述

Seata 是什么? Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。 Seata事务管理中有三个重要的角色: TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,协调全局事务提…

cesium不同版本对3dtiles的渲染效果不同,固定光照的优化方案

cesium不同版本对3dtiles的渲染效果不同,固定光照的优化方案,避免map.fixedLight true,导致的光照效果太强,模型太亮的问题。 问题来源: 1.Cesium1.47版本加载tileset.json文件跟Mars3d最新版加载文件存在差异效果 Cesium1.47…

leetcode:506. 相对名次

一、题目 函数原型:char** findRelativeRanks(int* score, int scoreSize, int* returnSize) 二、思路 创建一个新的数组newscore,将原数组数据拷贝到新数组,降序排序新数组。 遍历原数组,在新数组中找到原数组中数据在新数组中的…

yolov8-pose 推理流程

目录 一、关键点预测 二、图像预处理 二、推理 三、后处理与可视化 3.1、后处理 3.2、特征点可视化 四、完整pytorch代码 yolov8-pose tensorrt 一、关键点预测 注:本篇只是阐述推理流程,tensorrt实现后续跟进。 yolov8-pose的tensorrt部署代码…

C++ : 友元(未完结)

不能从外部访问类的私有数据成员和方法,但这条规则不适用于友元类和友元函数。要声明友元 类或友元函数,可使用关键字 friend,通过让函数成为类的友元,可以赋予该函数与类的成员函数 同的访问权限。 生活中你的家有客厅 (Public)…

3D模型顶点颜色转纹理【SIMPLYGON】

在这篇博客中,我们将了解如何将顶点颜色烘焙到纹理中。 其用例是某些照片扫描资产,其中颜色数据保存到顶点颜色中。 我们将了解如何使用 remesher 和聚合器管道来完成此操作。 我们还将介绍如何为顶点颜色材质创建着色网络以及如何从模型后处理中删除顶点…

leetcode每日一题34

89.格雷编码 观察一下n不同时的格雷编码有什么特点 n1 [0,1] n2 [0,1,3,2] n3 [0,1,3,2,6,7,5,4] …… 可以看到nk时,编码数量是nk-1的数量的一倍 同时nk编码的前半部分和nk-1一模一样 nk编码的最后一位是2k-1 后半部分的编码是其对应的前半部分的对称的位置的数字…