测试开发(测试用例篇)

news2024/11/25 18:59:08

一 测试用例篇

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

  2.测试用例的好处

测试执行者的依据

使得工作可重复,自动化测试的基础评估需求覆盖率,覆盖率越高,说明测试质量越高,反之就是越低

用例的复用

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

    使用中带来困扰

     测试用例的设计是费时费力的工作,往往设计测试用例所花费的时间比执行所花费的时间还多解决如下问题:

不知道是否较全面的测试了所有功能 测试的覆盖率无法衡量 对新版本的重复测试很难实施 存在大量冗余测试影响测试效率

  2.测试用例设计方法

  基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求,验证需求是否正确、完整、无二义性,并且逻辑自洽。在需求正确的基础上细化测试需求,从测试需求提炼出一个个测试点或者测试项,然后根据每一个测试点进行测试用例的设计;

基于需求的设计方法

等价类,边界值,因果图,正交排列,场景设计法,错误猜测法

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

  1.功能需求测试分析:

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

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

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

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

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

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

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

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

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

2.非功能需求测试分析

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

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

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

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

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

3.具体的设计方法

                1.等价类

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

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

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

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

    如何用等价类的方法设计测试用例

        

组合规则:有效等价类这里的时候,尽可能一条测试用例覆盖尽可能多的覆盖有效等价类

                无效等价类组合的时候,一条测试点,只能覆盖一个无效等价类

如下例所示 我们测试一个用户名为6-15的字母

我们再来一个例子  输入框6~15字母加数字(等价类)

          2.边界值

                  边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

     1)我们分为上点,离点,内点

           上点:无论是开区间还是闭区间还是半开半闭。上点就是边界上的点

          内点:无论是开区间还是闭区间还是半开半闭,内点就是边间内的点

        离点:离点就是边界左右的一个点,如果是闭区间,离点就是范围外的点,如果是开区间,离点就是范围内的点

 

                        日常语言中的"边界"漏洞

考完试发成绩了, 老师布置寒假作业: 超过60分的, 所有题目抄写1遍, 低于60分的, 所有题目抄写3遍.于是小明就没有写作业~~, 因为他刚好60分

1. 输入框长度为1-11,取边界值为:1、11、12、0

2. 运动员的参赛项目为1-3项,取边界值为:0项、1项、3项、4项 

3. 查询面页面有999行,每50行为一页,取边界值为:输出0行、1行、50行、51行、999行

设计边界值的测试用例

3.错误猜测法

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

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

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

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

以注册为例

1、校验中特殊字符空格的处理?

2、密码校验中的大小写?

3、姓名中的特殊字符?

4、密码发送是否明文

 4.场景设计法

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。

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

我们以淘宝的购买案例来看

        

                

     5.因果图

因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况。

 因果图需要掌握的基本知识


1.恒等

恒等:如果条件为真,那么结果必定为真。,条件为假,结果必为假 例如:动物园运来大熊猫,动物园一定有大熊猫

2.与:

只有2个条件都为真,那么结果为真 ,其中一个为假,结果为假例如:北京姑娘,必须有车且有房
 

3.或:

条件全为假,结果才为假,条件中有一个为真,结果为真

4.非

,条件为假,结果才为真

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

      (0)充分理解需求

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

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

        (3)把因果图转换成判定表。

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

案例

案例1

假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠
1. 对于这条业务规则,首先通过分析所有可能的输入和可能的输出,可以得到如下结果:

        ● 输入:订单已提交、订单没有提交 金额大于等于300,金额小于300、有红包,没有红包。

        ● 输出:优惠、不优惠。

2. 然后,进行第二步,找出输入与输出之间的对应关系。通过分析,可以看出有以下的对应关系。

        (1)订单已提交,订单金额大于等于300元,有红包,有优惠

        (2)订单已提交,订单金额小于等于300元,无红包,有优惠

        (3)订单已提交,订单小于300元,有红包,有优惠

        (4)订单已提交,订单小于300元,没有红包,没有优惠

        (5)订单未提交,订单金额大于等于300元,有红包,没有优惠

       (5)订单未提交,订单金额大于等于300元,无红包,没有优惠

       (5)订单未提交,订单小于300元,有红包,没有优惠

       (5)订单未提交,订单小于300元,有红包,没有优惠

         3.画判定表

                

