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

news2024/10/5 13:08:32

文章目录

  • 测试用例设计
    • 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.coloradmin.cn/o/589221.html

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

相关文章

终于拿下腾讯25K的offer,面试官问我的面试题+回答,他都听懵了...

前言 自动化测试面试题总结: 1、你会封装自动化测试框架吗? 这个问得最多,很多公司直接写在招聘要求中。 自动化框架主要的核心框架就是分层PO模式:分别为:基础封装层BasePage,PO页面对象层,T…

【移动计算技术(Android)】期末复习

目录 选择题 选择题知识点汇总 Activity Intent Broadcast BroadcastReceiver 如何自定义Receiver 如何注册接收器 Service SharedPreferences 三种访问模式 如何创建 如何存储/修改 如何读取 内部存储 openFileOutput openFileInput SD卡 资源文件 SQLite…

【学习笔记】Unity基础(七)【uGUI基础、利用render Texture实现小地图功能】

目录 一 Canvas1.1 三种Render Space渲染空间 screen1.2 canvas scaler画布缩放器1.3sprite1.4 sprite packer1.5 unity目录1.6 RuleTile Tilemap1.7 sprite packer1.8 sorting layer 二 rect transform2.1 pivot 中轴 中心点2.2 anchor 锚点2.3 uGUI源代码 三 EventSystem3.1 …

【paddlecls】多机多卡-linux

1. 安装docker(引擎): (https://docs.docker.com/engine/install/ubuntu/) Install Docker Engine on Ubuntu To get started with Docker Engine on Ubuntu, make sure you meet the prerequisites, and then follo…

助力工业物联网,工业大数据之工业大数据之油站维度设计【十四】

文章目录 01:油站维度设计02:油站维度构建 01:油站维度设计 目标:掌握油站维度的需求与设计 路径 step1:需求step2:设计 实施 需求:构建油站维度表,得到油站id、油站名称、油站所属…

北美机器人市场迎来销售放缓,未来路在何方?

原创 | 文 BFT机器人 引言 Introduction 北美机器人销售在2022年创下了历史记录,但在2023年第一季度放缓。据推进自动化协会(A3)提供的数据显示,2023年第一季度,北美公司仅订购了9,168台机器人,较2022年同…

C++进阶 —— map

目录 一,map介绍 类pair 函数模板make_pair 二,map使用 一,map介绍 map是关联容器,按照特定的次序存储元素(由键key和值value组合而成的);键key通常用于排序及唯一标识元素,而值…

不愧是华为出来的大佬,实在是太强了.....

前段时间公司缺人,也面了许多测试,一开始瞄准的就是中级水准,当然也没指望能来大牛,提供的薪资在15-20k这个范围,来面试的人有很多,但是平均水平真的让人很失望。看了简历很多上面都是写有4年工作经验&…

Pillow(PIL)入门教程(非常详细)以及python实现jpg,png、ico、bmp格式互转大全

概述 Pillow库的特点: python3安装pillow: ​Pillow是什么 Pillow创建Image对象: jpg,png: jpg与png格式互转代码: 概述 Pillow 库(有时也称 PIL 库) 是 Python 图像处理的基础库&#xf…

计划学习网络安全,需要学习哪些知识,应该怎么学习?

虽然现在的网络安全大都是指渗透测试,但是并不代表只有渗透测试这一个方向,除此之外还有二进制逆向这个方向。以下会对这两个方向分别对您进行详解。 渗透测试方向 1、学习编程语言 (1)网站如何搭建的?HTML、CSS、J…

SpingBoot+LayUI 实现酒店管理系统编写

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

晚上12点接到面试邀约电话,待业一个月的我却拒绝了....

前言 一位测试朋友最近一直在找工作,前两天刚拒绝了一个面试。那天晚上12点多,他接到一个HR的面试电话,让他第二天早上10点去公司面试。朋友和HR聊了两句,了解到这位HR经常加班,于是果断拒绝了这个面试。 我还为他可惜…

AHB-to-APB Bridge——06testbench、env、base_test、scb

框架: testbench: HCLK_PCLK_RATIO:随机定义hclk pclk比率;各个接口clk、rst连接;生成满足相应比率的pclk;与DUT的连接;将vif set到agt中去;agt在set到底层 关于rest_if&#xff…

如何保证三个线程按顺序执行?不会我教你

👨‍🎓作者:bug菌 ✏️博客:CSDN、掘金、infoQ、51CTO等 🎉简介:CSDN|阿里云|华为云|51CTO等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12…

仪表板展示 | DataEase看世界:数据呈现世界油价变化

背景介绍 最近几个月,全球能源市场一直处于动荡不安的状态,与石油相关的新闻也非常频繁。2023年2月10日,面对西方多轮限价举措,俄罗斯副总理亚历山大诺瓦克宣布,俄罗斯将在3月把每日原油产量下调50万桶。目前&#xf…

FOFA-攻防挑战

记录一下中途短暂的辉煌时刻 辉煌一刻谁都有,别拿一刻当永久 在昨天初尝战果之后,今天又习惯性的打开 https://vulfocus.cn/ 发现今天还有挑战赛,按捺不住躁动的心,又开始了学习。今天主要拿下的是这四个镜像,同时我也会对我了解…

前端SKU一站式解决方案 - Geek-SKU

因为业务需要且市场上的UI框架与插件市场内没有简易的用法并且不够全面萌生便了自己写一个SKU组件的想法,于是Geek-SKU便应运而生。 现在的SKU组件已支持vue、uniapp,支持带图SKU、主题色设置、自动选择低价SKU、自动展示价格区间等,让您更便…

浏览器自动填充但是数据为空的问题

问题背景 公司项目中登录页为了方便,需要允许浏览器自动填充账号密码。这个在很多项目都很常见,但是测试中出现了这样一个问题:视觉上已经自动填充账号密码, 但是当点击密码的小眼睛或者点击登录时,会清空掉填充的数据…

火爆全网,性能测试-全链路压测实战总结,从需求到实战...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 流程导图 梳理阶段…

SpringBoot+Vue 的家政服务管理平台+数据库(附源码)

文章目录 1. 背景2.主要技术3. 可行性分析4.系统设计5系统的详细设计与实现5.1前台模块设计5.2后台功能模块 源码下载地址 1. 背景 本系统主要是设计出家政服务管理平台,基于B/S构架,后台数据库采用了Mysql,可以使数据的查询和存储变得更加有…