测试篇(三):测试用例的万能公式、对水杯和登录页面设计测试用例、测试用例的设计方法

news2025/1/13 9:45:29

目录

  • 一、测试用例的万能公式
  • 二、对登录页面设计测试用例
  • 三、测试用例的设计方法
    • 3.1 基于需求的设计方法
    • 3.2 等价类
    • 3.3 边界值
    • 3.4 判定表
    • 3.5 正交排列
    • 3.6 场景设计法
    • 3.7 错误猜测法
  • 四、面试真题

一、测试用例的万能公式

首先,为"水杯"设计一个测试用例,我们可能会想到水杯是否可以盛水、水杯是否漏水、水杯携带是否方便、水杯是否保温、水杯的形状和外观是否符合用户预期…但这些用例是我们想一个写一个的,并不是按照某个具体步骤详细而全面的来设计测试用例。因此学会万能公式对我们设计测试用例将很有帮助
测试用例的万能公式:功能测试+性能测试+界面测试+兼容性测试+易用性测试+安全测试

  • 功能测试:对产品的功能设计测试用例(来源是需求文档/日常生活经验)
  • 性能测试:功能测试没有问题不代表性能好,考虑极端情况(高并发量、响应时间等)
  • 界面测试:界面中每个元素的大小、颜色、材质、形状、页面跳转、文字错别字…都需要进行测试(以界面设计图为依据)
  • 兼容性测试: 软件的不同版本是否兼容、不同浏览器、不同的系统版本、数据兼容性…
  • 易用性测试:产品是否具备简单易上手的属性
  • 安全测试:用户的隐私数据是否加密(注册账号时账号和密码在接口传输时是否加密)、是否存在SQL注入问题、越权问题

【SQL注入问题】

select * from info where id=1 or 1=1; 这条SQL语句的结果是返回所有的用户信息

【越权问题】

越权又分为垂直越权和水平越权
垂直越权是指,比如在一个教务系统中,有教师和学生不同的身份,教师可能有布置作业的功能,学生没有作业的功能,但如果学生也能进行布置作业,那么这就属于是垂直越权
水平越权是指,学生有张三和李四,张三不能进入到李四的界面中进行操作,但如果张三可以操作李四的界面,那这就是水平越权

在学完万能公式之后,借助万能公式对"水杯"进行设计测试用例

在这里插入图片描述

【设计测试用例一定是越多越好吗?】

不是的,测试用例能够提高质量覆盖率才是最好的

二、对登录页面设计测试用例

对下面的这个登录页面设计测试用例:
在这里插入图片描述
在这里插入图片描述

三、测试用例的设计方法

根据万能公式我们设计出的测试用例是比较笼统的,例如对登录页面设计的测试用例,其中一个是测试账号和密码的长度是否符合规则,但是"长度"我们并没有真正的指定,但当我们需要具体的测试数据时,就应该给出具体的数值,此时就要用到测试用例的设计方法

3.1 基于需求的设计方法

基于需求文档来设计测试用例,和根据万能公式设计类似

3.2 等价类

比如,有一个需求是用户的密码是6-12位,测试的时候该如何设计测试数据呢?
有的同学可能会说,穷举6,7,8,9,10,11,12都测试一下,但如果当我们的需求变为用户的密码是6-1000000位,此时使用穷举法就不现实了。使用等价类的方法可以很好的解决这个问题。


依据需求将输入划分为若干个等价类,从等价类中选出一个测试用例,如果该用例通过,就认为其所属的等价类测试都通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了穷举不过来的问题

  • 有效等价类:对于程序规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了说明书中所规定的功能和性能
  • 无效等价类:根据需求说明书,不满足需求的集合

使用等价类设计测试用例的步骤:

  1. 划分等价类

需求是用户的密码是6-12位,有效等价类是:6-12,无效等价类是小于6位和大于18位

  1. 编写测试用例

输入长度是6-12的密码,具体数据选为10位
输入长度小于6位的密码,具体数据为3位
输入长度大于12位的密码,具体数据为30位

