软件测试用例的设计以及分类

news/2024/5/9 19:36:29/文章来源:https://blog.csdn.net/weixin_53946852/article/details/130946066

文章目录

  • 测试用例设计
    • 1.测试用例
    • 2.设计测试用例的方法
      • 1) 等价类
      • 2) 边界值
      • 3) 判定表法
      • 4) 正交法
      • 5) 场景设计法
      • 6) 错误猜测法
    • 3. 测试分类
      • 1) 按测试对象划分
      • 2) 按是否查看代码划分
        • 黑盒测试
        • 白盒测试
        • 灰盒测试
        • 为什么不直接使用灰盒测试
        • 常见的测试方法有哪些?哪些方法用的多?
      • 3) 按开发阶段划分
        • 单元测试
        • 集成测试
        • 冒烟测试
        • 系统测试
        • 回归测试


测试用例设计

1.测试用例

设计一个测试用例可以采取以下几个方面来进行设计

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

在这里插入图片描述

假设使用水杯测试用例和注册登录测试用例做简单对比

在这里插入图片描述

2.设计测试用例的方法

基于需求进行测试用例的设计:需求分析、需求有哪些功能、设计测试点、设计测试用例

假设软件需求是:提示用户名为6到15个文字。

我们可以穷举测试用例,从0到16开始穷举,如果测试通过,则认为功能符合需求要求。但如果姓名长度是6到200位,该如何设计测试用例呢?显然穷举法是不行的。

1) 等价类

等价类的思想是:根据需求将输入分成几个若干个等价类,从等价类中选取一个测试用例进行测试,如果测试通过则认为该测试用例所在的等价类是通过的。

等价类就是分区分块,使用较少的测试用例到到符合的系统测试覆盖。

等价类又划分为有效等价类无效等价类

  • 有效等价类:针对需求来说是有效且有意义的数据构成的集合
  • 无效等价类:针对需求来说是无效且没有意义的数据构成的集合

根据等价类划分测试用例的步骤:

  1. 确认有效等价类和无效等价类
  2. 编写测试用例

需求:用户长度为6~200位,应该如何设计测试用例。

  1. 确定有效等价类和无效等价类
    • 有效等价类:6~200
    • 无效等价类:小于6大于200
  2. 编写测试用例

在这里插入图片描述

又或者是针对密码为6到20位来设计无效等价类?

  • 长度设计:小于6或者大于20
  • 根据类型:数字、字符串、特殊字符等等

2) 边界值

边界值法通常是对等价类的补充

设计边界值的测试用例时需要加上:边界值+次边界值

假设有某一个需求:活动截止的日期是5月23日(acEndtime)

时间的次边界值就得设置为:00:00:00和23:59:58

比如1的次边界值为:0和2

-1的次边界值为:-2和0

在这里插入图片描述

3) 判定表法

适用场景:针对不同的输入条件之间的组合对应不同的输出结果

判定表法是一种逻辑判断工具

假设有需求:订单已提交,订单合计金额大于300或者订单有红包,则认为该订单属于有优惠的订单,否则属于没有优惠的订单。

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

  1. 找出输入条件和输出条件

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

  3. 画出判定表

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

  5. 针对上述去求确定输入条件和输出条件

    • 输入条件:金额大于300(A)、有红包(B)、订单已提交©
    • 输入条件:1有优惠、2无优惠
  6. 找出输入条件和输入条件之间的关系

    AC	BC	ABC	C	A	B	AB 非ABC
    1	1	1	2	2	2	2	2
    
  7. 画判定表

在这里插入图片描述

  1. 根据判定表来编写测试用例

    • 有红包、金额不大于300、订单已提交,结果为有优惠
    • 无红包、金额大于300、订单已提交。结果为有优惠
    • 有红包、金额大于300、订单已提交,结果为有优惠
    • 无红包、金额不大于300,订单已提交,结果为无优惠
    • 无红包、金额大于300、订单未提交,结果为无优惠
    • 有红包、金额不大于300、订单未提交、结果为无优惠
    • 有红包、金额大于300、订单未提交,结果为无优惠
    • 无红包、金额不大于300、订单未提交,结果为无优惠

有一个步骤叫根据因果图画判定表法,因为因果图画判定表很多余,而且因果图实际在设计测试用例的时候并没有什么意义,而且抽象。

4) 正交法

要使用正交法就需要用到正交表:

  • 因素数:输入条件
  • 水平数:输入条件对应的结果(不是输出条件)

正交表的特性:

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

需求:用户注册信息填写(姓名、电子邮箱、密码、确认密码、验证码)

  • 因素数:姓名、电子邮箱、密码、确认密码、验证码
  • 水平数:填写、不填写

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

  1. 找到因素数和水平数
  2. 用allpartis工具来生成正交表
  3. 根据正交表来编写测试用例
  4. 补充测试用例

