软件测试之测试用例设计方法

news2025/4/4 18:56:02

目录

1.基于需求设计测试用例

2.具体的测试用例设计方法 

1.等价类

2.边界值法

3.判定表


1.基于需求设计测试用例

需求文档->梳理分析需求(掌握需求)->针对文档设计测试用例

在分析测试需求时,一般分为功能测试需求和非功能测试需求

网易邮箱登陆界面为例测试:

2.具体的测试用例设计方法 

1.等价类

等价类划分法(Equivalence Partitioning)是一种基于输入值的测试设计技术,旨在有效地选择测试用例来覆盖不同的等效类。它将输入数据划分为各个等效类,以便从每个等效类中选择一个代表性的测试用例来进行测试,如果测试通过,则认为所代表的等价类测试通过,从而减少冗余的测试。就用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

有效等价类:满足用户需求的输入集合

无效等价类:不满足用户需求的输入集合

等价类思想设计测试用例步骤:

1.充分理解需求

2.划分有效等价类和无效等价类

3.从有效等价类中抽取其中一个数据进行设计测试用例;从无效等价类中抽取其中一个数据进行测试用例设计

2.边界值法

用户名的长度可能需要判断,符合要求才能继续下一步,否则注册失败

 还要注意边界值的选取

边界点

上点:边界上的点 6、15(闭区间)

内点:边界内的点 7~14(闭区间)

离点:边界值附近的一个点(闭区间区间外距离上点最近的点,开区间区间内距离上点最近的点)

5、16(闭区间)7、14(开区间) 7、16(左开右闭)5、14(左开右闭)

边界值设计测试用例的方法

1.充分理解需求

2.找边界点

3.针对边界点设计测试用例

使用等价类和边界值结合起来设计测试用例,会更加全面

3.判定表

判定表是一种表达逻辑判断的工具

关系:

与(所有条件都满足结果为真)

或(满足一个条件结果为真)

非(所有条件不满足结果为真)

恒等(原因为真,结果就为真)

设计测试用例

1.分析所有的输入和输出

2.找出输入与输出之间的对应关系

3.设计判定表

4.把判定表对应到每一个测试用例

假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。

输入:订单已提交,订单金额大于300,有红包

输出:进行优惠,不优惠

对应关系:

1)订单已提交,订单金额大于300,有红包,优惠

2)订单已提交,订单金额大于300,没有红包,优惠

3)订单已提交,订单金额小于300,有红包,优惠

4)订单已提交,订单金额小于300,没有红包,不优惠

5)订单未提交,订单金额大于300,有红包,不优惠

6)订单未提交,订单金额大于300,没有红包,不优惠

7)订单未提交,订单金额小于300,有红包,不优惠

8)订单未提交,订单金额小于300,没有红包,不优惠

判定表

测试用例

后期可以补充测试用例要素

测试用例设计万能公式

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

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

相关文章

职工管理系统

woker.h #pragma once #include<iostream> #include<string> using namespace std; class worker { public://显示岗位信息virtual void showInfo() 0;//获取岗位名称virtual string getDeptName() 0;int m_Id;//职工编号string m_Name;//职工姓名int m_DeptId;…

大学生用一周时间给麦当劳做了个App(uni-app版)

背景 有个大学生粉丝最近私信联系我&#xff0c;说基于我之前开源的多语言项目做了个仿麦当劳的项目&#xff0c;虽然只是个样子货&#xff0c;但是收获颇多&#xff0c;希望把自己写的代码开源出来供大家一起学习进度。这个小伙伴确实是非常积极上进&#xff0c;很多大学生&a…

ssh 连接出现错误: kex_exchange_identification: Connection closed by remote host

错误如下表示&#xff1a; windstormLocalHost-Server ~> ssh webase-front192.168.122.22 Couldnt get a file descriptor referring to the console. fish: Unknown command: nc fish: exec nc -X connect -x 127.0.0.1:15732 192.168.122.22 22 ^^ kex_exchange_id…

个人博客系统(二)

该博客系统共有八个页面,即注册页面、登录页面、添加文章页面、修改文章页面、我的博客列表页面、主页、查看文章详情页面、个人中心页面。 1 注册页面 该页面如图所示: 首先,要先判断注册的用户名、密码、确认密码以及验证码是否为空,若有一个为空,点击提交,则会提醒 …

代码随想录二刷day56 | 动态规划之 583. 两个字符串的删除操作 72. 编辑距离

day56 583. 两个字符串的删除操作1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组 72. 编辑距离1. 确定dp数组&#xff08;dp table&#xff09;以及下标的含义2. 确定递推公式3. dp数组如何初始化…

信号采样基本概念 —— 4. 移动平均滤波(Moving Average Filtering)

对于信号的滤波算法中&#xff0c;除了FFT和小波&#xff08;wavelet&#xff09;以外&#xff0c;还有其他一些常见的滤波算法可以对信号denoising。接下来的几个章节里&#xff0c;将逐一介绍这些滤波算法。而今天首先要介绍的就是&#xff0c;移动平均滤波&#xff08;Movin…

