超细,设计一个“完美“的测试用例,用户登录模块实例...
目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
好的测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,而跟能否发现缺陷无关
好的测试用例必须具备哪些特征
整体完备性:一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求
等价类划分的准确性:对于每个等价类都能保证只要其中一个输入测试通过,其他输入页一定测试通过
等价类集合的完备性:需要保证所有可能的边界值和边界条件都已经正确识别
三种最常用的测试用例设计方法
等价类划分:
将所有可能的输入数据划分成若干个子集;
任意一个输入数据若是有效的则构成有效等价类;
输入数据对于揭露程序中潜在错误都具有同等效果则构成无效等价类;
后续只要从每个等价类中年任意选取一个值进行测试, 就可以用少量具有代表性的测试输入取得较好的测试覆盖结果;
边界值分析:
选取输入、输出的边界值进行测试;
边界值分析师对等价类划分的补充;
错误推断法:
基于对被测试软件系统设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例方法。强调的是对被测软件的需求理解以及设计实现的细节把握
错误推断法的例子
如何设计出好的测试用例
例子:测试面向终端用户的GUI测试
最核心的测试点:验证软件对需求的满足程度
如何做到:在需求分析阶段和技术设计阶段就开始介入
成效:设计出从终端用户使用场景考虑的端到端的测试用例集,主要验证各个业务需求是否被满足,基于黑盒的测试设计方法
重点:在具体的用例设计时,首先要搞清楚每一个业务需求所对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,最后再针对每个测试需求点设计测试用例
以“用户登录”功能设计测试用例
【用户登录】功能的映射关系图
关键点:
从软件功能需求出发,全面地、无遗漏地识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率。 比如,如果你没有识别出用户登录功能的安全性测试需求,那么后续设计的测试用例就完全不会涉及安全性,最终造成重要测试漏洞。
对于识别出每个测试需求点,需要综合运用等价类划分、边界值分析和错误推测方法来全面设计测试用例。
以用户登录的功能性需求为例
首先对“用户名”和“密码”两个输入框分别进行等价类划分,对于无效等价类的识别可采用错误推测法(如:用户名包含特殊字符);
然后补充输入框的边界值用例,如:为空、用户名长度刚刚大于限定长度;
设计测试用例的高级经验
深入理解被测试软件的架构,发现系统边界以及系统集成上的潜在错误
必须对内部的架构有清楚的认识,比如:数据库连接方式、数据库的读写分离、消息中间件的配置、缓存系统的层级分布、第三方系统的集成
必须深入理解被测软件的设计与实现细节、内部处理逻辑
只根据测试点设计测试用例只能覆盖“表面”一层,往往内部处理流程、分支处理无法覆盖完全;在具体实践中,可以通过代码覆盖率指标找出可能的测试遗漏点
测试用例设计
一般分为两种
显性功能性需求:指的就是软件本身需要实现的具体功能,比如“登录成功”,“密码错误”等
非功能性需求:主要涉及【安全性】【性能】【兼容性】三大维度,往往非功能性需求是决定软件质量的关键因素
用户登录的测试用例
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只有经历艰辛的岁月,才能绽放出坚强的花朵;只有付出不懈的努力,才能迎来辉煌的明天。努力奋斗,为了成就自己的人生传奇,让每一份汗水都成为你成功的养料!
只有奋斗才能使生命绽放出属于自己的光彩,不断努力,才能实现心中的梦想,勇敢面对困难与挑战,每一次努力都是进步的开始,坚持不懈,终将收获辉煌的人生。
只有坚持不懈的努力,才能在人生的舞台上绽放出耀眼的光芒。无论遇到多少困难,都要永不言弃,相信自己的能力,勇往直前,追逐梦想的脚步永不停歇。
相关文章:

超细,设计一个“完美“的测试用例,用户登录模块实例...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 好的测试用例一定…...

【C#】文件拖拽,获取文件路径
系列文章 【C#】编号生成器(定义单号规则、固定字符、流水号、业务单号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787 【C#】日期范围生成器(开始日期、结束日期) 本文链接:h…...
SAP PI/PO初步了解 2023.07.03
SAP PI/PO 是SAP 提供的一种集成中间件解决方案,用于在组织内部或不同组织之间实现系统的无缝通信和数据交换。它使企业能够以统一高效的方式集成各种应用和系统,无论这些系统的技术平台或数据格式如何。 以下是关于SAP PI/PO的简要概述: 1…...
Java中生产者消费者模型
在Java中,生产者消费者模型是一种常见的多线程编程模型,用于解决生产者和消费者之间的数据交互问题。 简介 生产者(Producer)负责生成数据,并将数据放入共享的缓冲区(队列)中。消费者…...

测试Hyperledger Fabric环境
首先进入fabric-samples目录中的first-networked 子目录 cd fabric-samples/first-network 在first-network目录下有一个自动化脚本byfn.sh,可以使用-help参数查看相应的可 用命令,在命令提示符中输入如下命令: ./byfn.sh --help命令执行成功后&#…...
ClickHouse查询sql长度超超过最大限制
ClickHouse查询sql长度超超过最大限制 Max query size exceeded ClickHouse exception, message: Code: 62. DB::Exception: Syntax error: failed at position 262102 (‘fwm00ud6a3ynu0kaxr.ya0eyemkbzdvrxkhwgchccll’) (line 10406, col 17): fwm00ud6a3ynu0kaxr.ya0eyemk…...