通过allpartis来生成测试用例

  1. 将因素数和水平数写入Excel

在这里插入图片描述

  1. allparis目录下创建一个新的文本文件,复制Excel中的因素数和水平数直接粘贴到文本中,直接保存

在这里插入图片描述

使用alparis命令来生成正交表文件

在这里插入图片描述

  1. 最后完成

在这里插入图片描述

  1. 再根据正交表编写测试用例

注意,使用allpairs生成的正交表可能和实际的正交表文件可能不一样,但不影响我们设计测试用例

在这里插入图片描述

  • 姓名、电子邮箱、密码、确认密码、验证码全部填写
  • 填写姓名,其它电子邮箱、密码、确认密码、验证全都不填写
  • 不填写姓名,填写电子邮箱、不填写密码、填写确认密码、不填写验证码
  • 不填写姓名、不填写电子邮箱、填写密码、不填写确认密码、填写验证码
  • 填写姓名、填写电子邮箱、填写密码、不填写确认密码、不填写验证码
  • 填写姓名、不填写电子邮箱、不填写密码、填写去认密码、填写验证码

5) 场景设计法

场景设计法主要分为:基本事件流和多个备用事件流

以ATM取款为例子

最基本的事件流

  1. 插卡
  2. 输入密码
  3. 选择对应业务
  4. 执行对应业务
  5. 出钞票

备用事件流

  • 密码输入次数?
  • 取款金额限制?
  • 机器故障?

在这里插入图片描述

编写测试用例

  1. 基本事件流
    • 插入银行卡
    • 输入正确的秘密
    • 选择取款业务
    • 选择小于5W,且金额是100的倍数
    • 等待出钞(取钞票)
    • 最后出卡
  2. 备用事件流
    • 插入银行卡,第一密码输入错误,第二次输入正确,选择了小于5W的金额且是100的倍数,等待出钞取钞,最后退卡
    • 插入银行卡,前两次密码输入错误,第三次输入正确,选择取款,选择了小于5W的金额且是100的倍数,等待取钞票,然后退卡。
    • 等类似测试用例…

6) 错误猜测法

这个设计测试用例的方法其实是依据测试人员的工作经验和积累。

3. 测试分类

1) 按测试对象划分

  1. 界面测试

    • 界面测试也叫做UI测试,界面测试参考UI设计图。
    • 非软件类界面测试:颜色、大小、材质、整体是否美观
    • 软件类界面测试:输入框、按钮、文字、图片的尺寸、颜色、形状、整体适配、清晰度等
    • 验证整个页面的排版是否合理,图片展示是否符合用户需求
  2. 可靠性测试

    • 可靠性一般是指程序正常向用户提供软件服务的时间占总时间的百分比
  • 可靠性 = = =正常运行时间 / / /(正常运行时间+非正常运行时间) ∗ 100 *100% 100
    • 可用性指标一般要求达到4个或者5个 9 9 9,比如 99.99 99.99% 99.99或者 99.999 99.999% 99.999
    • 系统的非正常运行时间可能是由硬件、软件、网络故障或任何其它因素照成的,它们可能让系统停止工作
  1. 容错性测试

    • 容错性测试是指系统能够处理异常,用户的错误而不至于系统奔溃,从而能够提高系统的可用性
    • 比如说输入异常数据或者进行一些异常的操作,如果系统的容错性好,系统就会内部过滤掉,而不会导致系统出错或者奔溃
    • 或者通过各种手段,让软件强制性的发生故障,然后检验系统的数据是否丢失,系统和数据是否能够快速的恢复
  2. 可靠性和容错性的区别?

    • 假设有一个服务器集群有多台服务器
    • 突然有一台服务宕机了,但没有影响用户的使用,这就是集群容错性好的表现
    • 同样这台宕机的服务器就是不可靠的表现
  3. 文档测试

    • 通常来说文档测试是在需求评审的时候由测试人员进行需求分析
    • 文档测试关注的是文档的正确性、完整性、一致性、易用性
  4. 兼容性测试

    • 浏览器的兼容性(Chrome、Firefox等)
    • 平台兼容性(windows、Linux、Mac)
    • 自身兼容性:浏览器版本(Chrome 100~113),多个版本的基本功能都是可以使用的
    • 其它平台:安卓手机/iphone 的显示功能是否正常
  5. 安装卸载测试

    • 软件的不同的安装和卸载方式
    • 在不同的系统、版本下安装
    • 安装或卸载是否可以暂停或取消
    • 安装空间不足的时候是否有提示
    • 是否可以正常卸载和支持其它卸载方式
    • 卸载安装是系统出现问题,软件是否可以正常应对,比如死机、断电。
  6. 易用性测试

    • 软件需要具备简单易上手的属性
  7. 安全测试

    • SQL注入
    • XSS漏洞
    • 越权(垂直越权、水平越权)
  8. 性能测试

    • 资源泄露
    • 若果对文件进行操作忘记close就会造成文件资源泄露
    • 资源瓶颈(CPU、内存、网络、线程死锁等)
  9. 内存泄露测试

    • 比如分配完内存未回收,或者程序写法有问题导致内存泄露
    • 可以通过工具检测:静态扫描工具
    • 人工检查:查看代码来查找

