测试|测试用例方法篇

news2024/9/20 22:34:28

测试|测试用例方法篇

文章目录

  • 测试|测试用例方法篇
    • 1.测试用例的基本要素:测试环境,操作步骤,测试数据,预期结果…
    • 2.测试用例带来的好处
    • 3.测试用例的设计思路,设计方法,具体设计方法之间的关系
      • **设计测试用例工作展开流程/设计思路(基于需求的测试用例设计)**
    • 4.具体设计方法
      • 1.等价类法
      • 2.边界值法(补充)
      • 3.判定表法
      • 4.正交表法
      • 5.场景设计法
      • 6.错误猜测法
    • 设计实例
      • 等价类法
      • 边界值法
      • 判定表法
      • 正交表
      • 场景设计法
      • 错误猜测法

1.测试用例的基本要素:测试环境,操作步骤,测试数据,预期结果…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kW2F7S6P-1690688728706)(F:\typora插图\image-20230730081407621.png)]

注:这里是预期结果而非执行结果

2.测试用例带来的好处

一方面可以提高测试的效率,节省测试时间
另一方面测试用例是自动化测试用例的前提

3.测试用例的设计思路,设计方法,具体设计方法之间的关系

设计测试用例工作展开流程/设计思路(基于需求的测试用例设计)

​ 1.查看需求文档 2.梳理需求 3.根据文档针对需求设计用例
​ 然而,需求又可以分为两大类:功能性需求,非功能性需求
​ 其中功能性需求分为

1. 各功能单独测试(有业务限制)
2. 功能的交互(根据业务连)
3. 功能一致性
4. 功能的错误操作
5. 用户体验,操作的易用性

具体工作时可以根据功能模块划分和业务模块划分用户操作区域将功能模块划分,进行测试

非功能性需求分为:性能,安全性,可靠性,兼容性,易维护性,可移植性。每一类非功能特性测试都需要根据需求单独分析。他们之间可能会存在相互影响,如安全性越高,
就越有可能给易用性,性能带来更大的挑战

注:对于每个应用软件系统,非功能特性的质量需求都是存在的,但不同项目对各个非功能要求不同。
1.纯客户端(不能发)如word电脑自带播放器等,功能测试要求低,但兼容性稳定性可移植性要求高
2.客户端/服务端如qq等要求功能正确,稳定性能好,对性能安全兼容要求不高
3.大型复杂网络应用系如银行对功能性能安全兼容容错可靠性都有很高要求

4.具体设计方法

具体设计而言,头脑风暴法==》具体的设计方法

1.等价类法

依据需求,将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决不能穷举的问题。
在等价类思想中,我们一般将我们一般将输入域划分为有效等价类和无效等价类两个集合,其中有效等价类是满足用户需求的输入,集合无效等价类,是不满足用户需求的输入集合。
设计步骤:

  1. 充分理解需求
  2. 划分有效等价类和无效等价类
  3. 从有效等价类抽取其中一个数据进行设计测试用例,从无效等价类中抽取其中一个进行测试用例设计

2.边界值法(补充)

通常边界值分析法是对等价类划分法的补充,这种情况下,测试用例来自等价类的边界。
这种情况下设计步骤就是

  1. 充分理解需求
  2. 找出边界点
  3. 针对边界点设计测试用例
    其中上点是边界上的点,内点是边界内的点,离点是边界值附近的一个点,闭区间区间外距离上点最近的点,开区间区间内距离上点最近的点

3.判定表法

(一种表示逻辑判断的工具,和因果图起到的作用是一致的,因为因果图最后还是要转换成判定表所以这里我就直接理解成判定表法了)
设计步骤:

  1. 分析所有可能的输入和可能的输出
  2. 找出输入与输出之间的对应关系
  3. 设计判定表(用表格表示出来)
  4. 将判定表对应到每一个测试用例(对应表格用思维导图表示出来)

注:我们这里列的是测试点,但要求高的,需要写针对测试点补充测试要素

4.正交表法

(我的理解就是一般情况下的判定表法,因为输入输出比较多的时候,我们使用判定表法可能会耗费很多时间,这个时候使用正交表法就比较合适)
两个非常重要的概念:因素和水平

因素:输入变量。

水平:每个输入变量的取值。

两条性质:

1.每一列中每个数字出现的次数一样多

2.任何两列中有序数对出现的次数都一样多。
设计步骤

  1. 充分理解需求
  2. 确定因素和水平
  3. 画正交表
  4. 补充正交表
  5. 将正交表转化成测试用例
    这里在画正交表时一般借助allpairs工具,使用方法:
    1. 将因素和水平放到表格中,
    2. 将这个表格直接复制到txt文本中
    3. cmd进入allpairs安装路径下,输入文件名就会生成对应的正交
    4. 将对应的case转化成测试用例

