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

        写在前面

        今天回来有点晚,因为上午给小伙伴们开了个小会,随便说了些什么,结果小伙伴们下班就没急着走,弄点我还有点不好意思提前走了,就略留了一会。其实也没说什么,就是强调工作要抓点紧,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

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

         

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Windows下】Eclipse 尝试 Mapreduce 编程

文章目录 配置环境环境准备连接 Hadoop查看 hadoop 文件 导入 Hadoop 包创建 MapReduce 项目测试 Mapreduce 编程代码注意事项常见报错 配置环境 环境准备 本次实验使用的 Hadoop 为 2.7.7 版本,实验可能会用到的文件 百度网盘链接:https://pan.baidu…

ADB命令集锦,一起来学吧

前言 在测试APP时,我们常常会用到adb命令来协助测试,那么adb命令到底是什么?有什么用?怎么用? 今天我就整理了一些工作中常用的adb知识点,希望对大家有所帮助。 ADB学习全攻略 ADB是什么? a…

【STM32】TIM定时器输出比较

1 输出比较 1.1 输出比较简介 OC(Output Compare)输出比较;IC(Input Capture)输入捕获;CC(Capture/Compare)输入捕获和输出比较的单元输出比较可以通过比较CNT与CCR寄存器值&#…

Apache Sqoop使用

1. Sqoop介绍 Apache Sqoop 是在 Hadoop 生态体系和 RDBMS 体系之间传送数据的一种工具。 Sqoop 工作机制是将导入或导出命令翻译成 mapreduce 程序来实现。在翻译出的 mapreduce 中主要是对 inputformat 和 outputformat 进行定制。 Hadoop 生态系统包括:HDFS、Hi…

python提取通话记录中的时间信息

您需要安装适合中文的SpaCy模型。您可以通过运行 pip install spacypython -m spacy download zh_core_web_sm来安装和下载所需的模型。 import spacy# 加载中文模型 nlp spacy.load(zh_core_web_sm)# 示例电话记录文本 text """ Agent: 今天我们解决一下这…

【模电】基本共射放大电路的工作原理及波形分析

基本共射放大电路的工作原理及波形分析 在上图所示的基本放大电路中,静态时的 I B Q I\tiny BQ IBQ、 I C Q I\tiny CQ ICQ、 U C E Q U\tiny CEQ UCEQ如下图( b )、( c )中虚线所标注。 ( a ) u i 的波形( b ) i B …

fastapi框架可以自动生成接口文档

安装FastAPI pip install fastapi test1.py from fastapi import FastAPIapp FastAPI()app.get("/") def read_root():return {"Hello": "World"}app.get("/items/{item_id}") def read_item(item_id: int, q: str None):#路由处理…

“打败魔法的永远是魔法”——人类应该如何和ChatGPT相处

GPT 的出现不是偶然的,是必然的! 谈起 ChatGPT 不得不提起 GPT,ChatGPT 是基于GPT 模型开发的一种AI交互智能机器人产品,可完成文案编写、代码编写和信息获取等任务。GPT是生成式预训练模型,主要基于 Transformer,目前…

Spring Bean的生命周期各阶段详解附源码

目录 Bean的生命周期Bean定义阶段Bean实例化阶段Bean属性注入阶段Bean初始化阶段Bean销毁阶段 Bean的生命周期 bean的生命周期,我们都知道大致是分为:bean定义,bean的实例化,bean的属性注入,bean的初始化以及bean的销毁…

华为OD机试 - 仿LISP运算 - 逻辑分析(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#…

C语言数组(上)

# 数组的概念 数组是一组相同类型元素的集合。数组中存放的是一个或多个数据,但是数组中的元素个数不能为零;数组中存放的所有元素(数据)的类型必须是相同的。 数组分为一维数组和多维数组,多维数组一般比较多见的是二…

LoadBalancer将服务暴露到外部实现负载均衡purelb-layer2模式配置介绍

目录 一.purelb简介 1.简介 2.purelb的layer2工作模式特点 二.layer2的配置演示 1.首先准备ipvs和arp配置环境 2.purelb部署开始 (1)下载purelb-complete.yaml文件并应用 (2)查看该有的资源是否创建完成并运行 &#xff…

安美数字酒店宽带运营系统 SQL注入漏洞复现

0x01 产品简介 HiBOS酒店宽带运营系统隶属于安美世纪(北京)科技有限公司开发的一套酒店宽带管理系统。 0x02 漏洞概述 安美数字酒店宽带运营系统 online_status.php、language.php等接口处存在SQL注入漏洞,未经身份认证的攻击者可以通过此漏洞获取数据库权限,进一步利用可…

Star 10.4k!推荐一款国产跨平台、轻量级的文本编辑器,内置代码对比功能

notepad 相信大家从学习这一行就开始用了,它是开发者/互联网行业的上班族使用率最高的一款轻量级文本编辑器。但是它只能在Windows上进行使用,而且正常来说是收费的(虽然用的是pj的)。 对于想在MacOS、Linux上想使用,…

java操作windows系统功能案例(二)

1、打印指定文件 可以使用Java提供的Runtime类和Process类来打印指定文件。以下是一个示例代码: import java.io.File; import java.io.IOException;public class PrintFile {public static void main(String[] args) {if (args.length ! 1) {System.out.println(…

GNU环境下伪操作伪指令的测试

目录 1.伪操作ldr转为指令的验证 测试目标: 测试代码: 测试结果: 结果分析: 2、伪操作ALIGN使用的例子 测试目标: 测试代码: 测试结果: (1)未使用align伪操作: (2)使用了align伪操作…

Leetcode1038. 从二叉搜索树到更大和树(每日一题)

目录 ⚽题目: 🏐题目分析: 🏀题目解答: 🥎代码如下: ⚽题目: 给定一个二叉搜索树 root (BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值…

Python类型注解必备利器:typing模块解读指南

更多资料获取 📚 个人网站:ipengtao.com 在Python 3.5版本后引入的typing模块为Python的静态类型注解提供了支持。这个模块在增强代码可读性和维护性方面提供了帮助。本文将深入探讨typing模块,介绍其基本概念、常用类型注解以及使用示例&am…

Java并发模式和设计策略

引言 小伙伴们,今天小黑要和咱们聊聊Java并发编程的那些事儿。在现代软件开发中,高效地处理多任务是一个不可或缺的能力。特别是对于服务成千上万用户的应用,能够同时处理多个操作不仅是一个加分项,简直是必备技能了!…

【踩坑】解决maven的编译报错Cannot connect to the Maven process. Try again later

背景 新公司新项目, 同事拷给我maven的setting配置文件, 跑项目编译发现maven报 Cannot connect to the Maven process. Try again later. If the problem persists, check the Maven Importing JDK settings and restart IntelliJ IDEA 虽然好像不影响, 项目最终还是能跑起来…