IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 软件测试梳理 第六节 软件测试用例和设计方法(一) -> 正文阅读

[开发测试]软件测试梳理 第六节 软件测试用例和设计方法(一)

测试用例和设计方法(一)

什么是测试用例

  • 测试用例的定义

    • 简单地说,测试用例就是:

      • 设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期效果
      • 如果程序在这种情况下不能正常运行,而且这种问题会重复发生,那就表示软件程序人员已经测出软件有缺陷,这时候就必须将这个问题标示出来,并且通知软件开发人员。软件开发人员接获通知后,将这个问题修改完成于下一个测版本内
      • 软件测试工程师取得新的测试版本后,必须利用同一个用例来测试这个问题,确保该问题已修改完成。
    • 面试题:

      • 什么是测试用例?
      • 如果软件按照测试用例运行达不到预期效果,怎么办?
      • 开发人员说缺陷修复了,你认可吗?(回归测试)
  • 测试用例模板和包含的内容

    测试用例编号测试项依赖用例测试步骤输入数据预期结果测试结果测试人备注

    测试用例应该包含以下内容:

    • 标识符(用例编号):一般编号规则:TestCase_项目名称_模块名称_功能名称_0001
    • 测试项(言简意赅):测试用例的测试目的。一般情况下,用一句话表明测试目的。例如:使用谷歌浏览器打开百度首页;在QQ登录页输入正确的用户名密码能登陆上。(表明测试模块、测试对象、方式、事件)
    • 依赖用例:一般功能流程上,下游的功能测试依赖于上游的功能测试用例。例如:增加了一个数据的测试用例,将会被删除该数据的测试用例依赖
    • 测试步骤:用最朴实的语言,写出软件的操作步骤。要尽量详细。例如:在用户名文本框输入:XXX;
    • 测试数据:单独整合测试数据。必须和测试步骤中的数据保持一致。
    • 预期结果:对象准确,内容准确。原则上每一个操作步骤,都要有一个结果。**在重要的步骤之后,设定预期结果。**例如:页面跳转到XXX;程序弹出对话框,提示:用户名或密码错误,请重新输入!一般和测试目的密切相关。测试目的决定了测试步骤和预期结果。
    • 测试结果:要求在测试执行完成后添加。没有执行保持为空。测试结果只有两个:通过|失败;Pass|Fail。
    • 测试人:测试执行人。
    • 备注:为了测试用例正常执行而做的特殊准备。例如:专门制造网络不畅情况下,软件错误提示。
  • 设计测试用例的作用

    面试题:测试用例真的有必要耗费时间进行设计和编写吗?

    具体作用如下:

    • 有效性:测试用例是测试人员测试过程中的重要参考依据、
    • 可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,提高测试效率。
    • 易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用。
    • 可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。
    • 可管理性:测试用例也可以作为检验测试人员进度、工作量以及跟踪|管理测试人员的工作效率的标准。

设计用例编写注意事项

  • 不要设计“穷举测试用例”

  • 在详细测试用例与有效测试时间中找到平衡点

  • 好的测试用例应该多关注“反向测试问题"

  • 测试用例库应该不断更新和维护

  • 测试用例可以复用,但注意数据的有效性与环境变化

  • 测试用例是设计出来的,不是写出来的

  • 多去学习经验丰富的测试工程师所设计的测试用例

  • 针对不同的需求类型和测试对象,灵活采用不同的测试用例设计方法

    面试题:

    时间不够的情况下,还要进行详细的测试用例设计吗?

    测试用例需要经常更新吗?(必须更新,尤其是发现过缺陷的测试用例。“杀虫剂效应”,一个发现过缺陷的测试用例,就相当于杀虫剂。必须使用“更强的杀虫剂”——新的测试用例【与之前的用例中数据类型保持一致】进行重新测试)