5.场景设计法

其实就是在具体的业务场景下,根据事件流进行设计用例,其中事件流是同一事件不同触发顺序和处理结果形成的。
设计步骤

  1. 充分理解需求
  2. 确定主事件流
  3. 确定次事件流
  4. 每一个事件流就是一个测试用例

6.错误猜测法

依靠测试人员经验的设计方法

设计实例

等价类法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-srvuZ6mW-1690688728707)(F:\typora插图\image-20230730112718080.png)]

边界值法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gna9jKQt-1690688728708)(F:\typora插图\image-20230730112801927.png)]

判定表法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gpob1qmP-1690688728709)(F:\typora插图\image-20230730112809125.png)]

正交表

### 正交表法![在这里插入图片描述](https://img-blog.csdnimg.cn/7a28bafb64374560b6f35a85a2e767e4.png)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EdgHNhuA-1690688728709)(F:\typora插图\image-20230730112053484.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TZNNeD2x-1690688728710)(F:\typora插图\image-20230730111654929.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0EiI0TK7-1690688728712)(F:\typora插图\image-20230730111759149.png)]
这就是最后生成的正交表,其中~代表可以填写可以不填写。

因此最终可以生成8个测试点

场景设计法

[外链图片转存中...(img-e2eDHj9s-1690688728712)]

错误猜测法

只能依靠测试人员的经验。

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

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

相关文章

linux设备驱动的poll与fasync

什么是fasync 在 Linux 驱动程序中,fasync 是一种机制,用于在异步事件发生时通知进程。它允许进程在等待设备事件时,不必像传统的轮询方式那样持续地查询设备状态。 具体来说,当进程调用 fcntl(fd, F_SETFL, O_ASYNC) 函数时&am…

lib-flexible修改配置适配更多不同分辨率

找到设置宽度的地方 然后根据你的屏幕最大多大呀&#xff0c;最小多小呀设置一下 if (width / dpr < 1980) { width 1980 * dpr; } else if (width / dpr > 5760) { width 5760 * dpr; }

Python 教程之标准库概览

概要 Python 标准库非常庞大&#xff0c;所提供的组件涉及范围十分广泛&#xff0c;使用标准库我们可以让您轻松地完成各种任务。 以下是一些 Python3 标准库中的模块&#xff1a; 「os 模块」 os 模块提供了许多与操作系统交互的函数&#xff0c;例如创建、移动和删除文件和…

【Linux】进程篇Ⅱ:进程开始、进程终止、进程等待

文章目录 五、fork 函数&#xff0c;创建进程写时拷贝 六、进程终止1. 退出码2. 如何终止程序 七、进程等待1. 概念2. wait 函数waitpid 函数 &#x1f53a; 3. 阻塞等待 五、fork 函数&#xff0c;创建进程 #include <unistd.h>   pid_t fork(void);   返回值&#xf…

动态SQL 语句-更复杂的查询业务需求也能轻松拿捏

文章目录 动态SQL 语句-更复杂的查询业务需求动态SQL-官方文档为什么需要动态SQL动态SQL-基本介绍基本介绍动态SQL 必要性解决方案分析 动态SQL 常用标签动态SQL-案例演示if 标签应用实例where 标签应用实例choose/when/otherwise 应用实例forEach 标签应用实例trim 标签应用实…

【C语言进阶篇】 你真的学会数组了嘛?数组笔试题万字解析(上)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言&#x1f4ac; 数组笔试题解析&#x1f4ad; 一维数组笔试题✅ 一维数组笔试题解析✅ 一维数…

ShardingSphere 源码模块介绍

目录 Agent Db-Protocol Dialect-Exception Distribution Features Infra JDBC Kernel Mode Proxy Agent agent 模块提供了基于 Java Agent 实现的可观察框架 logging&#xff1a; 用于记录 ShardingSphere 的日志&#xff0c;支持文件metricrs&#xff1a;用于收集…

C++那些事之高性能SIMD

C那些事之高性能SIMD 最近在看相关向量化的内容&#xff0c;看起来有点头大&#xff0c;借此机会&#xff0c;学习一下高性能SIMD编程。 SIMD全称single-instruction multiple-data,单指令多数据。 在传统的计算机架构中&#xff0c;CPU一次只能处理一个数据元素。但是&#xf…

【机器学习】Feature scaling and Learning Rate (Multi-variable)

