Unittest测试框架(重点在了解思想)

2023-11-02

单元测试概述

什么是单元测试(白盒测试)?
单元测试是开发者编写的一小段代码,用于检验被测代的一个很小的、很明确的功能是否正确.。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
单元测试什么时候开始?
越早介入越好
单元测试由谁负责?
由开发负责

单元测试需要注意

单元测试的时候一个大前提就是需要清楚的知道,自己要测试的程序块所预期的输入和输出,然后根据这个预期和程序逻辑来书写case。这里的预期结果一定要针对需求/设计的逻辑去写,而不是针对程序的实现去写,否则单测就失去了意义,照着错误的实现设计出的case也很可能是错的。

单元测试框架列举及国内大厂现状

Unittest
Python内置的标准类库。它的API跟Java的JUnit、.net的NUnit,C++的CppUnit很相似
Pytest
丰富、灵活的测试框架,语法简单,可以结合allure生成一个炫酷的测试报告,现在比较主流
Nose
Nose是对unittest的扩展,使得python的测试更加简单
Mock
unittest.mock是用来测试python的库。这个是一个标准库(出现在python3.3版本以后)

单元测试覆盖率

代码覆盖率也被用于自动化测试和手工测试来度量测试是否全面的指标之一,应用覆盖率的思想增强测试用例的设计
单元测试覆盖类型:
语句覆盖
条件覆盖
判断覆盖
路径覆盖
被测试代码片段

def demo_method(a,b,x):

  if (a>1 and b == 0):
    x = x/a

  if (a == 2 or x>1):
    x = x+1

  return x

在这里插入图片描述

语句覆盖

语句覆盖定义

通过设计一定量的测试用例,保证被测试的方法每一行代码都会被执行一遍
运行测试用例的时候被击中的代码行即称为被覆盖的语句
测试用例

仅需要一条case,即可实现行覆盖
a =3, b=0, x=4
漏洞

and -> or
行覆盖是一个最基础的覆盖方式,但是也是最薄弱的,如果完全依赖行覆盖,会出现很严重的问题

判断覆盖

判断覆盖定义
运行测试用例的过程中被击中的判定语句
测试用例

在这里插入图片描述

漏洞
大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径
a2 or x>1 -> a2 or x<1
条件覆盖

条件覆盖定义

条件覆盖和判定覆盖类似,不过判定覆盖关注整个判定语句,而条件覆盖则关注某个判断条件
测试用例:if(a>1 and b ==0)

在这里插入图片描述

缺陷
测试用例指数级增加(2**conditions)

路径覆盖