案例2:

继续以注册的需求为例:

姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册需要设计多少用例?2x2x2x2x2。

因果法设计测试用例可以帮助测试人员理清输入和输出的关系,但是对于比较复杂的输入和输出,会耗费大量时间

6.正交表法

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

因素(Factor):(变量)

水平(位级)(Level):(变量的取值)

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

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

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

水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数”,用T代表

正交表的两条性质:

每一列中各数字出现的次数都一样多。

任何两列中的各有序数对出现的次数都一样多

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

1、确认哪些因素(变量)

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

3、通过工具去画正交表

4、将正交表去转换成测试用例

案例

 继续以注册的需求为例:

 姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册

        因素:姓名、邮箱、密码、确认密码、验证码

        水平:填写,不填写

7.设计案例

‘针对物体的测试用例’

1.设计水杯的测试用例

        

我们依然从这六个方面去考虑

针对软件的测试用例

1.设计微信发送朋友圈的测试用例

2.linux中zip这个命令设计测试用例

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

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

相关文章

STM32CubeIDE基础学习-RS232通信

STM32CubeIDE基础学习-RS232通信 文章目录 STM32CubeIDE基础学习-RS232通信前言第1章 工程配置第2章 代码编写第3章 实验现象总结 前言 RS232也是串口的一种,RS-232是由电子工业协会(Electronic Industries Association, EIA)所制定的异步传输标准接口。在1962年发布…

常用类(比较器、System类、Math类、BigInteger与BigDecimal)

目录 一、Java比较器1.1、概述1.2、Comparable自然排序举例1.3、自定义类实现Comparable自然排序1.4、使用Comparator实现定制排序 二、System类、Math类、BigInteger与BigDecimal2.1、System类2.2、Math类2.3、BigInteger与BigDecima 一、Java比较器 1.1、概述 Java中的对象…

物联网实战--入门篇之(五)嵌入式-IIC驱动(SHT30温湿度)

目录 一、IIC简介 二、IIC驱动解析 三、SHT30驱动 四、总结 一、IIC简介 不管是IIC还是串口,亦或SPI,它们的本质区别在于有各自的规则,就是时序图;它们的相同点就是只要你理解了时序图,你就可以用最普通的IO引脚模…

P6学习:Oracle Primavera P6 OBS/责任人解析

前言 Primavera P6 EPPM 责任人用于管理 P6 企业项目组合管理 (EPPM) 系统中的项目所有权和权限。 Primavera P6 EPPM 中的所有项目都至少围绕三个结构进行组织:称为企业项目结构 (EPS) 的用于组织项目的结构、称为工作分解结构 (WBS) 的用于组织项目内活动的结构…

书生·浦语全链路开源开放体系 第二期

文章目录 大模型背景大模型开发流程InternLM 2.0SFT与RLHFInternLM2主要亮点 书生浦语全链路开源开放体系数据-书生万卷InternLM-Train微调 XTuner评测工具 OpenCompass部署 LMDeploy智能体 Lagent智能体工具箱 AgentLego 大模型背景 专用模型:针对特定的任务&…

亚马逊测评新策略:解决底层环境防关联,提升下单成功率

对于做测评的环境系统,确保稳定性和成功率是非常重要的。市面上有各种环境方案,如虚拟机、模拟机、gcs、云手机、VPS等。然而,这些方案不仅成本高,而且成功率很低。因此,一个好的环境系统是成功的基础。 亚马逊平台的…

算法学习——LeetCode力扣动态规划篇5(198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III )

算法学习——LeetCode力扣动态规划篇5 198. 打家劫舍 198. 打家劫舍 - 力扣(LeetCode) 描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统…

echarts 图表/SVG 图片指定位置截取

echarts 图表/SVG 图片指定位置截取 1.前期准备2.图片截取3.关于drawImage参数 需求&#xff1a;如下图所示&#xff0c;需要固定头部legend信息 1.前期准备 echarts dom渲染容器 <div :id"barchart id" class"charts" ref"barchart">&…

