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

testor testor     2022-11-16     355

关键词:

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

从需求到用例设计

 

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

 

技术分享图片

 

 

 

设计用例方法

 

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 共同学习~

分析软件工程师必备技能

关于软件测试专业知识有很多,那么作为一个软件测试人员应该掌握哪些基础专业技能,作为自己的知识储备呢?以下从专业出发,整理了一些有用的⒈    测试主页技能掌握关于软件测试,所需要的专业技能:基... 查看详情

软件测试干货分享:面试必问的linux命令帮你整理好啦

1.背景作为一名测试工程师,Linux是必须要掌握的一项技能。因为大部分的互联网公司的项目都是搭建和部署在Linux服务器上的,所以测试就算不去负责搭建和维护测试环境,也需要在测试过程中去服务器那边定位测试... 查看详情

进阶软件测试工程师的必备

所谓长江后浪推前浪,不想提升的工程师不是好测试员。对于软件测试新人来说,除了需要掌握测试的理论知识之外,自身的定位,对学习的态度以及对工作的热情这些都是考核一个软件测试员的基本标准。态度决定了你是否具... 查看详情

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

...看软件测试相关书籍对于在公司成为一位优秀的测试开发工程师,我觉得下面这篇文章涉及到的是我们需要的,稍微进行改动https://blog.csdn.net/sinat_21026543/article/details/79909062测试流程方面:从最开始的分析需求开始,逐步地跟着... 查看详情

全栈工程师必备:安卓移动端手机开发,第六课

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活。提供程序员技术及生活指导干货。本系列课程致力于老手程序员可以快速入门学习安卓开发。系统全面的从一个.Net程序员的角度一步步学习总结安卓开发。上... 查看详情

app测试中工程师应注意哪些事项-干货分享!

结合了工作经验,写出了这篇文章,全是干货和经验分享。用您5分钟时间阅读完,希望能对您有帮助! 一、安装、卸载测试  1、安装 1.软件在不同操作系统(PalmOS、Symbian、Linux、Android、iOS、BlackBerryOS6.0、WindowsPho... 查看详情

干货|原来升职加薪的测试工程师都擅长做接口测试

互联网行业已进入小步快跑快速迭代的趋势。一个新版本的上线,不仅需要移动端测试,更需要进行服务端的测试。服务端的测试可能比移动端的测试更重要。服务端比移动端更复杂交互更多也更考验技术了。为什么受... 查看详情

如何成为一个优秀的测试工程师?必备的9大职业素质盘点

对于软件测试人员来说需要具备的素质,我觉得首先最重要的是要有一定的理论知识和测试技能,这是测试工作的基础。我们测试人员应该如何成长才能在工作当中被不断的认可呢?下面我将以问答的形式阐述:1... 查看详情

c++测试《c++工程实践必备技能》-知识点目录

C++工程实践必备技能2.Benchmark框架讲解语句执行次数执行多少次分支预判次数有多少次分支预判成功Note可以用来进行likely优化的分析。计算某个操作的时间复杂度输出对应的图形化柱状图 查看详情

测试必备-抓包工具的使用

...中,经常会在发现bug的时候,不知道把bug分配给移动开发工程师好还是后端工程师好,也会出现分配错误的情况,所以如何快速的定位bug呢,那需要抓APP的请求就知道了。一、Fiddler1、下载和安装下载地址:官网2、Fiddler设置启... 查看详情

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

一,软件测试入门这篇文章应该可以让你对软件测试有一个大概的了解https://zhuanlan.zhihu.com/p/20067753 这篇文章能够让大家对整个项目过程中测试人员需要做的事情有一个了解https://zhuanlan.zhihu.com/p/20069298 这篇文章可以让大... 查看详情

软件测试工程师必备技能之java基础

目录一、环境依赖二、基础语法基本数据类型:数据类型转化:关键字运算符类和方法时间和日期三、json四、集合五、testng注解一、环境依赖1.jdk依赖2.环境变量配置3.参考文档https://www.w3cschool.cn/java/java-character.html二、基... 查看详情

月薪20k以上的软件测试工程师的必备知识点?拿来吧你!

我们都知道作为一个软件测试工程师,入门相对比较简单,但是要达到技术精通,甚至薪资能达到20k以上的话,那绝对需要对测试开发有一个系统的了解,以及对这些系统的知识能够熟练掌握。今天的话是我... 查看详情

从事电子方面的工作需要都有哪些必备的知识和技能?

...的素质:1.计算机专业技能计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间或者持久竞争力的测试工程师,... 查看详情

做软件测试工程师需要学啥内容?

...inux内核配置与定制、Docker&K8S搭建部署,获得全栈测试工程师必备技能——测试环境配置管理能力。第二阶段为全栈测试数据管理与数据库测试,你要熟练掌握主流数据库管理系统(DBMS)中的数据定义、数据控制与数据操作... 查看详情

小白福音!零基础入门软件测试,首选必备课程

...展与职业规划1-4软件测试之“独孤九剑”第2章软件测试工程师必备基础知识本章将讲解软件的概念、软件的生命周期、软件测试方法、软件测试常见模型、软件测试的覆盖率及软件测试规范,一步步带你揭开测试大门。2-1软件... 查看详情

php程序猿必备的七种武器

 1开发环境  最隆重推荐:XAMPP  有win版本、mac版本、linux版本等等,全部都齐备了。标准的英语定义是:XAMPP is an easy to install Apache distribution containing MySQL, PHP, and  查看详情

2019-2021:测试实用干货精选汇总

性能测试设计如何编写性能测试用例【性能测试必备】混合场景:基于ELK实现性能测试业务模型及tps提取性能测试实战00、一篇文章告诉你怎么做性能测试01、jmeter5.1分布式压02、性能测试:jmeter中通过beanshell把关联转变... 查看详情