路径覆盖定义
覆盖所有可能执行的路径
测试用例

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unittest测试框架(重点在了解思想) 的相关文章

  • 新入职一个00后卷王,每天加班到2点,太让人崩溃了····

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 软件测试|Pydantic详细介绍与基础入门

    简介 Pydantic 是一个强大的 Python 库 用于数据验证和解析 特别是用于处理 JSON 数据 它的主要目标是使数据验证和解析变得简单 直观和可维护 本文将介绍 Pydantic 的基础知识 包括如何定义模型 验证数据以及处理错
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 软件测试|Selenium StaleElementReferenceException 异常分析与解决

    简介 Selenium 是一个流行的自动化测试工具 用于模拟用户与网页交互 然而 当我们在使用 Selenium 时 可能会遇到一个常见的异常 即 StaleElementReferenceException 这个异常通常在我们尝试与网页上
  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • C++ 中 const 和 constexpr 关键字解析:常量、函数和指针

    很多 C 的初学者看到 const 这个关键字的第一反应都是一头雾水 主要是因为 const 可 以出现在很多的位置 以及后面加入的 constexpr 更是常常感到困惑 今天就为大家一一解释出现它们的含义和以及作用 const 关键字 c
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中 富文本框是常见的元素 用于输入富文本内容 如富文本编辑器或邮件编辑器 如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框 可能会遇到一些挑战 本文将详细介绍如何使用Python和Selenium
  • Python自动化测试 | 如何使用Robot Framework进行自动化测试?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 测开和测试平台是否有存在的必要?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 如何写好一个错误报告

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 一篇文章带你了解Python常用自动化测试框架——Pytest

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯式性能指标监听

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • 月薪2W的软件测试工程师,到底是做什么的?

    在生活中 我们常常会遇到以下几种窘迫时刻 准备骑共享单车出行 却发现扫码开锁半天 车子都没有反应 手机导航打车 却发现地图定位偏差很大 司机总是跑错地方 买个水 却遭遇自动售货机吐币 或者不找零钱 好不容易休息打个游戏 却一直出现卡顿 闪退
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • Airtest自动化测试工具

    一开始知道Airtest大概是在年初的时候 当时 看了一下官方的文档 大概是类似Sikuli的一个工具 主要用来做游戏自动化的 通过截图的方式用来解决游戏自动化测试的难题 最近 移动端测试的同事尝试用它的poco库来做自动化 看样子还不错
  • 深入解析 YAML 配置文件:从语法到最佳实践

    一 认识YAML YAML YAML Ain t Markup Language 是一种人类可读的数据序列化语言 它的设计目标是使数据在不同编程语言之间交换和共享变得简单 YAML采用了一种简洁 直观的语法 以易于阅读和编写的方式表示数据结
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它

