测试:设计测试用例

文章目录

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

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

概念

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

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

设计

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

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

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

  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才是管理员,其他都是无管理员

在这里插入图片描述

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

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

相关文章

MySQL:JDBC详解!

文章目录 📑JDBC简介📑通过代码使用JDBC的API☁️结语 📑JDBC简介 实际上在工作中,针对数据库的操作,很少会直接通过命令行/图形化客户端来操作数据库,更多的是通过代码(C、Java、Python、GO……

基于simulink的PEM燃料电池控制系统建模与仿真,对比PID,积分分离以及滑模控制器

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 PID控制器 4.2 积分分离PID控制器 4.3 滑模控制器 5.完整工程文件 1.课题概述 基于simulink的PEM燃料电池控制系统建模与仿真,对比PID,积分分离以及滑模控制器。 2.系统仿真结果 (完…

qt开发-10_LineEdit

QLineEdit 小部件是一个单行文本编辑器。行编辑允许用户使用一组有用的编辑函数输入和 编辑一行纯文本。包括撤消和重做、剪切和粘贴以及拖放。通过更改行编辑的 echoMode(),它 还可以用作“只写”字段,用于输入如密码等. 创建好项目后,进入 …

热重启(硬重启)获取Bitlocker密钥取证

计算机内存(条)在系统运行时存储了大量敏感信息,当断电后,内存中的数据荡然无存。反之,当一直通电的情况下,内存中的一些敏感数据一直存在。当然,正如某些人了解的,当断电后&#xf…

NeRF从入门到放弃5: Neurad代码实现细节

Talk is cheap, show me the code。 CNN Decoder 如patch设置为32x32,patch_scale设置为3,则先在原图上采样96x96大小的像素块,然后每隔三个取一个像素,降采样成32x32的块。 用这32x32个像素render feature,再经过CNN反卷积预测…

高考填报志愿(选专业),怎样找准自己的兴趣?

在很多的高考报考指南中,第一要点,都会建议我们根据自己的兴趣来选择自己的专业。很多人虽然是依据这条规则,选择了自己大学的专业。却依然在学习的过程中发现,好像自己对这个专业并不是那么的有兴趣。 甚至对专业学习深入了解之…

MySQL数据库笔记(二)

第一章 单行函数 1.1 什么是函数 函数的作用是把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在SQL中使用函数,极大地提高了用户对数据库的管理效率。 1.2 定义 操作数据对象。 接受参数返回一个结果。 只对一行进行…

探索计算机视觉(人工智能重要分支)的发展与应用

引言 在当今快速发展的科技时代,计算机视觉作为人工智能领域的重要分支,正日益成为各行各业不可或缺的关键技术。从简单的图像处理到复杂的智能系统,计算机视觉的发展不仅改变了我们看待世界的方式,也深刻影响着工业、医疗、交通等…

不同交换机之间相同VLAN间主机通信

1、搭建网络拓扑 搭建拓扑,分配IP地址,划分vlan,分配端口 2、配置交换机 //进入全局配置模式 Switch>enable Switch#config terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname SW1 …

如何级联移位寄存器(74HC595)

在这个项目中,我们将使用 74HC595 移位寄存器将 2 个移位寄存器级联在一起。这样级联移位寄存器现在可以控制 16 个输出。 当然您可以级联任意数量的移位寄存器。如果您要级联第三个移位寄存器,它可以控制 24 个输出。如果您级联第四个移位寄存器&#x…

Rxjava2最全面的解析

说到区别,可能有的小伙伴会问,我没看过rxjava1。可以直接看rxjava2么。个人觉得不必要,因为 rxjava2.x 是按照 Reactive-Streams specification 规范完全的重写的,完全独立于 rxjava1.x 而存在,它改变了以往 rxjava1的…

1999-2022年 297个地级市-医院卫生院数量及床位数量(数据收集)

全国297个地级市的医院卫生院数量的稳步增长是医疗事业发展的一个重要标志。政府的持续投入和对医疗设施的改善,不仅提升了医疗服务的硬件水平,也通过引进和培养医疗人才、优化服务流程,提高了医疗服务的整体质量。这些举措极大地增强了人民群…

WordPress项目教程:自动采集并发布,让你轻松实现网站内容更新

随着互联网的发展,越来越多的人开始关注自己的个人网站,通过网站展示自己的才华、分享知识、推广产品等。然而,个人网站的运营并非易事,尤其是内容更新方面。为了解决这个问题,今天我们将为大家推荐一款WordPress插件主…

测试辅助工具(抓包工具)的使用3 之 弱网测试

1.为什么要进行弱网测试? 1.带宽1M和带宽100M打开tpshop网站效果一样吗? 2.手机使用2G网络和使用3G网络打开京东的效果一样吗? 弱网环境下,出现丢包、延时软件的处理机制,避免造成用户的流失。 2.如何进行弱网测试&…

记一道MO数学练习题

手玩发现, 要么是行共线, 也就是说(1,1)填1之后,(1,4)要填1,(1,7)要填1, 事实上,可以给(1,x)&a…

YOLOv10目标检测算法的使用

目录 一、环境安装 1、创建虚拟环境 2、安装依赖 二、数据集准备 1、预训练权重 2、数据划分 3、建立数据集的yaml文件 三、训练 1、终端运行指令 2、建立一个 python 文件运行 四、验证 1、终端运行指令 2、建立一个 python 文件运行 五、模型推理 1、单张图片推…

AtCoder Beginner Contest 359(ABCDEFG题)视频讲解

A - Count Takahashi Problem Statement You are given N N N strings. The i i i-th string S i S_i Si​ ( 1 ≤ i ≤ N ) (1 \leq i \leq N) (1≤i≤N) is either Takahashi or Aoki. How many i i i are there such that S i S_i Si​ is equal to Takahashi? C…

基于IDEA的Maven(坐标信息介绍和编写)

这篇博客来学习和分析一下: " pom.xml " 所生成的最基本的信息。 之前的博客中讲到,学 Maven 就是学 " pom.xml " 的配置。后面也会围绕这个文件进行学习。 目录 一、分析 pom.xml 文件 (1)分析的 "p…

YOLOv9基础 | 实时目标检测新SOTA,手把手带你深度解析yolov9论文!

前言:Hello大家好,我是小哥谈。YOLOv9是Chien-Yao Wang等人提出的YOLO系列的最新版本之一(截止到目前,YOLOv10已发布),于2024年2月21日发布。它是 YOLOv7的改进版本,两者均由Chien-Yao Wang及其同事开发。本节课就以YOLOv9论文为基础带大家深入解析YOLOv9算法。🌈 …

React+TS前台项目实战(十五)-- 全局常用组件Table封装

文章目录 前言Table组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示 总结 前言 在这篇文章中,我们将对本系列项目中常用的表格组件Table进行自定义封装,以提高性能并适应项目需求。后期也可进行修改和扩展,以满足项目的需求。 Table组…