对于需求是到超市购买水果,包括苹果、桃子、梨

  • 有效等价类:有三个,分别时苹果、桃子、梨,也就是说要分别测试这三个
  • 无效等价类:香蕉、橘子、水、啤酒…

3.3 边界值

边界值法是在等价类的基础上,衍生出的一种设计测试用例的方法

对于用户的密码是6-12位这个需求来说:

  • 有效边界值是:6,12
  • 无效边界值是:5,13

对于成绩大于90可以获奖这个需求来说:

  • 有效边界值是:91
  • 无效边界值是:90

对于长度时6-10位的单精度浮点型数据的需求来说:

  • 有效边界值:
  • 无效边界值:

3.4 判定表

对于判定表来说,使用的场景比较少

判定表(Decision table)是另一种表达逻辑判断的工具。与结构化语言和判断树相比,判断表的优点是能把所有条件组合充分地表达出来;其缺点是判定表的建立过程较烦杂,且表达方式不如前两种简便。判定表在用于知识表达中,有许多其他方式所达不到的作用。
在这里插入图片描述
使用场景:输入条件的组合对应不同的结果

判定表设计测试用例的步骤:

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

现有需求:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。

  1. 确认输入和输出条件

    输入条件:金额大于300(A)、红包(B),订单已提交(C)
    输出条件:有优惠(1)、无优惠(2)

  2. 找出输入和输出条件之间的关系

在这里插入图片描述

  1. 画判定表

在这里插入图片描述

  1. 根据判定表编写测试用例
  • 有红包并提交订单,该订单为优惠订单
  • 金额大于300并提交订单,该订单为优惠订单
  • 金额大于300且有红包,同时提交订单,该订单为优惠订单

在大部分书籍或文章中给的都是因果图法,因果图法和判定表法的步骤几乎相同,只不过因果图法必判定表法多了一步画因果图

3.5 正交排列

正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。当因素过多时,如果使用判定表法设计测试用例就变的不现实了,而正交法的目的是为了减少用例数目,用尽量少的用例覆盖输入的两两组合。


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


举例理解试验、因素、水平的含义,一次试验代表一次测试用例,一辆车从出发地到目的地耗时多久这件事,受到很多因素影响,有下班的高峰期、限号、天气、地段、道路施工、行驶人的驾车技能、车况等,对于下班高峰期这个因素来说,是高峰期与不是高峰期是两个水平

在这里插入图片描述
正交表的性质:

  1. 每一列中,不同的数字出现的次数相等。例如在两水平正交表中,任何一列都有数码“1”与“2”,且任何一列中它们出现的次数是相等的;如在三水平正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出现数均相等。
  2. 任意两列中数字的排列方式齐全而且均衡。例如在两水平正交表中,任何两列(同一横行内)有序对子共有4种:(1,1)、(1,2)、(2,1)、(2,2)。每种对数出现次数相等。在三水平情况下,任何两列(同一横行内)有序对共有9种,1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每对出现数也均相等。

根据正交表设计测试用例的步骤:

  1. 找出因素数和水平数
  2. 生成正交表(借助工具allpairs)
  3. 根据正交表来编写测试用例
  4. 补充可能存在遗漏但非常重要的测试用例

案例:

在这里插入图片描述

  • 因素数:姓名、电子邮箱、密码、确认密码、验证码
  • 使用allpairs生成正交表:
    (1)使用excel进行编写
    在这里插入图片描述 (2)保存到一个txt文件中在这里插入图片描述
    (3)将该txt文件保存到paris目录下
    在这里插入图片描述
    (4)输入命令
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 根据正交表生成测试用例
  • 补充可能遗漏但很重要的测试用例:全都不填写

3.6 场景设计法

场景设计法中涉及到两个概念:基本事件流和备选事件流。用下面的一个例子进行解释,以去ATM取款机取款的流程为例:
在这里插入图片描述
除了基本事件流以外,可能出现的以外情况称之为备选事件流

根据上图编写测试用例:

  1. 基本事件流用例:插卡、输入密码、输入金额、取钞、退卡
  2. 备选事件流的用例:
    (1)插卡、输入密码、密码错误、重置密码、输入金额、取钞、退卡
    (2)插卡、输入密码、输入金额、金额不是整数、重新输入、取钞、退卡