动态规划-----背包类问题(0-1背包与完全背包)详解

目录 什么是背包问题&#xff1f; 动态规划问题的一般解决办法&#xff1a; 0-1背包问题&#xff1a; 0 - 1背包类问题 分割等和子集&#xff1a; 完全背包问题&#xff1a; 完全背包类问题 零钱兑换II: 什么是背包问题&#xff1f; 背包问题(Knapsack problem)是一种…

jsp中设置动态时间

第一步 在head中写入meta <head><meta charset"UTF-8" http-equiv"Refresh" content"1"> </head> 第二步在head中写入函数 <head><meta charset"UTF-8" http-equiv"Refresh" content"…

Mac m1 Flink的HelloWorld

首先在官方下载Downloads | Apache Flink 下载好压缩包后解压&#xff0c;得到Flink文件夹 进入&#xff1a;cd flink-1.19.0 ls 查看里面的文件&#xff1a; 执行启动集群 ./bin/start-cluster.sh 输出显示它已经成功地启动了集群&#xff0c;并且正在启动 standalonesessio…

基于YOLOV8+Pyqt5光伏太阳能电池板目标检测系统

1、YOLOV8算法 YOLOv8 是当前效果较好的目标检测 算法&#xff0c;它的核心网络来源于 DarkNet-53&#xff0c;该网络初次在 YOLOv3[11] 中被引入&#xff0c;并深受 ResNet[12] 的影响。DarkNet-53 使用了残差机制&#xff0c;并连续添加了卷积模块来加强其功能性。 这 53 层…

AI 音乐的 “ChatGPT“ 时刻,SunoV3简介和升级教程

一句话总结 Suno AI音乐平台发布了V3版本&#xff0c;标志着AI音乐创作领域的一个重要进步&#xff0c;类似于ChatGPT在文本生成领域的影响。 关键信息点 Suno AI是专注于生成式AI音乐的平台&#xff0c;最新发布的V3版本在音质、咬字和节奏编排上有显著提升。V3版本的AI音乐…

集成百兆,千兆,万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用

Hqst华轩盛(石门盈盛)电子导读&#xff1a;集成百兆&#xff0c;千兆&#xff0c;万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用 一 ﹑集成百兆&#xff0c;千兆&#xff0c;万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用前景 近年…

SQL Server 数据库常见提权总结

前面总结了linux和Windows的提权方式以及Mysql提权&#xff0c;这篇文章讲讲SQL Server数据库的提权。 目录 基础知识 权限判定 系统数据库 存储过程 常见系统存储过程 常见扩展存储过程 xp_cmdshell扩展存储过程提权 xp_dirtree写入文件提权 sp_oacreate提权 xp_re…

【吊打面试官系列】Redis篇 -Redis 如何做内存优化?

大家好&#xff0c;我是锋哥。今天分享关于 【Redis 如何做内存优化&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; Redis 如何做内存优化&#xff1f; 尽可能使用散列表&#xff08;hashes&#xff09;&#xff0c;散列表&#xff08;是说散列表里面存储的数…

[ESP32]:基于esp-modbus实现serial从机

[ESP32]&#xff1a;基于esp-modbus实现serial从机 开发环境&#xff1a; esp idf 5.1esp-modbus 1.0.13 使用如下指令添加组件&#xff0c;或者访问esp-modbus idf.py add-dependency "espressif/esp-modbus^1.0.13"1.mb_register_area_descriptor_t 对于slave…

PHP远程命令执行与代码执行原理利用与常见绕过总结

PHP远程命令执行与代码执行原理利用与常见绕过总结 远程命令执行 相较于SQL注入漏洞&#xff0c;远程命令执行更加少见。由于是直接执行系统命令&#xff0c;所以相较于前者此漏洞会更加危险&#xff1a; 攻击者通过远程命令执行漏洞可以直接掌控服务器攻击者可以通过存在此…

OSCP靶场--Internal

OSCP靶场–Internal 考点(CVE-2009-3103) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.216.40 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-31 07:00 EDT Nmap scan report for 192.168.216.40 Host is up…