android studio 离线打包配置push模块

1.依赖引入 SDK\libs aps-release.aar, aps-unipush-release.aar, gtc.aar, gtsdk-3.2.11.0.aar, 从android studio的sdk中找到对应的包放到HBuilder-Integrate-AS\simpleDemo\libs下面 2.打开build.gradle&#xff0c;在defaultConfig添加manifestPlaceholders节点&#xff0c…

浅谈vue3与vue2的区别

vue3已经出来有一段时间了&#xff0c;相信很多公司项目都已经在用vue3重构项目&#xff0c;或者在新项目中直接用vue3搭建&#xff0c;那么我们学习vue3的必要性就有了。 v2 与 v3 的区别 v3 采用的是 monorepo 方式进行管理&#xff0c;将模块拆分到 package 目录中v3 采用…

用 PerfView 洞察.NET程序非托管句柄泄露

一&#xff1a;背景 1. 讲故事 前几天写了一篇 如何洞察 .NET程序 非托管句柄泄露 的文章&#xff0c;文中使用 WinDbg 的 !htrace 命令实现了句柄泄露的洞察&#xff0c;在文末我也说了&#xff0c;WinDbg 是以侵入式的方式解决了这个问题&#xff0c;在生产环境中大多数情况…

C++ cin

cin 内容来自《C Primer》 cin使用>>运算符从输入流中抽取字符 int carrots;cin >> carrots;如下的例子&#xff0c;用户输入的字符串有空格 #include <iostream>int main() {using namespace std;const int ArSize 20;char name[ArSize]; //用户名char …

HIVE SQL实现通过两字段不分前后顺序去重

--数据建表 drop table if exists db.tb_name; create table if not exists db.tb_name ( suj1 string,suj2 string ) ;insert overwrite table db.tb_name values ("语文","数学") ,("语文","英语") ,("数学","语文&…

[禁止登录]登录失败,建议升级最新版本后重试,或通过问题反馈与我们联系。(错误码:45)

token失效:[禁止登录]登录失败&#xff0c;建议升级最新版本后重试&#xff0c;或通过问题反馈与我们联系。(错误码:45。 [禁止登录]登录失败&#xff0c;建议升级最新版本后重试&#xff0c;或通过问题反馈与我们联系。 使用go-cqhttp开发QQ机器人的时候遇到的问题&#xff0c…

小白入门深度学习 | 6-5:Inception-v1(2014年)详解

1. 理论知识 GoogLeNet首次出现在2014年ILSVRC 比赛中获得冠军。这次的版本通常称其为Inception V1。Inception V1有22层深,参数量为5M。同一时期的VGGNet性能和Inception V1差不多,但是参数量也是远大于Inception V1。 Inception Module是Inception V1的核心组成单元,提出…

市面上的充电桩分类以及系统分析

摘要&#xff1a;智能用电小区是国家电网为了研究智能电网智能用电的先进技术如何运用于居民区&#xff0c;提高人民的生活水平&#xff0c;提高电网智能化水平以及提升用电服务质量而进行的一项尝试。电动汽车作为智能用电小区建设的一个组成部分同样也逐渐被纳入发展规划&…

聊聊传统监控与云原生监控的区别

传统监控的本质就是收集、分析和使用信息来观察一段时间内监控对象的运行进度&#xff0c;并且进行相应的决策管理的过程&#xff0c;监控侧重于观察特定指标。 但是随着云原生时代的到来&#xff0c;我们对监控提出了更多的要求&#xff1a; 通过监控了解数据趋势&#xff0c…

2023年7月杭州/郑州/深圳传统行业产品经理NPDP认证招生

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

如何用smardaten无代码平台进行复杂逻辑编排?

目录 1、前言2、复杂逻辑编排是什么&#xff1f;3、服务编排-进销存&#xff08;1&#xff09;业务说明&#xff08;2&#xff09;设计说明1&#xff09;数据库设计2&#xff09;表单设计3&#xff09;列表设计4&#xff09;逻辑设计4.1 逻辑控制设计4.2 服务编排设计 4、使用体…

Redis学习(四)Redis原理:底层数据结构、网络模型、内存回收策略

文章目录 Redis底层数据结构SDS 动态字符串IntSet 整数集合Dict 字典Dict伸缩中的渐进式再哈希 ZipList 压缩列表QuickLisk 快速列表SkipList 跳表动态索引建立 RedisObject变量类型与数据结构实现StringListSetZSetHash Redis网络模型Redis是单线程还是多线程&#xff1f;为什…

VUE安装部署+应用

1.下载vscode 安装教程&#xff1a;https://blog.csdn.net/T1401026064/article/details/128692088 百度网盘&#xff1a;VSCodeUserSetup-x64-1.74.3.exe 提取码&#xff1a;8s8a 2.VUE教程 可以用&#xff01;快捷输入代码框架。 教程&#xff1a;https://cn.vuejs.org/guid…