2) 按是否查看代码划分

黑盒测试

黑盒测试,把代码看成一个黑匣子,不关心代码的内部结构和内部特性,只关心软件的功能是否符合产品规格说明书的需求。黑盒测试又可以称为数据驱动测试或者功能测试。

常见的黑盒测试设计测试用例的方法:等价类、边界值、判定表、正交法、场景法、错误猜测法等

白盒测试

白盒测试称为结果测试或者逻辑驱动测试。白盒测试的方法,检测程序的内部实现、检查程序的运行状态是否符合预期。

常见的白盒测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆、路径覆盖等

灰盒测试

灰盒测试介于两者之间,既要关心内部结构和内部特性,还要关心功能是否符合要求。灰盒测试通常用在集成测试中。

为什么不直接使用灰盒测试

灰盒测试没有白盒测试详细、完整,黑盒测试是覆盖产品功能范围最广的测试。所以灰盒测试是不能取代黑盒测试和白盒测试。但是黑盒测试可以去掉灰盒测试,但是并不建议这么做,因为这样做需要很大的代码量,需要设计非常非常多的测试用例。

常见的测试方法有哪些?哪些方法用的多?

常见的有白盒测试和黑盒测试,在工作中需要根据实际情况来结合白盒测试和黑盒测试,通常来说测试人员使用黑盒测试方法相对要多一点。

3) 按开发阶段划分

单元测试

单元测试是针对系统最小单元进行测试(最小单元是人为规定的)

集成测试

完成单元测试后,将模块和模块之间进行集成测试,按照功能来进行测试

冒烟测试

冒烟测试由测试人员来进行执行,检查系统主要功能和主要的流程是否正常,评估软件/系统是否具备可测试的条件/可测试的标准。如果冒烟测试通过则测试人员进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试。

系统测试

集成测试完成后,测试人员准备项目环境,将程序看成一个整体,对程序/系统进行系统测试,保证系统功能符合产品规格说明书的要求。其实冒烟测试和回归测试都是属于系统测试的一部分。

回归测试

对历史版本、历史功能进行测试,保证功能是符合要求的。

随着功能迭代越来越多,版本越来越多,回归测试的难度相对来说大一些,需要借助自动化测试来进行回归测试。


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

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

相关文章

API接口的重要性和好处|附加淘宝api接口展示案例|商品数据采集演示

随着互联网的发展,API接口已经成为许多企业进行信息交流和数据管理的重要工具。通过API接口,企业之间能够快速、可靠地进行数据传输和信息共享,从而提高了企业的生产效率和服务质量。以下是API接口的重要性和好处的文章: 1.提高生…

智慧工厂~经典开源项目数字孪生智慧工厂——开源工程及源码

以领先的数字孪生技术为基础,全面打造智慧工厂。现有云南某大型汽车加工厂工程和源码免费赠送! 项目介绍 智慧工厂基于数字孪生技术创建了一个真实的三维模型场景。通过对传感器和机器的数据采集、分析处理,实时监控各生产环节,优…

软考A计划-试题模拟含答案解析-卷十三

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

何时加索引,性别字段和逻辑删除字段应不应该加