3.7 错误猜测法

错误猜测法是对被测软件设计的理解,过往经验以及个人直觉,推测软件可能存在的缺陷,从而针对的设计测试用例的方法,更依赖测试人员的工作经验和积累。
错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比很高,被广泛应运于测试。
这个方法的缺点是难以系统化,并且过度依赖个人能力。

四、面试真题

某公司招聘测试工程师时,有一道这样的笔试题:”某手机软件有用TF卡导出数据的功能,请写出测试此功能点的思路”
在这里插入图片描述

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

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

相关文章

计算机网络基础(二)

文章目录1. 应用层1.1 定制应用层协议1.2 网络版计算器实现1.3 应用层细分1.4 HTTP协议1.4.1 认识网址(URL)1.4.2 HTTP协议简易了解1.4.3 简易版HTTP服务器1.4.4 HTTP请求报文详解1.4.5 响应报文1.4.6 HTTP的一些安全问题1.5 HTTPS协议1.5.1 HTTPS和SSL/TLS1.5.2 短链接和长链接…

【Java|golang】1802. 有界数组中指定下标处的最大值---双指针

给你三个正整数 n、index 和 maxSum 。你需要构造一个同时满足下述所有条件的数组 nums&#xff08;下标 从 0 开始 计数&#xff09;&#xff1a; nums.length n nums[i] 是 正整数 &#xff0c;其中 0 < i < n abs(nums[i] - nums[i1]) < 1 &#xff0c;其中 0 &l…

2023年最新Python常见编程面试题(1)精选30个题目附答案

2023年最新Python面试题&#xff08;1&#xff09;之基础篇精选1.统计字符串中字符出现的次数2.获取字典key值键中小写字母对应键值对3.将字典中key变小写4.更改字典value值5.将cookies变成字典形式6.有如下字符串username把它转换成为UserName7.分别求出奇数和偶数把奇数偶数存…

NLP | 打造一个‘OpenAI智能’机器人,只需要五分钟

借用openai api,做一个聊天机器人&#xff0c;别去openai主页啦~Step 1.登录OpenAI账号网站&#xff1a;Overview - OpenAI APIStep 2.生成API key点击右上角的个人个人账户-> 点击 View API keys点击生成一个秘钥&#xff08;Create new secret key&#xff09;,并且复制St…

GameFrameWork框架(Unity3D)使用笔记(九) AssetBundle和游戏打包

目录 前言&#xff1a; 整个流程&#xff1a; 一、配置路径 二、打包 三、初始化资源 四、测试打包 前言&#xff1a; 如果使用了GameFrameWork框架的话&#xff0c;你会发现你点击Build And Run按钮打包运行大概是运行不起来的。本篇就讲了怎么打包游戏运行。 我觉得我对…

什么是YOLOR?

简述YOLOR 是一种用于对象检测的最先进的机器学习算法&#xff0c;与 YOLOv1-YOLOv5 不同&#xff0c;原因在于作者身份、架构和模型基础设施的差异。YOLOR 代表“你只学习一种表示”&#xff0c;不要与 YOLO 版本 1 到 4 混淆&#xff0c;其中 YOLO 代表“你只看一次”。 YOLO…

Docker的常用命令

文章目录 目录 文章目录 前言 一、帮助命令 二、镜像命令 1.查看镜像 2.搜索镜像 3.下载镜像 4.删除镜像 三、容器命令 1.启动容器 2.查看容器 3.退出容器 4.删除容器 5.启动和停止容器 四、常用的其它命令 后台运行 查看日志 查看容器中进程的信息 查看镜像的元数据…

lego-loam学习笔记(一)

前言&#xff1a; 主要记录配置编译lego-loam源码时遇到的问题和解决的方法。 系统&#xff1a;ubuntu18.04 一、安装gtsam 因为系统是18.04所以不需要作很大的更改&#xff0c;按照官网的doc一步一步的来就行了。 根据官网&#xff1a; GitHub - RobustFieldAutonomyLab…

DlhSoft Gantt Chart Light Library自定义的网格列

