设计测试用例的万能公式 + 6大具体方法 = 面试就像聊天?

news2025/4/13 2:47:51

目录

一、设计测试用例的万能公式

二、设计测试用例的具体方法

2.1、等价类

2.2、边界值

2.3、判定表(因果图的另一种形式)

 2.4、场景设计法

2.5、正交法(用的少,基本不可见)

2.4.1、使用allparis构建正交表

2.6、错误猜测法


一、设计测试用例的万能公式

面试的时候,一慌,什么都不会了?那么请你一定要记住以下万能公式,关键时候可保命!

万能公式:

功能测试 + 性能测试 + 界面测试 + 兼容性测试 + 易用性测试 + 安全性测试;

解释:

功能测试:在以后的工作中来自于需求文档,面试的时候功能测试用例来源于生活经验;

性能测试:考虑一些极端情况,如高并发量,响应时间等;

界面测试:工作中参考设计图,面试的时候我们可以对颜色、形状、大小、材质、文字、输入框、图片、下拉框...所有可以看到的元素进行分析;

兼容性测试:考虑不同的浏览器、不同版本、不同系统、不同数据的兼容性;

易用性测试:软件是否具备简单易上手的属性;

安全测试:隐私数据是否加密,例如:用户密码在界面展示、接口参数是否位明文、数据库对隐私数据是否加密、SQL注入、越权(水平越权:你访问到了你同事的隐私信息;垂直越权:你访问到了你上级的隐私信息);

示例:QQ登录界面的测试(以下内容建议多练)

那么问题来了:

        浏览器版本那么多,难道我们每一个都要测吗?当然不是,要测就测用户使用的最多的...

        QQ用户密码设置为6~18位,难道6、7、8、9....18每一位都要测一遍吗?如果范围改到6~10000,难道你也一个一个测吗?那么就需要引入我接下来要讲的测试用例的6大具体方法


二、设计测试用例的具体方法

2.1、等价类

        简而言之就是 分区/分块检测,从每一个区块选择一个进行测试代表这个区块的结果即可,这个区块就是等价类;等价类也分为两种,有效等价类(对需求文档有意义的集合)和无效等价类(对需求文档无意义的集合),一般是结合着这两类进行测试~ 不明白?看下面栗子!

例如:测试用户密码为6~18位

        利用等价类的方法,我们需要从6~18位中取出一位进行检测(有效等价类),比如取出8位,我们只需要输入8位密码进行检测即可;另外我们还需要从小于6位和大于18位中取出一位进行检测(无效等价类)即可,整理一下,步骤如下:

第一步,输入长度为6~18位的密码,假设是8位;

第二步,输入长度小于6为的密码,假设是1位;

第三步、输入长度为大于18位的密码,假设19位;

2.2、边界值

边界值指的是有效边界+无效边界;

例如:测试用户密码为6~18位

边界值:

6、18(有效边界)

5、19(无效边界)

不理解?看下图:

 例如:数字大于60

        那么他的边界值就是:60(无效边界),61(有效边界);

2.3、判定表(因果图的另一种形式)

        判定表法和因果图画法步骤差不多,只不过多了一步是“画因果图”这一步非常难(一般人画不出来),且没有一个明确且具体的画法;所以这里主要讲判定表法~用它一般也比较少,一般用于输入条件的组合对应不同的结果;

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

1、明确输入条件和输出条件;

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

3、画判定表;

4、根据判定表编写测试用例;

例如:当订单使用红包或者订单金额大于300,则该订单是优惠订单,否则就是不优惠订单

1、明确输入条件和输出条件:

输入条件:红包(编号A)、金额大于300(编号B)、订单已提交(编号C);

输出条件:有优惠(编号1)、无优惠(编号2);

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

确定输入输出之间所有可能的组合关系,最后根据组合(编号)给出对应结果,如下:

3、画判定表:(如下)

4、根据判定表编写测试用例:(如下)

 2.4、场景设计法

        场景设计法讲事件分为基本事件流和备选事件流,基本事件流就是我们原本按计划要进行的事情,备选事件流可以认为是意外情况;

例如:去ATM中取钱

编写测试用例:

1.基本事件流:先插卡,输入正确密码,选择取款功能...退卡;

2.备选事件流:

        (1) 插入后,卡被ATM卡住......退卡;

        (2) 插入后,输错密码......退卡;

        ......