黑盒测试用例设计方法(一)

  • 黑盒测试用例设计方法概述

    • 黑盒测试数据选择
      • 等价类划分法
      • 边界值分析法
    • 黑盒测试步骤设计
      • 因果图法
      • 判定表法
      • 正交试验法
      • 功能图法
      • 场景法
  • 等价类划分法

    • 原理

      • 把程序的输入域划分成若干组成部分,然后从每个部分中选取少数代表性数据作为测试用例
      • 每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
      • 反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。
    • 设计步骤

      确定等价类的原则

      • 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
      • 在输入条件规定输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类
      • 在输入条件是一个布尔值的情况下,可以确定一个有效等价类和一个无效等价类
      • 在规定输入数据的一组值(假定N个),并且程序要对每一个输入值分别处理的情况下,可以确立N个有效等价类和一个无效等价类
      • 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(不同角度违法规则)
      • 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应该再将该等价类进一步划分为更小的等价类

      划分等价类和列出等价类表

      • 有效等价类
      • 无效等价类

      确定测试用例

      • 为每个等价类规定一个唯一的编号
      • 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步骤,最后是的所有有效等价类均被测试用例覆盖
      • 设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖

      简单以百度的注册页面为例:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2XAFNwP9-1632988727235)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210929230101948.png)]

      用户名:设置后不可更改;中英文均可;最多14个数字或者汉字;(用户名不能重复;用户名不能为空;特殊符号)

      将等价类划分组成表格分析

      有效等价类数据无效等价类
      中文、英文混合工藤xinyi数字、特殊符号、123456
      14英文gongtengxinyi英文超过14
      不能为空G
      不能重复工藤新二使用重复的数据进行测试
      7个中文工藤新一工藤新二中文超过7个

      简单写一下测试用例,之后做一份详细实战。

      测试用例编号测试项依赖用例测试步骤输入数据预期结果测试结果测试人备注
      TestCase_BaiDu_SY_zhuce_0001使用谷歌浏览器打开百度注册页面1.打开谷歌浏览器;
      2.在地址栏输入https://passport.baidu.com/v2/?reg&tt=1632927623800&overseas=undefined&gid=0B04BCD-9DDE-49CC-9962-D990973F0FCD&tpl=mn&u=https%3A%2F%2Fwww.baidu.com%2Fs%3Fie%3DUTF-8%26wd%3Dbaidu
      3.点击回车
      https://passport.baidu.com/v2/?reg&tt=1632927623800&overseas=undefined&gid=0B04BCD-9DDE-49CC-9962-D990973F0FCD&tpl=mn&u=https%3A%2F%2Fwww.baidu.com%2Fs%3Fie%3DUTF-8%26wd%3Dbaidu百度注册页面能够正确显示(和设计图保持一致)
      TestCase_BaiDu_SY_zhuce_0002用户名文本输入合法数据出现绿色对勾TestCase_BaiDu_SY_zhuce_00011.在用户名文本框输入:工藤xinyi工藤xinyi文本框旁边出现绿色对勾
      TestCase_BaiDu_SY_zhuce_0003
      TestCase_BaiDu_SY_zhuce_0004
      TestCase_BaiDu_SY_zhuce_0005

      提示:

      1.用例按照测试分类:功能(Function)、界面(UI)、性能(Performance)、安全(Security)、接口(Interface)

      2.测试项必须是确定的(不能是不是、是否)。测试项中可以不写目的产生的结果。写上不算错。

      3.测试项一般只写一个测试目的。测试目的必须明确,不能一次测试多个点。测试中,一个反向的(无效等价类)测试数据,只需要违反一个需求。例如非法身份证号:130112198922301542

      4.依赖用例:用例依赖可以跨越模块

      5.测试步骤:表明操作的对象和方式,数据。

      6.测试数据:没有数据,空着不写;对空格进行测试(123 456)

      7.测试结果:不执行,就不填。

      8.用例中不需要显示正反向。

      9.等价类划分不要出现重复。也不要出现缺失。

  • 边界值分析法

    • 边界值本身只是一个特定的数据。例如:文本框需要输入6到18位字符。

      • 边界值就是6个字符和18个字符
    • 次边界:边界附近的值,按照系统规定的单位或者计算方式,一个数据差异性。

      • 例如:字符就是个。一个字符,没有半个字符的说法;人民币金额,最小单位是0.01元(1分)

      • 思考:6≤X≤12,请问测试中X的边界值选取哪几个进行测试?

        5、6、7、11、12、13

      • 思考:6<X<12,请问测试中X的边界值选取哪几个进行测试?

        6、7、8 、10、11、12

      • 思考:文本框输入字符要求不大于150字。

        空、1、149、150、151

    • 边界值的选择原则

      • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据
      • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最少个数少1、比最大个数多1的数作为测试数据
      • 根据规格说明的每个输出条件,使用前面的原则一
      • 根据规格说明的每个输出条件,应用前面的原则二
      • 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
      • 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:21:13  更:2021-10-03 17:21:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:27:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码