DlhSoft Gantt Chart Light Library自定义的网格列 Improved the loading of Microsoft Project XML files and the exporting of images from ScheduleChartDataGrid.Added new TotalResourceEffort and TotalResourceCompletedEffort properties to compute the real effort …

MySQL数据库数据动态监控(canal+Kafka)

参考资料: 参考文章https://gper.club/articles/7e7e7f7ff3g59gc6g6d canal官网 https://github.com/alibaba/canal

JavaWeb项目中添加live2d模型

前言&#xff1a;之前个人博客中配置的live2d模型的API失效了&#xff0c;所以重新折腾了一下&#xff0c;在自己服务器配置了 live2d 的 API&#xff0c;在此记录一下 JavaWeb项目中添加live2d模型 之前在个人博客中使用的 live2d 模型一直用的是网上一个大佬免费提供的 API …

Mybatis 的中高级特性使用

简介&#xff1a; MyBatis 的真正强大在于它的语句映射&#xff0c;这是它的魔力所在。由于它的异常强大&#xff0c;映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比&#xff0c;你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成…

小学生编程一些log

家里孩子也逐渐开始学习编程了&#xff0c;这里是一些经验积累&#xff0c;log下&#xff0c;希望能节省一些大家的探索时间&#xff1b; 方块编程 开始起手是一些scratch类的编程&#xff0c;使用方块类的&#xff0c;网课就可以&#xff0c;我这里尝试的是核桃编程&#xff…

蓝桥杯2020省赛python

蓝桥杯2020省赛Python 第一题&#xff1a;门牌制作 用了一个时间复杂度是n的算法&#xff0c;反正是填空题也不会出现TLE的事&#xff0c;只要别太离谱就行了。 利用python 的count函数 res 0 for i in range(1,2021):i str(i)res i.count(2) print(res)答案是2 第二题&…

【目标检测论文解读复现NO.26】基于改进YOLOv5s网络的实时输液监测

前言 此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

115、【回溯算法】leetcode ——216.组合总和III:回溯法+剪枝优化(C++版本)

题目描述 原题链接&#xff1a;216.组合总和III 解题思路 整体回溯法思路类似于 77. 组合&#xff08;回溯法剪枝优化&#xff09;&#xff0c;与之不同的是&#xff0c;需要多一个相加和为n的判定条件&#xff0c;可以让每次传入数的时候进行n - i&#xff0c;直至找到n 0时…

CAPBase理论

一、CAP 理论CAP 理论指出对于一个分布式计算系统来说&#xff0c;不可能同时满足以下三点&#xff1a;一致性&#xff1a;在分布式环境中&#xff0c;一致性是指数据在多个副本之间是否能够保持一致的特性&#xff0c;等同于所有节点访问同一份最新的数据副本。在一致性的需求…

英飞凌TC3xx系列介绍01-GTM系统介绍

本文框架1. 本系列前言2. GTM模块系统介绍2.1 GTM模块常用缩略语3. 系列介绍规划1. 本系列前言 英飞凌TC3xx是英飞凌AURIX 2G系列单片机&#xff0c;该系列单片机是32位微控制器&#xff0c;具有多个TriCore CPU、程序及数据存储器、总线、中断系统、DMA及功能强大的外围设备。…

linux基本功系列之su命令

文章目录一. su命令介绍二. 语法格式及常用选项三. 参考案例3.1 切换到root用户3.2 切换到指定用户3.3 不切换成root&#xff0c;但执行root才能执行的命令总结前言&#x1f680;&#x1f680;&#x1f680; 想要学好Linux&#xff0c;命令是基本功&#xff0c;企业中常用的命令…

【MySQL】第十部分 常用的聚合函数

【MySQL】第十部分 常用的聚合函数 文章目录【MySQL】第十部分 常用的聚合函数10. 常用的聚合函数10.1 MIN和MAX函数10.2 COUNT函数10.3 AVG和SUM函数10.4 GROUP BY10.5 HAVING总结10. 常用的聚合函数 定义: 对一组数据进行汇总的函数&#xff0c;输入的是一组数据的集合&…