软件测试用例

news2024/11/17 7:55:03

测试用例

  • 为什么要写测试用例
  • 测试用例的基本要素
    • QQ登录的测试用例
      • 功能
        • 正常时
        • 异常时
      • 界面
      • 易用性
      • 可移植性
      • 性能
  • 具体的设计测试用例的方法
    • 等价类
    • 边界值
    • 错误猜测法
    • 场景设计法
    • 因果图法
    • 正交排列
  • 测试用例的有效性

为什么要写测试用例

  1. 测试用例是测试执行的依据
  2. 测试用例可以复用,在进行回归测试的时候看 新添加/修改后 的功能,是否对其它功能有影响?
  3. 测试用例可以衡量需求的覆盖率,因为有了测试用例之后,你对照着需求,就可以进行查漏补缺。
  4. 后人可以借鉴,可以更好的帮助其他人一起学习
  5. 手工测试用例是自动化测试的依据

测试用例的基本要素

测试用例的基本要素就是 测试用例的 定义/概念:

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试。评价测试用例的标准:对比好坏用例的评价标准

  1. 用例表达清楚,无二义性
  2. 用例可操作性强
  3. 用例的输入与输出明确。一条用例只有一个预期结果
  4. 用例的可维护性好
  5. 用例对需求的覆盖率高

测试用例的设计方向:功能、性能、可移植性、界面、安全性、易用性。

QQ登录的测试用例

在设计测试用例的时候,也是通过需求来进行设计的。我们下面进行一次QQ登录的测试用例设计:

功能

正常时

  1. 账号密码正确是否能正常登录。
  2. 账号密码错误,不能登录且有提示。
  3. 输入密码时密码是否自动隐藏。
  4. 输入密码的小键盘是否能正常使用。
  5. 密码不能复制,但可以粘贴。
  6. 登录校验时,超时或者错误,不能登录且有对应提示。
  7. 勾选自动登录,下次是否可以点击确认即可登录。
  8. 勾选记住密码,下次登录时,不输密码就可登录。
  9. 取消勾线记住密码,下次登录时,需要重新输入密码。
  10. 扫码登录,是否可以登录成功。
  11. 二维码超时,不能登录成功且有提示。
  12. 点击失效二维码,可以刷新。
  13. 异地登录有警告或者登录校验。
  14. 设置登录状态后,登录后登录状态与设置的是否一致。
  15. 登录成功后该登录状态也可以更改
  16. 切换不同用户登录,可以登录成功。
  17. 切换用户登录,登录账号长时间未在本机登录,需要重新输入密码。
  18. 当密码/账号为空时,点击登录,不能登录且提示输入密码/账号再登录。
  19. 点击多账号登录,是否可以登录成功。

异常时

  1. 账号密码正确但被冻结,不能登录且有提示。
  2. 同一账户一登陆不能重复登录,且有提示。
  3. 登录时网络异常,有对应提示。

界面

  1. 界面排版是否和设计说明相符。
  2. 界面颜色是否和设计说明相符。
  3. 界面的大小是否和设计说明相符。
  4. 界面各部件点击后显示效果是否与设计说明相符。
  5. 头像是否显示正常。
  6. 登录加载界面是否显示正常。

易用性

  1. 登录功能指引是否人性化。
  2. 登录时按回车键是否可以登录。
  3. 输入框是否支持Tab切换

可移植性

不同操作系统,不同版本上QQ登录的各功能是否正常。

性能

  1. 打开登录页面的时间是否符合要求。
  2. 登录加载时间是否符合要求。
  3. 二维码弹出时间是否符合要求。
  4. 验证码验证时间是否符合要求。
  5. 占用CPU是否符合要求。
  6. 耗电量是否符合要求。

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

等价类

就是根据输入(特殊情况下,才考虑输出),把输入划分成若干个等价类,从每一个等价类当中选择测试用例进行测试。如果这个测试用例,测试通过了。我们就说这个测试用例代表的等价类测试通过。就是在没办法穷举的情况下,通过等价类来实现。

边界值

其实就是 输入 和 输出 的边界。要针对 输入 和 输出 的 边界 进行 测试用例的设计。就像网易邮箱的注册:
在这里插入图片描述

错误猜测法

这里是根据 测试人员的经验 和 知识 的 积累,来猜测某一块功能可能有问题。随后,有针对性的进行测试用例的编写。
错误猜测法,有点类似于探索性测试,针对性比较强,比如:

  1. 搜索查询框当中用户输入的空格
  2. 搜索查询出的信息。比如说查询出的数据有500条,每页显示100条,但是发现不同的页面上有相同的数据,数据ID也是一样的。如果没有使用排序的话,就会进行随机抓取数据。使得不同的页面当中显示重复的数据