Feature scaling and Learning Rate 1、数据集2、学习率2.1 α \alpha α 9.9e-72.2 α \alpha α 9e-72.3 α \alpha α 1e-7 3、特征缩放3.1 特征缩放的原因3.2 Z-score 归一化3.3 预测3.4 损失等值线 导入所需的库 import numpy as np np.set_printoptions(precision…

【C++】类和对象-C++运算符重载

运算符重载 1.加号运算符重载 代码&#xff1a; #include <iostream> using namespace std; /******************************************/ //加号运算符重载class Person { public:int m_A;int m_B;//1、成员函数重载号(不能与下面方式2同时存在&#xff0c;否则代码报…

在docker中没有vi如何修改docker中的文件

今天在做学成在线的项目&#xff0c;遇到了一个问题&#xff0c;就是死活登不上xxl-job&#xff0c;按照之前遇到的nacos的问题&#xff0c;我怀疑很大概率是和当时的ip设置有关&#xff0c;不知道nacos的ip怎么修改的同学&#xff0c;可以看看这篇文章&#xff1a;关于docker中…

电子词典

项目要求&#xff1a; 1.登录注册功能&#xff0c;不能重复登录&#xff0c;重复注册。用户信息也存储在数据库中。 2.单词查询功能 3.历史记录功能&#xff0c;存储单词&#xff0c;意思&#xff0c;以及查询时间&#xff0c;存储在数据库 4.基于TCP&#xff0c;支持多客户…

【AI网站分享】

AI网站分享 1 AI应用2 AI 写作3 AI 编程4 AI设计5 AI作图6 AI训练模型7 AI影音编辑8 AI效率助手 网站链接&#xff1a; https://tools.haiyong.site/ai/ 网站中的内容大致可以分为八类&#xff1a;AI应用、AI写作、 AI 编程、 AI设计、 AI作图、AI训练模型、 AI影音编辑、 AI效…

线程属性——线程分离应用

文章目录 相关函数初始化释放线程属性的资源获取线程分离的状态属性设置线程分离的状态属性获取线程的栈的大小线程分离应用 相关函数 可以通过man pthread_attr_然后按两次table键查询和属性相关的函数 初始化 释放线程属性的资源 获取线程分离的状态属性 设置线程分离的状…

C# VS2022+WinForm+Oracle19.3+存储过程,SQL和代码分离

【我的目的】&#xff1a;SQL和代码分别存放在不同的地方&#xff0c;便于随时修改SQL的内容&#xff0c;也便于修改SQL的书写格式 方案1&#xff1a;把SQL存放在DataSet.xsd中实现SQL和代码分离 方案2&#xff1a;用存储过程实现SQL和代码分离 我最倾向方案1&#xff0c;利用…

链路 聚合

静态链路聚合&#xff1a;多数内网使用 。非物理直连建议与BFD联动 动态链路聚合LACP&#xff1a;是公有协议、内网、二层专线接口都能使用&#xff0c;现网多数使用此方式链路 聚合 PAGP&#xff1a;思科私有协议&#xff0c;只支持思科设备使&#xff0c;现网多数不用

Windows驱动开发

开发Windows驱动程序时&#xff0c;debug比较困难&#xff0c;并且程序容易导致系统崩溃&#xff0c;这时可以使用Virtual Box进行程序调试&#xff0c;用WinDbg在主机上进行调试。 需要使用的工具&#xff1a; Virtual Box&#xff1a;用于安装虚拟机系统&#xff0c;用于运…

谨防虚假发货!了解如何辨别真假发货单号

随着电子商务的发展&#xff0c;快递行业成为了一个不可忽视的重要环节。然而&#xff0c;虚假发货单号的出现给快递行业带来了一定的困扰。为了解决这个问题&#xff0c;一些快递批量查询高手软件开始应用于虚假发货单号的分析。本文将介绍这些软件如何分析出虚假发货单号&…

应用开发者的疑问:大模型是银弹吗?

被当成银弹的大模型 ChatGPT 火了之后&#xff0c;大模型似乎被当成了真正的银弹&#xff0c;所有的体验问题都想通过大模型解决&#xff1a; 能不能和大模型对话订机票&#xff1f;自然语言生成 SQL&#xff0c;简化报表分析工作&#xff1f;大模型帮老年人操作软件&#xff…

nosql之redis集群

文章目录 一.redis集群1.单节点redis服务器带来的问题2.集群redis3.集群的优势4.redis集群的实现方法5.redis群集的三种模式5.1 主从复制5.2 哨兵5.3 集群 二.Redis 主从复制1.主从复制概念2.主从复制的作用3.主从复制流程4.搭建Redis 主从复制4.1 安装 Redis4.2 修改 Redis 配…