【Axure教程】拖动调整行高列宽的表格
表格是在系统软件中非常常用的工具。表格通常由行和列组成,用于以结构化的方式显示和组织数据。它们在各种场景中都有广泛的应用,包括数据分析、数据录入、报表生成、项目管理和数据可视化等领域。 今天作者就教大家如何在Axure里制作一个能通过鼠标拖动…...

中间件-netty(1)
netty 前言篇 文章目录 一、IO基础篇1.概念1.1 阻塞(Block)和非阻塞(Non-Block)1.2 同步(Synchronization)和异步(Asynchronous)1.3 BIO 与 NIO 对比1.3.1 面向流与面向缓冲1.3.2 阻塞与非阻塞1.3.3 选择器的问世 2.NIO 和 BIO 如何影响应用程序的设计2.1 API调用2.2 数据处理2…...

【方法】想把PDF文档转换成PPT,如何操作?
很多小伙伴在工作中,会使用PDF或者PPT来展示内容。那如果需要把PDF转换成PPT,要如何操作呢? 我们知道,PPT转换成PDF很容易操作,只需通过PPT的【导出】选项,就可以直接转换成PDF;还可以通过“另…...

Linux--设置目录或文件的默认权限:umask权限掩码
目录起始权限是从777,普通文件起始权限从666 为何我们创建一个目录或文件,默认权限是你所看到的样子? 因为凡是在umask中出现的权限,都不应该在最终权限中出现! 最终权限起始权限&(~umask)…...
C++实现websocket单server单client全双工通信(基于boost!!!)
自身环境:ubuntu18.04gcc7.5.0boost1.7,3 环境配置 gcc或者g一般都有,这里主要介绍一下boost的配置方法 执行如下代码: wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.bz2 --no-check-cert…...
好用的网址5
搜番神器:https://trace.moe/ Online converter:Online converter - convert video, images, audio and documents for free 格式转换 GIF Explode:https://gif-explode.com/ SongDonkey:SongDonkey - AI Online Audio Split…...

做项目去实习到底做的什么?
300万字!全网最全大数据学习面试社区等你来! 今天是手机编辑的文章,说说做项目/实习这回事。 我之前发过一些视频,讲校招四要素的,其中一个很重要的部分就是实习。 对社招同学来说,就简单了,面试…...

VSC++: 验证身份证
缘由https://ask.csdn.net/questions/1082358 void 验证身份证() {//缘由https://ask.csdn.net/questions/1082358int 权重[] { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }, 个 0, j 0, a 0, he 0;char M[] "10X98765432", 身份号[100][20]{};//…...

机器学习-方差和偏差理论
机器学习-方差和偏差理论 关于机器学习方差和偏差的内容其实很重要,这个方差和偏差可以帮助我们去分析,模型的泛化能力和过拟合的程度。 下面我们先给存储方差和偏差的公式: 注意,下式当中, f ( x ; D ) 表示在数据集…...

力扣 669. 修剪二叉搜索树
题目来源:https://leetcode.cn/problems/trim-a-binary-search-tree/description/ C题解1:递归法。当前节点为空时返回空,不为空时对其值进行分类讨论。以low为例,当前节点值等于low时,意味着其左子树都要丢弃…...
ChatGPT在多轮对话中的表现如何?
ChatGPT是一个非常强大的自然语言处理模型,它可以生成高质量的自然语言文本,并且在多轮对话中也有很好的表现。以下是关于ChatGPT在多轮对话中表现的详细介绍: 上下文感知 ChatGPT可以通过上下文感知来理解当前对话的语境和主题。在多轮对话…...
C++ 虚函数 (virtual function) 介绍
文章目录 1. 什么是虚函数2. 虚函数与非虚函数的区别3. 派生类中的虚函数4. 构造/析构函数可以是虚函数吗?5. 纯虚函数5.1 纯虚函数的定义5.1 纯虚函数的特定 1. 什么是虚函数 C 对象有三大特性:继承、封装、多态;虚函数就是实现多态的一种方…...
写给小白的ChatGPT和AI原理
前言 随着ChatGPT等生成式AI的大火,很多开发者都对AI感兴趣。笔者是一名应用层的开发工程师,想必很多类似的开发者都对AI这块不太了解,故而从自己的理解,写一篇給小白的AI入门文章,希望可以帮助到大家。 这是GPT对本…...

多元回归预测 | Matlab基于麻雀算法(SSA)优化混合核极限学习机HKELM回归预测, SSA-HKELM数据回归预测,多变量输入模型
文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于麻雀算法(SSA)优化混合核极限学习机HKELM回归预测, SSA-HKELM数据回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 …...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...

Vue3 PC端 UI组件库我更推荐Naive UI
一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...

Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...

CTF show 数学不及格
拿到题目先查一下壳,看一下信息 发现是一个ELF文件,64位的 用IDA Pro 64 打开这个文件 然后点击F5进行伪代码转换 可以看到有五个if判断,第一个argc ! 5这个判断并没有起太大作用,主要是下面四个if判断 根据题目…...