干货-测试工程师必备武器

如何进行用例设计,如何让设计好的用例覆盖全面,将代码存在的问题在上线前更早发现是每一个测试工程师必备的技能。那么如何达到这些指标呢?如何将用例设计既快又全面呢?今天小编就告诉大家常用设计用例的方法,以及每个方法的适用范围,便于大家更快的选择出最优的方法。

从需求到用例设计

在项目中我们从拿到产品需求到最后的用例设计完成,都要经历哪些事情,包括今天要讲的用例设计方法是在哪个阶段使用,下面的图会告诉你答案。

设计用例方法

1.等价类

定义:把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。等价类数据一般分为有效等级类和无效等级类。

构造测试用例方法:

1)明确需求

2)分析需求中包含功能数

3)确认每一个独立功能具有多少输入

4)确认每个输入的规则

5)针对每个输入设计等价类表:有效数据和无效数据。以三边是否能组成三角形为例

6)构造测试用例:输入和操作进行组合

2.边界值

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

与等价划分的区别:

1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

构造测试用例方法:

1)针对每一个输入规则设计等价类边界值表

2)增加边界值数据:上点、离点

注:上点是边界上的点;离点是指距离上点最近的点,开区间在域内,闭区间在域外。

3.判定表

定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。

判定表的组成:

判定表通常由四个部分组成如下图所示:

1) 条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次 序无关紧要。

2) 动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺 序没有约束。

3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的 真假值。

4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。

5)规则及规则合并

A 规则 :任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。

 B 化简 :就是规则合并 。

a.  有完全相同的动作桩;

b.  条件桩中只有一个不同项

构造测试用例方法:

 1 )需求中 找到 条件桩:输入参数要满足的条件

2 )需求中 找到 动作桩:满足条件后得到的结果

3 )组合所有的条件桩形成2的n次方个组合,n代表条件桩的个数

4 )分析需求 中提到的 每一组条项桩所对应的一个或多个动作桩

5 )查看是否可以合并, 但合并时要谨慎,因为合并后容易发生漏测

6 )写测试用例,每一列对应一条测试用例(不存在的结果可以忽略,因没有数据可取)

以下 是形成 普通 三角形 的判定表 :

4.流程分析法(场景设计)

简介:现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。类似于白盒测试中的路径覆盖,通过画流程图分析功能的路径。

如下图所示,用例经过的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。

快速画流程图方法:

1 )从需求 中找到 判定条件(如果,假如,当)

2 )将这些判定框罗列到流程图中(可以暂时不用考虑顺序),注意挖掘SRS中没有提到的隐性判定条件

3 )先画基本流(正常路径),再画备选流(分支)

构造测试用例方法:

1 )分析业务,画出流程图

2 )根据基本路径写基于业务场景的测试用例(用例 数= 判定条件个数+1)

5.正交试验

简介:把影响实验指标的条件称为因子。影响实验因子的条件叫因子的状态(水平)。利用正交试验设计方法设计用例时,首先要从需求中找出影响其功能实现的操作对象和外部因素,把他们当作因子。而各个因子的取值当作状态。确定因子与状态是设计测试用例的关键。因此要求尽可能全面的正确的确定取值,以确保测试用例的设计作到完整与有效。

构造 测试用例方法:

1)从需求中找出因子(输入参数)

2)从需求中找出因子状态(输入参数对应的取值)并编号,画出因子状态表

3)合并或补充因子状态表,代入正交表

4)拆分正交表,替换成文字,一行是一条用例,以打印机功能为例,正交试验表如下:

6.因果图

定义 : 是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

构造测试用例方法:

1)需求分析找出原因,然后给原因编号

2)需求分析找出结果,然后给结果编号

3)根据需求分析文档,分析原因与结果之间的关系

4)根据需求分析文档,分析原因与原因之间的关系

5)根据需求分析文档,分析结果与结果之间的关系

6)根据需求分析文档,画因果图

7)依据因果图去除判定表中不存在的组合

8)判定表中每一列对应一条测试用例

7.输入域覆盖

简介 输入 的数据包含一些 易 引出内存溢出和内存泄露(区别,定义)的 类型边界 , 或者一些特殊 值 如电话号码等。

构造测试用例方法:

1 )SRS分析对应的输入参数是否存在特殊值和类型边界

2 )若存在,则补充特殊值和类型边界的测试数据(检查是否会出现内存溢出)

8.输出域覆盖

简介:分析输出结果的形式(提示信息,输出的显示结果,数据库的记录等)

构造测试用例方法:

1 )通过与开发的沟通,明确对应功能所有可能的输出结果有哪些

2 )逐一罗列(输出的形式主要针对提示信息和显示结果)

3 )检查对照现有测试用例是否已经覆盖了所有的输出

4 )若没有完全覆盖,则根据输出结果要求,倒推补充测试用例

9.异常分析

  定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性  的设计测试用例的方法

基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。如网络异常、断电、服务器宕机等

构造测试用例方法:

1)根据需求分析文档,构造环境异常(网络、电源、服务器、程序关闭)

2)补充异常测试用例

适用范围

通过上述的介绍,设计用例的方法这么多,如何选择使用哪种方法呢?文章开篇中的流程图,处理过程为什么用流程分析而不用状态迁移法呢?下面小编总结了各种方法的优缺点以及适用范围,希望可以帮助大家。

我们在实际工作中,可能一个功能会存在多种情况,所以大家要灵活使用方法,必要时设计用例方法要进行组合使用,设计出的用例才能更全面。一般情况下,一份用例最少用到2种以上方法才能全面覆盖测试点。

如果有任何疑问,欢迎添加qq群测试入门到大神 755431660 共同学习~

原文地址:https://www.cnblogs.com/testor/p/9076529.html