场景设计法

就是因为很多软件不同的场景, 都是基于不同事件的触发。不同事件的触发,会导致场景走向不同的 时间流 / 场景。场景设计法 就是把不同的功能点 给串起来了,形成一个场景。 要注意的是:不同的功能点有不同的输出,不同的输出就会导致不同的测试场景。还可以认为是将一个功能集成模块 给 拆分成一个个单独功能模块,进行设计测试用例。

因果图法

因果图是 一种逻辑图,它具有 恒等,与,或,非 逻辑。用因果图来设计测试用例,就叫做因果图法。它的使用场景如下:
在这里插入图片描述

使用 因果图法 设计测试用例 的 步骤

  1. 分析出所有的输入和输出
  2. 找出输入和输出之间的组合关系
  3. 根据关系画出因果图
  4. 根据因果图画出判定表
  5. 根据判定表写出测试用例

正交排列

就是根据正交性来设计测试用例的。是从大量的实验(测试)数据中根据正交原则 取出最优的数据的组合。然后,根据最优数据组合 实验的结果 来分析整个测试的结果。

正交排列的运用场景:为了减少用例数目。用尽量少的用例覆盖输入的两两组合。

正交表的构成

行数(Runs):正交表中的行的个数,即试验的次数,用N代表。
因素数(Factors):正交表中列的个数,用C代表。
水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数”,用T代表。
正交表的表示形式: L=行数(水平数*因素数) L=N(TC)

正交表的两条性质

  1. 每一列中各数字出现的次数都一样多。
  2. 任何两列中的各有序数对出现的次数都一样多。

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

  1. 有哪些因素(变量)
  2. 每个因素有哪几个水平(变量的取值)
  3. 选择一个合适的正交表
  4. 把变量的值映射到表中
  5. 把每一行的各因素水平的组合作为一个测试用例
  6. 加上你认为可疑且没有在表中出现的用例组合

测试用例的有效性

  1. 测试用例对应的功能已删除,不可操作了。呢么这个测试用例没有用了,没有意义了。比如说当前版本已经砍掉的功能,就没必要进行测试了。
  2. 测试用例的有效的范围比较小。就像:苹果7手机微信添加了mobile单车小程序,扫码不能开锁,只能使用mobile APP开锁,测试用例未涉及到苹果7微信小程序扫码开锁
  3. 可以发现bug,就是可以发现新功能的bug
  4. 可以测出以及修改完成的bug。

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

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

相关文章

分布式多级缓存

学习就是带着问题前行 缓存是什么? 缓存击穿是什么? 缓存雪崩是什么? 如何保证分布式缓存的数据一致性? 如何进行缓存预热? 如何设计缓存热点探测? 曾经问过一个技术修为很高的朋友,为什么…

系统移植 uboot 1

一、uboot概念 1.1 uboot和bootloader关系 1.bootloader:是一系列引导加载程序的统称 ,uboot是其中之一。 1.2 uboot特点 1.uboot是由德国DNEX小组进行维护的 2.uboot是一个开源分布式系统 3.uboot支持多种硬件架构平台(ARM/X86/POWERPC) 4.uboot短小精悍 5.…

飞轮效应,中国企业级SaaS的一次自我革命

“数智飞轮”“客户成功”,三年时间,用友YonSuite终于按下了发展的“快进键”,中国企业级SaaS的产业革命也就此开始。 前不久,用友发布了2022年三季报。在公司战略增强公有云订阅业务的前提下,中型企业云服务业务收入…

模拟电路设计(38)---基于LT1173的负压产生电路

今天来介绍下LT1173在buck(step-down)模式的工作电路。在介绍PWM电路结构时,有一种形式成为buck型,如下所示: 晶体管开关变换器(buck)电路 LT1173提供了内置开关管的集电极和发射极管脚&#x…

【图像处理OpenCV(C++版)】——2.2 OpenCV之矩阵运算详解(全)

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

一篇文章让你认识与学习bash(干货满满)

Linux界存在着这样一种说法:“在Linux的环境下,如果你不懂bash是什么,那么其他的东西就不用学了。”bash的学习是所有命令行模式与未来主机维护与管理的重要基础,所以得认真对待。 一.硬件、内核与shell 1.1 什么是shell? 看下图…

Linux下安装mysql5.7.18

