测试:设计测试用例

news2024/10/7 20:28:07

文章目录

  • 概念
  • 设计
    • 正交法
    • 判定表法

本篇总结的是测试用例的概念和设计方法

概念

测试用例是为了实施测试而向被测试的系统提供的一组集合,这个集合中包含的内容有测试环境,操作步骤,测试数据,预期结果等要素

在测试用例的设计中,一个原则是,测试用例要对于预期的结果做出定义,这样能够判断测试的结果是否符合最初的预期结果

设计

那如何进行测试用例的设计呢?

假设现在有一个门锁,如果要对门锁进行测试,那么该如何进行测试?

一个基本的设计思路是,功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试

  1. 功能测试:就是去看它的功能和预期的结果是否相同,只要相同就说明它的功能是正常的
  2. 界面测试:这个也比较好理解,就是对于界面进行测试,去看它的整体元素布局是否和设计图相同
  3. 性能测试:项目的功能已经完备了,但是性能未必好,因此要在功能已经完备的基础上去看它的性能整体表现的怎么样
  4. 兼容性测试:例如,设计出的一个软件,能不能在PC端打开,能不能在移动端打开,而移动和PC又分为不同的操作系统,那对于这些操作系统的兼容性测试也是有必要的
  5. 易用性测试:易用性测试简单来说就是测试它的上手成本怎么样,如果上手难度小,那么用户就更容易使用,也就更容易被进行推广
  6. 安全测试:安全测试就是负责检测各种安全

具体设计

那下面,就依据上面的这六点,进行一次设计测试用例,比如现在要进行的是邮箱注册的这样的测试用例设计:

在这里插入图片描述

正交法

这里采用一个正交法的例子来进行补充

对于正常的测试用例来说,大概想到的就是排列组合,比如有a和b两个选项,那么排列组合就是四种情况,都填写,a填b不填,b不填a填,两个都不填

那如果是三个选项,就是8种情况,四个选项就是16种,五个就是32种…

而正交法的目的主要是为了减少测试用例的数目,用尽量少的测试用例覆盖输入的组合情况

正交试验设计(Orthogonal experimental design)是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。正交试验设计是一种基于正交表的、高效率、快速、经济的试验。

正交表:

如图最简单的正交表是L(4)(2(3)),含意如下:“L”代表正交表;L下角的数字“4”表示有4横行,简称行,即要做四次试验;括号内的指数“3”表示有3纵列,简称列,即最多允许安排的因素是3个;括号内的数“2”表示表的主要部分只有2种数字,即因素有两种水平1与2。

在这里插入图片描述
正交表的构成:因素数、水平数、行数。
因素:对指标的影响条件,通常是正交表中的一列。
水平:因素对应的可选项。

正交表的性质:

  1. 每一列中,不同的数字出现的次数相等。
  2. 任意两列中数字的排列方式齐全而且均衡

正交法设计测试用例的步骤:

  1. 找到因素和水平
  2. 用allparis工具生成正交表
    • 将因素和水平写入Excel表格中
    • allparis目录下创建新的文本文件new.txt,复制Excel中的因素和水平,直接粘贴到文本文档保存并退出
    • 使用allparis命令生成正交表:allparis.exe new.txt>zhengjiao.txt
  3. 根据正交表编写测试用例
  4. 补充遗漏的重要测试用例

继续以邮箱注册为例,采用正交法补全剩下的测试用例。

  1. 找到因素和水平
    因素:姓名、电子邮箱、密码、确认密码、验证码
    水平:填写、不填写
  2. 用allparis工具生成正交表

首先创建一个文本文件为:

姓名		电子邮箱	密码		确认密码	验证码
填写		填写		填写		填写		填写   
不填写	不填写	不填写	不填写	不填写

其次进行生成:


TEST CASES
case	姓名	电子邮箱	密码	确认密码	验证码	pairings
1	填写	填写	填写	填写	填写	10
2	填写	不填写	不填写	不填写	不填写	10
3	不填写	填写	不填写	填写	不填写	8
4	不填写	不填写	填写	不填写	填写	8
5	~填写	填写	填写	不填写	不填写	2
6	~填写	不填写	不填写	填写	填写	2