首先哪些地方加索引(按照sql执行顺序写) 1、from表扫描连接处索引 2、where后条件去走索引 3、group by加索引 4、select查询不用加 5、order by排序加索引 (对于第四点,覆盖索引:查询的字段都被索引覆盖,…

QT(QPainter画圆弧)

文章目录 前言一、QPainter画圆弧方法二、使用示例三、画一个彩色环总结 前言 本篇文章给大家介绍一下如何使用QPainter来画圆弧。 一、QPainter画圆弧方法 drawArc() 函数是 Qt 绘图类库中的一个函数,用于在画布上绘制圆弧。可以通过设置起点角度和圆弧弧度来控…

Flink从入门到精通之-12Flink CEP

Flink从入门到精通之-12Flink CEP 在 Flink 的学习过程中,从基本原理和核心层 DataStream API 到底层的处理函数、再到应用层的 Table API 和 SQL,我们已经掌握了 Flink 编程的各种手段,可以应对实际应用开发的各种需求了。 在大数据分析领域…

「从零入门推荐系统」19:HM推荐系统代码实战案例

作者 | gongyouliu 编辑 | gongyouliu 我们在上一章中利用Netflix prize数据集讲解了最基础、最简单的一些推荐系统召回、排序算法,大家应该对怎么基于Python实现推荐算法有了一些基本的了解了。接着上一章的思路,本章我们会基于一个更复杂、更近代一点的…

Android studio 环境安装

1. Java JDK安装 https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe 下载jdk-17 并安装 安装完成后设置环境变量 #新增环境变量JAVA_HOME C:\Program Files\Java\jdk-17#Path 环境变量添加 %JAVA_HOME%\bin %JAVA_HOME%\jdk\bin#新增环境变量CLASSPAT…

Zabbix从入门到精通以及案例实操系列

1、Zabbix入门 1.1、Zabbix概述 Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和…

JAVA开发(手工处理数据库表数据的一些示例算法)

背景: 在项目开发中,有时候需要手动处理一下数据库表的数据。涉及到数据得到备份、恢复,清洗,计算,合并等操作。 举例记录一下最近对数据的一些处理过程。 1、对数据表进行数据量统计 select count(*) from table…

python 自动编译VS项目

目录 一、python自动编译项目 1、环境变量 1) CMAKE 2)VS 2、CMAKE 生成VS项目 1) cmake 命令介绍 2)python 调用cmake 命令 3、devenv编译VS项目 1) devenv介绍 2)devenv命令行开关 3) 自动编译VS项目 一、python自动编译项目 …

玩转用户旅程地图

图:史江鸿 从事需求分析和产品设计工作已经有几个年头了,我很享受这个职业。因为在这段职业历程中,我学到了很多有意思的方法和工具,用户旅程地图就是其中一个。 如今在国内外许多IT公司,用户旅程地图已经成为需求分析…

100万数据导出,居然爆炸了OutOfMemoryError?【EasyPoi实战系列】- 第472篇

历史文章(文章累计460) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 用…

软考高级架构师笔记-5计算机网络

目录 1. 前言 & 考情分析2. 网络功能和分类2.1 通信技术3. OSI七层模型及协议3. 1 局域网和广域网协议3. 2 协议3. 3 交换技术、路由、传输介质4 IP地址5 网络存储技术6 其它考点8. 结语1. 前言 & 考情分析 前文回顾: 软考高级架构师笔记-1计算机硬件软考高级架构师笔…

喜讯!图扑荣获用友年度十佳产业融合生态伙伴称号

2023 年 4 月 20 日,由中华全国工商业联合会联合工业和信息化部、国务院国资委组织开展的 2023 年度“百场万企”大中小企业融通对接活动——智能制造 MES 产业融通对接会暨 2023 用友 BIP 技术大会 MES 生态创新专题论坛在用友产业园顺利召开。 用友年度生态合作伙…

STM32 Linux开发板丨STM32MP157开发板资料手册+实战教程+视频教程

iTOP-STM32MP157开发板是基于意法半导体STARM双Cortex-A7核加单Cortex-M4核的一款多核异构处理器。Cortex-A7内核提供对开源操作系统Linux的支持,借助Linux系统庞大而丰富的软件组件处理复杂应用。M4内核上运行对于实时性要求严格的应用。 开发板既有A7核&#xff…

一般测试用例执行过程的四个步骤

一般测试用例执行过程的四个步骤 测试用例的执行过程是软件测试中非常重要的一环,它可以有效验证软件是否符合预期的功能和性能要求,进而保证软件的质量和稳定性。一般来说,测试用例的执行过程可以分为四个步骤: 第一步&#xff1…

Unity之2D碰撞器

1、什么是碰撞器 碰撞器是用于在物理系统中 表示物体体积的的(形状或范围) 刚体通过得到碰撞器的范围信息进行计算 判断两个物体的范围是否接触 如果接触 刚体就会模拟力的效果产生速度和旋转 2、参数 Edit Collider:编辑碰撞器 Material…

Python十类常见异常类型(附捕获以及异常处理方式)

目录 前言十类异常1.TypeError2.ValueError3.NameError4.IndexError5.KeyError6.ZeroDivisionError7.IOError8.ImportError9.AttributeError10.KeyboardInterrupt 异常捕获以及处理总结 前言 大家好,我是辣条哥!今天给大家讲讲我们刚开始写代码是都会出现…

TYAN 于Computex2023 展示支持第四代英特尔至强可扩展处理器的新款服务器

【台北讯2023年5月30日】隶属神达集团,神雲科技旗下服务器通路领导品牌TYAN(泰安),于2023 台北国际计算机展(Computex 2023)5月30日至6月2日展览期间,在台北世贸南港展览1馆4楼 M0701a摊位展示最…