时间: 2024-10-13 20:07:18

干货-测试工程师必备武器的相关文章

安全测试-优秀测试工程师必备的4项安全测试方法!

用您5分钟时间阅读完,希望能对您有帮助! 一.安全性测试 1.安全性测试方法测试手段可以进行安全性测试,目前主要安全测试方法有: 1)静态的代码安全测试 主要通过对源代码进行安全扫描,根据程序中数据流.控制流.语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞. 静态的源代码安全测试是非常有用的方法,它可以在编码阶段找出所有可能存在安全风险的代码,这样开发人员可以在早期解决潜在的安全问题.而正因为如此,静态代码测试比较适用于早期的代码开发阶段,而不是测试阶段. 2)动态的**

测试工程师相关(干货)文章

一,软件测试入门 这篇文章应该可以让你对软件测试有一个大概的了解 https://zhuanlan.zhihu.com/p/20067753 这篇文章能够让大家对整个项目过程中测试人员需要做的事情有一个了解 https://zhuanlan.zhihu.com/p/20069298 这篇文章可以让大家对整个项目中测试开发人员要做的事情有个大概的了解 https://zhuanlan.zhihu.com/p/20070858 上面没有包括测试平台的开发工作,因为个人觉得测试平台的开发本身已经跟开发

【转】测试开发工程师必备软硬能力&高级测试开发工程师需要具备什么能力?

对于测试的基本知识,可以查看软件测试相关书籍 对于在公司成为一位优秀的测试开发工程师,我觉得下面这篇文章涉及到的是我们需要的,稍微进行改动https://blog.csdn.net/sinat_21026543/article/details/79909062 测试流程方面:从最开始的分析需求开始,逐步地跟着项目走完整个测试流程,包括纯手工测试,包含了自动化的测试流程,包含了性能测试的测试流程,直至每一个测试报告的最终形成,理解一个科学,正确,严谨,正规化的测试流程. 测试方法方面:注重理论知识

优秀软件测试工程师必备的8个能力!-(附思维导图)

结合自己以往的工作经验,自己梳理出来一些材料,绝对原创,绝对干货. 优秀的软件测试工程师必备的"8个能力" 作为一名软件工程师,需要的能力并不多,但是要成为一名优秀的软件测试工程师,需要的能力就比较多了,自己整理出来8个方面,每个方面都会分成很多细小的方便并进行举例说明.同样的,文章的思维导图放在文末,需要原图直接找我. 文章一共4500字左右,预计阅读时间9分钟 不废话,上干货! 一.业务分析能力 1.分析整体业务流程 不了解整个公司的业务,根本就没办法进行测试2.分析被测业务数据

优秀软件测试工程师必备的“8个能力”——附思维导图

结合自己以往的工作经验,自己梳理出来一些材料,绝对原创,绝对干货. 优秀的软件测试工程师必备的"8个能力" 作为一名软件工程师,需要的能力并不多,但是要成为一名优秀的软件测试工程师,需要的能力就比较多了,自己整理出来8个方面,每个方面都会分成很多细小的方便并进行举例说明.同样的,文章的思维导图放在文末,需要原图直接找我. 文章一共4500字左右,预计阅读时间9分钟 不废话,上干货! 一.业务分析能力 1.分析整体业务流程 不了解整个公司的业务,根本就没办法进行测试 2.分析被测业务数据

优秀工程师必备的十大能力!

平庸的人总是相似,优秀的人却各不相同.在这各不相同的特性里,掩藏着怎样的共性?据说这十大能力,是通往优秀工程师之路的必备资质. 大家好!我是黄勇,目前在特赞(Tezign.com)担任 CTO.特赞有一支强悍的技术团队,以及浓厚的工程师文化,同时也培养了一批优秀工程师. 几天前,我在自己的微信朋友圈中连载了十篇关于优秀工程师的文章,得到了很多朋友们的认同,非常感谢各位的关注和支持!今天我把这个系列整理成一篇文章,分享给一路努力拼搏的工程师们,希望对大家有所帮助. 1 预备工作的能力 常言道"一日

测试工程师应该具备的责任心

引言:责任心对于测试来说是不言而喻的,没有好的责任心,如何保障产品的质量,如何把好产品最后一道关卡. 质量保障要先行 测试工程师必须要有责任感,对于自己所做的一切进行负责,对自己.对产品负责.测试承担为产品质量把关的角色,而对产品负责的基本要素就是要以质量先行. 大部分人对测试工作的理解,就是找BUG.而要真的要做好测试工作,却不是想象中的那么简单.一个顶级测试工程师,对编码,对软件架构,对最前沿的技术都应了解.不亚于开发的难度.测试要从需求开始就参与并跟踪与质量相关的事项,以便在后续的更新迭代

【转帖】系统软件工程师必备技能-进程内存的working set size(WSS)测量

系统软件工程师必备技能-进程内存的working set size(WSS)测量 2018年12月28日 18:43:01 Linuxer_ 阅读数:145 https://blog.csdn.net/juS3Ve/article/details/85333717 How To Measure the Working Set Size on Linux|来源:内核月谈 概述 本文主要摘自brendangregg大神的blog: http://www.brendangregg.com/blog/2

高薪岗位云计算面试题,云计算运维工程师必备

云计算产业市场规模快速增长,人才需求数量激增.相关云计算企业加大对核心技术的投入,提高对客户的服务,无论从技术层面,运营商层面还是集成与服务提供层面,人才需求巨大.下面给大家分享高薪岗位云计算面试题,云计算运维工程师必备好好收藏吧. 1.osi七层参考模型有哪些? 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 2.udp协议工作在哪一层?ping工作在哪一层? UDP工作在传输层 ping 工作在网络层 3.linux系统中用于检测通信的命令有哪些?(四个以上) ping trac