PAIRING DETAILS
var1	var2	value1	value2	appearances	cases
姓名	电子邮箱	填写	填写	2	1, 5
姓名	电子邮箱	填写	不填写	2	2, 6
姓名	电子邮箱	不填写	填写	1	3
姓名	电子邮箱	不填写	不填写	1	4
姓名	密码	填写	填写	2	1, 5
姓名	密码	填写	不填写	2	2, 6
姓名	密码	不填写	填写	1	4
姓名	密码	不填写	不填写	1	3
姓名	确认密码	填写	填写	2	1, 6
姓名	确认密码	填写	不填写	2	2, 5
姓名	确认密码	不填写	填写	1	3
姓名	确认密码	不填写	不填写	1	4
姓名	验证码	填写	填写	2	1, 6
姓名	验证码	填写	不填写	2	2, 5
姓名	验证码	不填写	填写	1	4
姓名	验证码	不填写	不填写	1	3
电子邮箱	密码	填写	填写	2	1, 5
电子邮箱	密码	填写	不填写	1	3
电子邮箱	密码	不填写	填写	1	4
电子邮箱	密码	不填写	不填写	2	2, 6
电子邮箱	确认密码	填写	填写	2	1, 3
电子邮箱	确认密码	填写	不填写	1	5
电子邮箱	确认密码	不填写	填写	1	6
电子邮箱	确认密码	不填写	不填写	2	2, 4
电子邮箱	验证码	填写	填写	1	1
电子邮箱	验证码	填写	不填写	2	3, 5
电子邮箱	验证码	不填写	填写	2	4, 6
电子邮箱	验证码	不填写	不填写	1	2
密码	确认密码	填写	填写	1	1
密码	确认密码	填写	不填写	2	4, 5
密码	确认密码	不填写	填写	2	3, 6
密码	确认密码	不填写	不填写	1	2
密码	验证码	填写	填写	2	1, 4
密码	验证码	填写	不填写	1	5
密码	验证码	不填写	填写	1	6
密码	验证码	不填写	不填写	2	2, 3
确认密码	验证码	填写	填写	2	1, 6
确认密码	验证码	填写	不填写	1	3
确认密码	验证码	不填写	填写	1	4
确认密码	验证码	不填写	不填写	2	2, 5

下面就可以根据正交表来写测试用例了,测试用例可能会有一些遗漏,手动补全即可

判定表法

通过具体的方法可以让测试用例设计的更加完整和规范

需求中会存在各种各样的场景,现在把需求改为下面的要求:用户输入的账号中包含admin字符,或者通过内部链接进入注册界面,提交注册按钮成为管理员身份,否则没有

那对于这样的需求来说,不同的组合会出现不同的结果,那使用正交法是无法解决这样的场景的,因此就要使用一下判定表法

使用判定表法的步骤

  1. 确认需求中输入条件和输出条件
  2. 找出输入条件和输出条件之间的关系
  3. 画判定表
  4. 根据判定表编写测试用例

输入条件:账号包含admin字符,内部注册链接,点击注册按钮
输出条件:管理员,无管理员

只有符合ac,bc,abc才是管理员,其他都是无管理员

在这里插入图片描述

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

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

相关文章

第 54 期:MySQL Too many open files 报错

社区王牌专栏《一问一实验:AI 版》全新改版归来,得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询,表达了想试用体验 ChatDBA 的意愿,对此我们表示感谢 🤟。 目前,ChatDBA 还在最后的准备…

【差分数组】2772. 使数组中的所有元素都等于零

本文涉及知识点 差分数组 LeetCode2772. 使数组中的所有元素都等于零 给你一个下标从 0 开始的整数数组 nums 和一个正整数 k 。 你可以对数组执行下述操作 任意次 : 从数组中选出长度为 k 的 任一 子数组,并将子数组中每个元素都 减去 1 。 如果你可…

[dataworks]从mysql导入数据