后面的测试用例就是刚刚图中所画的流程;

2.5、正交法(用的少,基本不可见)

        正交法就是指从大量的实验中挑选出适量的、有代表性的点,依据“正交表”从而合理的设计出测试用例;

正交表的特性:

1、每一列中,不桶的数字出现的次数相等;

2、任意两列中数字的排列方式齐全而且均衡;

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

1、找出因素和水平;

2、生成正交表;

3、根据正交表来编写测试用例;

4、补充可能存在遗漏但是非常重要的测试用例;

例如:测试如下注册页面

第一步:找出因素和水平

        因素:姓名、电子邮箱、密码、确认密码、验证码;

        水平:填写、不填写;

第二步:使用allparis生成正交表(如何使用,后面有介绍)

(注意:使用allparis生成的正交表跟实际的正交表可能有出入,但是影响不大);

第三步,第四步、根据正交表编写测试用例,并补充可能存在的遗漏但是很重要的测试用例

2.4.1、使用allparis构建正交表

1.将水平和因素写入Excel(可以使用其他工具,但不推荐)

2.在allparis同级目录下创建一个新的txt文件,复制刚刚Excel表中的所写的信息,粘贴到你创建的xxx.txt文件中,保存(不要再做其他任何操作);

3.在cmd中使用allparis工具生成正交表

4.在目录中就可以查看到你刚刚生成的正交表

2.6、错误猜测法

        错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针 对性地设计测试用例的方法。

        这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。

        错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比 很高,被广泛应运于测试。 这个方法的缺点是难以系统化,并且过度依赖个人能力。

总的来讲,需要依赖测试人员的工作经验和积累

例如对登录功能进行测试:密码是否加密、考虑SQL注入问题、密码是否以明文进行传输......


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

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

相关文章

算法之动态规划理论

目录 前言 一个模型三个特征理论讲解 1.最优子结构 2.无后效性 3.重复子问题 一个模型三个特征实例剖析 两种动态规划解题思路总结 1.状态转移表法 2.状态转移方程法 四种算法思想比较分析 总结: 参考资料 前言 本篇博文主要讲解动态规划的理论&am…

行业分析| 交通综合执法对讲系统

随着社会的经济发展,人口的增加城市的不断壮大,城市交通情况越来越复杂,交警承担的执法任务越来越重,通信作为交警综合执法对讲调度的重要组成部分,也随之提出了更高的要求。综合执法对讲系统的出现使执法变得高效规范…

【Redis】高级进阶

🌟个人博客:www.hellocode.top🌟 🌟Java知识导航:Java-Navigate🌟 ⭐想获得更好的阅读体验请前往Java-Navigate 🔥本文专栏:《流行框架》 🌞如没有JavaWEB基础&#xff0…

【ZooKeeper】第三章 集群搭建

【ZooKeeper】第三章 集群搭建 文章目录【ZooKeeper】第三章 集群搭建一、ZooKeeper 集群介绍1.Leader 选举2.集群角色二、搭建 ZooKeeper 集群1.安装2.配置集群3.启动集群三、故障模拟一、ZooKeeper 集群介绍 1.Leader 选举 Serviceid:服务器 ID 比如有三台服务器…

分享84个NET源码,总有一款适合您

分享84个NET源码,总有一款适合您 链接:https://pan.baidu.com/s/1r7_yrTfQrg-5whL7AYJiLA?pwdeem6 提取码:eem6 import os from time import sleepimport requests from bs4 import BeautifulSoup from docx import Document from docx.sh…

iOS ReplayKit 屏幕共享,屏幕直播实现

使用replayKit iOS12 之后相关 api 完成系统/app 内 屏幕采集直播视频数据, 采用 socket进行进程间Broadcast Unload Extension 向 宿主 app 传输数据, 后台保活持续采集屏幕数据, 摄像头采集, 数据编码解码 编译环境 Xcode14.2, iOS12 系统屏幕数据采集app 内屏幕共享使用so…

FPGA与数字IC求职知识准备 - 数字电路知识总结

前言 本文整理了数字电路课程中的相关基本的知识点和较为重要的知识点,用于求职的数电部分的知识准备,差缺补漏。 二进制数的算术运算 无符号二进制数的算术运算 加法:同十进制加法,逢二进一,无符号二进制数的加法…