查询mysql的安装文件: find / -name mysql有安装mysql的路径,有是存放MySQL安装包的路径 卸载mysql: 删除安装路劲 rm -rf /opt/mysql删除配置文件 rm -rf /etc/my.cnf删除/etc/init.d/下跟mysql有关的全部文件,一般包括mysql文件或mys…

浅尝Go语言的协程实现

文章目录为什么需要协程协程的本质协程如何在线程中执行GMP调度模型协程并发为什么需要协程 协程的本质是将一段数据的运行状态进行打包,可以在线程之间调度,所以协程就是在单线程的环境下实现的应用程序级别的并发,就是把本来由操作系统控制…

微服务框架 SpringCloud微服务架构 25 黑马旅游案例 25.1 搜索、分页

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构25 黑马旅游案例25.1 搜索、分页25.1.1 直接开干25 黑马旅游案例 25.1 搜…

PyTorch~自定义数据读取

这次是PyTorch的自定义数据读取pipeline模板和相关trciks以及如何优化数据读取的pipeline等。 因为有torch也放人工智能模块了~ 从PyTorch的数据对象类Dataset开始。Dataset在PyTorch中的模块位于utils.data下。 from torch.utils.data import Dataset围绕Dataset对象分别从…

前端入门必备基础

化繁为简 HTML5要的就是简单、避免不必要的复杂性。HTML5的口号是“简单至上,尽可能简化”。因此,HTML5做了以下改进: 以浏览器原生能力替代复杂的JavaScript代码。 新的简化的DOCTYPE。 新的简化的字符集声明。 简单而强大的HTML5API。…

[附源码]Python计算机毕业设计SSM基于云数据库的便民民宿租赁系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

《Linux运维实战:MongoDB数据库全量逻辑备份恢复(方案一)》

一、备份与恢复方案 mongodump是MongoDB官方提供的备份工具,它可以从MongoDB数据库读取数据,并生成BSON文件,mongodump适合用于备份和恢复数据量较小的MongoDB数据库, 不适用于大数据量备份。 默认情况下mongodump不获取local数据库里面的内容。mongodump仅备份数据库中的文档&…

回溯算法(1)组合

文章目录回溯算法理论77. 组合216. 组合总和17. 电话号码的组合回溯算法理论 回溯算法其实就是递归,只不过递归又分为递去和归来,其中归来便就是回溯。 为什么要使用回溯? 有些问题我们通过暴力解法也很难解决,比如说我们接下来…

C语言学习之路(高级篇)—— 变量和内存分布(上)

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 数据类型 1) 数据类型概念 什么是数据类型?为什么需要数据类型? 数据类型是为了更好进行内存的管理,让编译器能确定分配…

04 | 云硬盘的使用方法

前期环境: Ubuntu 0 云硬盘类型 云硬盘类型包括: 高性能云硬盘通用型 SSD 云硬盘SSD 云硬盘增强型 SSD 云硬盘极速型 SSD 云硬盘,仅支持随存储增强型云服务器一同购买,不支持单独购买 1 创建云硬盘 1.1 创建方式 1.1.1 单个…

第二证券|连拉20CM涨停!防疫新概念股火了!恒生科技指数涨逾5%

周四上午,“新十条”发布后,由于A股商场已反弹一段时刻,两市股指今天早盘接连震动走势,港股在地产、科技、消费等板块带动下,体现更为强势。 A股上证指数早盘在3200点附近持续震动,光伏、化肥、物流、港口等…

JavaScript内置对象(内置对象、查文档(MDN)、Math对象、日期对象、数组对象、字符串对象)

目录 JavaScript内置对象 内置对象 查文档 MDN Math对象 Math概述 案例一:封装自己的对象 随机数方法 random() 案例一:猜数字游戏 日期对象 Date 概述 Date()方法的使用 获取日期的总的毫秒形式 案例一:倒计时效果 数组对象 …

DoltLab本地部署实践

目录引言Dolt是什么?如何本地部署使用DoltLab具体安装步骤安装期间FAQ写在最后其他相关资料引言 自从搞深度学习训练模型以来,一直有个问题困扰着我:训练所用数据集的管理。为什么说这是一个问题呢? 在读研时,我们依据…

ELK日志分析系统概述及部署

文章目录一、ELK日志分析系统1、概念2、完整日志系统基本特征3、使用ELK的原因4、ELK 的工作原理二、ELK日志分析系统集群部署的操作步骤环境准备:1、 ELK Elasticsearch 集群部署(在Node1、Node2节点上操作)1.1、更改主机名、配置域名解析、…