一、新建离线同步 在ods的数据集成下点新建-->离线同步 1、起名imp_t_ods_uc_cst_terminal_dtl_df 前缀imp是import的缩写 t代表trade即MySQL的交易库(trade)的简写 ods即导入到ods层 uc_cst_terminal_dt为MySQL对应的表名 df为日全量导入(di为日增量导入&…

Profibus协议转Modbus协议网关模块帮助PLC实现智能激光设备通讯

一、前言 Profibus转Modbus网关(XD-MDPB100)是一种工业通信协议转换设备,用于实现Profibus协议与Modbus协议之间的转换。Profibus转Modbus网关在工业自动化系统中具有广泛的应用,它解决了不同协议设备之间的通信问题。本文将深入…

半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 Semi-Supervised Medical Image Segmentation Using Adversarial Consistency Learning and Dynamic Convolution Network 半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法 01 文献速递介绍 医学图像分割在计算辅助诊断和治疗研究中扮演…

M41T00串行实时时钟-国产兼容RS4C1339

RS4C1340是一种实时时钟(RTC)/日历,与ST M41T00引脚兼容,功能等效,包括软件时钟校准。该器件还提供VBAT引脚上的涓流充电能力、较低的计时电压和振荡器STOP标志。寄存器映射的块访问与ST设备相同。涓流充电器和标志需要…

HarmonyOS 页面路由(Router)

1. HarmonyOS页面路由(Router) 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块,通过不同的url地址,可以方便地进行页面路由,轻松地访问不同的页面。本文将从页面跳转、页面返回和页面返回前增加一个询问…

LeetCode刷题之HOT100之单词拆分

上午把docker基础学完了。下午来了闲的无聊,做一题先。 1、题目描述 2、逻辑分析 这个问题是一个典型的动态规划问题,我们可以使用一个布尔数组 dp 来记录字符串 s 的前缀是否可以被拆分成字典中的单词。具体地,dp[i] 表示字符串 s 的前 i …

Odrivegui 、odrivetool运行时的几个问题(windows)

ODrivetool 遇到的几个问题 错误信息 Traceback (most recent call last): File “c:\Users\hpf\Desktop\import matplotlib.py”, line 1, in import matplotlib.pyplot as plt File “C:\Users\hpf\AppData\Local\Programs\Python\Python39\lib\site-packages\matplotlib_…

【STM32】使用标准库点亮LED

1.硬件设计 LED1的阴极接到了PC13引脚上,我们控制PC13引脚的电平输出状态,即可控制LED1的亮灭。 2.编程要点 使能GPIO端口时钟;初始化GPIO目标引脚为推挽输出模式;编写简单测试程序,控制GPIO引脚输出高、低电平。 查…

数据驱动决策:工单统计工具如何赋能企业精准运营

在当今这个数字化飞速发展的时代,企业对于内部运营效率的追求已经达到了前所未有的高度。你是否曾为了繁杂的工单统计管理而头疼不已?是否曾因为无法准确进行工单统计数据而错失商机?今天,我将向你展示一款革命性的工单统计工具&a…

Python基础教程——20个让人眼前一亮的逻辑妙用!

文末免费赠精品编程资料~~ Python不仅仅是一种编程语言,它还是解决问题的艺术,充满了让人拍案叫绝的“小巧思”。通过这15个小技巧,你不仅能提升编程技能,还能让你的代码更加优雅、高效。让我们一探究竟吧! 1. 列表推…

Thinkphp校园新闻发布系统源码 毕业设计项目实例

Thinkphp校园新闻发布系统源码 毕业设计项目实例 校园新闻发布系统模块: 用户模块:注册,登陆,查看个人信息,修改个人信息,站内搜索,新闻浏览等功能, 后台管理员模块:会员…

挖矿宝藏之开发者模式

目录 一、开发者模式简介 二、启动方式 三、元素(Elements) 四、控制台(Console) 五、来源(Sources) 六、网络(Network) 七、性能(Performance) 八、…

谷粒商城实战(043集群学习-mysql集群-分库分表)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第364p-第p365的内容 分库分表 这种基本无人用 shardingSphere shard(碎片) sphere (球) sh…

基于Spring Boot+VUE论坛管理系统

1前台首页功能模块 论坛管理系统,在系统首页可以查看首页、公告、热门帖子、论坛新天地、新闻资讯、留言反馈、个人中心、后台管理、客服中心等内容,如图1所示。 图1前台首页功能界面图 用户登录、用户注册,在注册页面可以填写账号、密码、昵…

手写一个JSON可视化工具

前言 JSON 平时大家都会用到,都不陌生,今天就一起来实现一个 JSON 的可视化工具。 大概长成下面的样子: 树展示 相比于现有的一些 JSON 格式化工具,我们今天制作的这个小工具会把 JSON 转为树去表示。其中: 橙色标…

生命在于学习——Python人工智能原理(3.5)

三、深度学习 9、常见神经网络 常见的神经网络有卷积神经网络(AlexNet、VGGNet)、循环神经网络(RNN) 长短时记忆网络(LSTM)。 (1)AlexNet AlexNet于2012年由Hinton学生Alex提出&a…

DolphinScheduler日志乱码、worker日志太多磁盘报警、版本更新导致不兼容怎么办?

作者 | 刘宇星 本文作者总结了在使用Apache DolphinScheduler过程中遇见过的常见问题及其解决方案,包括日志出现乱码、worker日志太多磁盘报警、版本更新导致不兼容问题等,快来看看有没有困扰你想要的答案吧! DolphinScheduler集群环境有多…

背就有效!2024下《系统架构设计师》50个高频考点汇总

宝子们!上半年软考已经结束一段时间了,准备备考下半年软考高级-系统架构设计师的小伙伴可以开始准备了,毕竟高级科目的难度可是不低的,相信参加过上半年架构的小伙伴深有体会。 这里给大家整理了50个高频考点,涵盖全书…