Redis源码篇(8)——集群模式

1、集群模式的启动和初始化 当开启了cluster-enabled,在初始化服务initServer方法中会调用clusterInit方法将redis带入cluster模式。 clusterInit void clusterInit(void) {int saveconf 0;//初始化clusterState结构 server.cluster zmalloc(sizeof(clusterSta…

LaTeX代码宏包listings的使用

LaTeX代码宏包listings的使用 文章目录LaTeX代码宏包listings的使用1 需求2 verbatim环境简介3 listings设置代码高亮4 代码样式和颜色5 为listings添加题注6 listings支持的语言格式7 附录 listings样式的自定义参数1 需求 LaTeX\LaTeXLATE​X适合用来进行结构化文档的编辑。如…

[5]. 最长回文子串

[5]. 最长回文子串题目算法设计:双指针算法设计:Manacher 算法题目 传送门:https://leetcode.cn/problems/longest-palindromic-substring/ 算法设计:双指针 检查回文串的通用解决方案是,双指针。 寻找回文串的思…

什么是地理围栏

一、地理围栏算法简介 地理围栏(Geo-fencing)是LBS的一种典型应用,就是用一个虚拟的栅栏围出一个虚拟地理边界。地理围栏更侧重于对区域边界的界定,不再是以某点为圆心向外等距离画圆,而是准确勾勒出小区、写字楼等特…

wpf实现FFmpeg获取摄像头实时画面

gitee地址如下源码地址如何获取摄像头验证码和ip首先获取摄像头底部的验证码及ip(测试使用的是萤石摄像头,需要PC下载萤石客户端查看ip)未连接之前可以通过VLC进行测试在左上角(媒体)--》(流)--》(网络&…

openGauss中Schema赋权小试

目录 概述 1.关于public的权限要点: 2.关于用户同名的schema的权限要点: 3.关于普通schema的权限要点: 概述 下面是openGauss官网对Schema的介绍: Schema又称作模式。通过管理Schema,允许多个用户使用同一数据库而…

MATLAB-二维线性插值运算

二维插值在图像处理和数据可视化方面得到了大量的应用,二维插值的基本原理与一维插值一样,但二维插值是对两个变量进行函数的插值。在MATLAB中,主要使用interp2()函数进行二维插值的实现,其调用格式如下,zi interp2(z,…

Nodejs也能做文本数据处理了,快来看看吧!

随着汉语言的广泛应用,中文信息处理成了一个重要的研究课题,常见于搜索引擎:信息检索、中外文自动翻译、数据挖掘技术、自然语言处理等领域。在处理的过程中,中文分词是最基础的一环。 nodejieba 简介 nodeJieba 是结巴中文分词…

安装thinkphp

[TOC]目录 1. 安装composer 方法:https://www.kancloud.cn/manual/thinkphp6_0/1037481 官网教程中安装composer 2. 配置文件 在命令行中 阿里云: composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 华为云&#x…

axios基础学习——通过 Vue + axios 获取接口数据的小demo

文章目录 📋前言 🎯关于axios概要 ❓什么是axios 🧩axios特性 🧩axios浏览器支持情况 🎯axios安装与使用 🧩axios请求方法 🧩axios的使用方法(以get为例子) &am…

[C语言]进一步的来了解指针(多多多图详解)

本文章进一步的来讲解指针,如果是第一次接触指针的可以先看一下对于指针的初步理解 : [C语言]初步的来了解一下指针(多图详解)_HY_PIGIE的博客-CSDN博客 目录 1.字符指针 2.指针数组 2.1指针数组:char*类型举例说明 2…

Thawte旗下通配符SSL证书都有什么区别

Thawte由南非Mark Shuttleworth创立,Thawte SSL证书产品占据了全球SSL数字证书市场的40%,是全球第三大数字证书颁发机构(CA)。随后VeriSign于2000年2月1日以5.75亿美元对Thawte换股完成收购,互相合作&#…

GDI对象泄漏导致程序UI界面绘制异常的问题排查

目录 1、问题说明 2、初步分析 3、查看任务管理器,并使用GDIView工具分析 5、采用历史版本比对法,确定初次出现问题的时间点,并查看前一天的代码修改记录 6、将修改的代码与测试现象结合起来,最终定位问题 7、事后的思考 8…