随机推荐

  • 【详解如何一步步实现三子棋】

    相信大家都玩过五子棋 三子棋也是一样的道理 行列三子 对角线三子获得胜利 想要实现三子棋小游戏需要哪几步 1 三子棋首先我们要创建棋盘 创建一个二维数组三行三列 然后将棋盘初始化为全空格 2 如何将棋盘转换为网格状棋盘 如下图 3 玩家下棋
  • e-charts 图例过多问题

    饼图的图例 如果过多 需要增加 分页按钮 注意 如果测试用例数量不够 则分页按钮不会出现 会默认将画面填满后 分页按钮才会出现 我之前只用了两三个 总是不出现 气死了 legend top 15 type scroll orient ver
  • nginx代理获取ip为127.0.0.1解决方法

    原因 我们访问互联网上的服务时 大多数时 客户端并不是直接访问到服务端的 而是客户端首先请求到反向代理 反向代理再转发到服务端实现服务访问 通过反向代理实现路由 负载均衡等策略 这样在服务端拿到的客户端IP将是反向代理IP 而不是真实客户端
  • LeetCode:用栈实现队列(纯C语言)可CV

    题目链接 232 用栈实现队列 力扣 Leetcode 还是老套路二话不说 先上代码 typedef char STDataType typedef struct Stack STDataType a int top int capacit
  • Android开发——V1及V2签名原理简析

    Android为了保证系统及应用的安全性 在安装APK的时候需要校验包的完整性 同时 对于覆盖安装的场景还要校验新旧是否匹配 这两者都是通过Android签名机制来进行保证的 本文就简单看下Android的签名与校验原理 分一下几个部分分析
  • 指路明灯,99%自动化测试从业者都该看的职业规划!

    这篇文章将从以下三个方面来给大家介绍自动化测试 其中包含自动化测试从业者需要了解的知识和一些常见的思想误区 以及自动化测试行业的前景以及如何进阶 1 自动化测试的介绍 自动化测试什么是 有哪些被称作自动化测试 自动化测试意义何在 和所有的项
  • React + Ant Design Pro项目实现keep-alive页签

    背景 PC端管理系统 采用 ant design pro 方案 它是阿里的一个管理系统框架 技术栈是react 相比vue react一个先天不足是不支持 keep alive 所以管理系统中的多页签功能难以实现 调研 由于官方不支持 只能
  • Tomcat环境变量Catalina_Home配置

    1 CATALINA HOME是TOMCAT安装路径的别名 目的是为了方便使用TOMCAT 2 计算机 gt 属性 gt 环境变量 新建环境变量 变量名为CATALINA HOME 变量值tomcat的解压目录 我电脑上的为 D apach
  • r语言barplot函数图中加标签_R语言中使用text()函数给绘图添加文字

    R语言中text 函数同abline 函数 lines 函数一样属于低水平函数 即在已有绘图中添加相关图形 text 函数的作用是在给定的x和y坐标的位置添加字符串 text 函数的默认使用格式如下 text x y NULL labels
  • HTML5 FormData 方法介绍以及实现文件上传

    XMLHttpRequest 是一个浏览器接口 通过它 我们可以使得 Javascript 进行 HTTP S 通信 XMLHttpRequest 在现在浏览器中是一种常用的前后台交互数据的方式 2008年 2 月 XMLHttpReque
  • 数据和技术驱动下的投放效率优化

    业内流行着这样一句话 用户增长三板斧 投放 push和分享 渠道投放是用户增长非常重要的一个方向 以往渠道投放更多是重商务 渠道和运营 现在已经发展成了一个通过数据和技术驱动不断优化 精益求精的领域 技术在投放 营销场景正扮演着越来越关键的
  • HTML基础标签 && CSS选择器 && JavaScript基础语法 && WebAPI_ && 页面设计 && HTTP协议

    第 1 题 简答题 题目名称 编写博客 总结 HTML 中的常用标签用法 题目内容 编写博客 总结 HTML 中的常用标签用法 第 2 题 简答题 题目名称 image 标签的 alt 和 title 属性有什么区别 题目内容 image
  • pymysql 解决pymysql自动断开 定时检查数据库连接状态

    在框架中使用Mysql 数据库存在一个问题 即连接八小时之内没有执行命令则自动断开 最简单的解决方法是重启服务 暴力解决 重启服务这显然是不友好的 还有一种方法是设置等待时间 如设置 interactive timeout 360000 w
  • Unity常用的Attribute脚本汇总

    常用一个Attribute脚本汇总 试一试就知道是什么意思 using System Collections using System Collections Generic using UnityEngine 不可重复添加 Disallo
  • Java面试:Java的特征是什么?分别解释一下?什么是面向对象?

    什么是面向对象 对象就是存在的具体实体 具有状态和行为 如汽车有牌子和大小等属性 会跑等等行为 面向对象编程就是借助对象的描述在计算机中模拟真实的世界 Java的特征是什么 封装 继承 多态 封装 把类内部的具体实现与外界隔离起来 把实现方
  • 拓扑排序算法:实现图的有向无环图遍历

    拓扑排序算法 实现图的有向无环图遍历 拓扑排序算法是一种常用于解决有向无环图 Directed Acyclic Graph 简称DAG 的排序问题的算法 该算法能够将一个包含有向边的有向图转化为线性序列 使得每条边的起始节点都位于其终止节点
  • Spring配置文件beans.xml头部配置解释

    看如下的beans xml
  • MATLAB R2018b安装教程

    目录 一 软件下载 二 软件介绍 三 安装须知 四 安装步骤 最后 个人主页 库库的里昂 CSDN新晋作者 欢迎 点赞 评论 收藏 收录专栏 MATLAB基础及应用 希望作者的文章能对你有所帮助 有不足的地方请在评论区留言指正 大家一起学习
  • sublime text 4 打不开package control

    按照这个大佬的方法操作一下就好了 ST3 4 Package Control not working on macOS Issue 1612 wbond package control GitHub 大佬的原文翻译 资源本文也绑定目前是8
  • Unittest测试框架(重点在了解思想)

    单元测试概述 什么是单元测试 白盒测试 单元测试是开发者编写的一小段代码 用于检验被测代的一个很小的 很明确的功能是否正确 通常而言 一个单元测试是用于判断某个特定条件 或者场景 下某个特定函数的行为 单元测试什么时候开始 越早介入越好 单