测试用例设计

Hi,欢迎来到小喜的博客,希望能对你有所帮助! Hi,欢迎来到小喜的博客,希望能对你有所帮助!     2022-09-18     165

关键词:

一、为什么要使用测试用例

1、理清思路,避免遗漏

如果我们测试的项目大而复杂,我们可以把项目功能细分,根据每一个功能通过编写用例的方式来整理我们测试系统的思路,避免遗漏掉要测试的功能点。

2、跟踪测试进展

通过编写测试用例,执行测试用例,我们可以很清楚的知道我们的测试进度。

3、历史参考

在我们所做的项目中,也许会有很多功能是相同或相近的,我们对这类功能设计了测试用例,便于以后我们遇到类似功能的时候可以做参考依据。

4、重复性

我们测试一个系统不是一个人测一遍就算测完的,需要多人反复的进行测试,那么我们就需要测试用例来规范和指导我们的测试行为。

5、测试确认

在少数高风险的测试中,必须证明确实执行了计划执行的测试。

二、测试用例-要素

1、用例编号

测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。

2、测试标题

对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ” 。

3、重要级别

定义测试用例的优先级别,可以笼统的分为 四个不同的等级

4、输入限制

提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。

5、操作步骤

提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。

6、预期结果

提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。

三、编写用例参考什么内容?

当根据客户的需求整理出项目需求分析文档时,我们就可以根据需求文档来编写测试用例了。

等到项目开发人员把项目开发出来,给我们系统文档、部署环境、数据库结构(如果系统牵涉到数据库的话),我们根据这些文档来设计测试用例。

我们编写的测试用例经过评审之后,随着需求的变更、功能的改进,测试用例也需要更新和变动。

测试执行过程中,应该注意及时更新测试用例。往往在测试执行过程中,才发现遗漏了一些测试用例,这时候应该及时的补充;往往也会发现有些测试用例在具体的执行过程中根本无法操作,这时候应该删除这部分用例;也会发现若干个冗余的测试用例完全可以由某一个测试用例替代,那么删除冗余的测试用例。

四、黑盒测试用例的设计方法

具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、场景法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。

这些方法是比较实用的,但采用什么方法,在使用时自然要针对开发项目的特点对方法加以适当的选择。

1、等价类划分法

*在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。

*在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。

*在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

*在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。

*在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

*在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

a)确定测试用例:

*为每一个等价类编号。

*设计一个测试用例,使其尽可能多地覆盖尚未被覆盖过的合理等价类。重复这步,直到所有合理等价类被测试用例覆盖。

*设计一个测试用例,使其只覆盖一个不合理等价类。

b)举例:

问题:  “一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的。”

我们可以设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条边,必须满足:

A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。

如果是等腰的,还要判断A=B,或B=C,或A=C。

如果是等边的,则需判断是否A=B,且B=C,且A=C。

技术分享

根据以上分析,从而得到下图列表中的测试用例。

技术分享

2、边界值分析法

使用边界值分析方法设计测试用例时一般与等价类划分结合起来。但它不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据。

⑴如果输入条件规定了值的范围,可以选择正好等于边界值的数据作为合理的测试用例,同时还要选择刚好越过边界值的数据作为不合理的测试用例。如输入值的范围是[1,100],可取0,1,100,101等值作为测试数据。

⑵如果输入条件指出了输入数据的个数,则按最大个数、最小个数、比最小个数少1、比最大个数多1等情况分别设计测试用例。如,一个输入文件可包括1--255个记录,则分别设计有1个记录、255个记录,以及0个记录的输入文件的测试用例。

⑶对每个输出条件分别按照以上原则⑴或⑵确定输出值的边界情况。如,一个学生成绩管理系统规定,只能查询95--98级大学生的各科成绩,可以设计测试用例,使得查询范围内的某一届或四届学生的学生成绩,还需设计查询94级、99级学生成绩的测试用例(不合理输出等价类)。

由于输出值的边界不与输入值的边界相对应,所以要检查输出值的边界不一定可能,要产生超出输出值之外的结果也不一定能做到,但必要时还需试一试。

⑷如果程序的规格说明给出的输入或输出域是个有序集合(如顺序文件、线形表、链表等),则应选取集合的第一个元素和最后一个元素作为测试用例。

3、场景法

用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。

 

技术分享

按照上图中每个经过用例的路径,可以确定以下不同的用例场景:

场景 1 基本流

场景 2 基本流 备选流 1

场景 3 基本流 备选流 1 备选流 2

场景 4 基本流 备选流 3

场景 5 基本流 备选流 3 备选流 1

场景 6 基本流 备选流 3 备选流 1 备选流 2

场景 7 基本流 备选流 4

场景 8 基本流 备选流 3 备选流 4

注:为方便起见,场景 5、6 和 8 只考虑了备选流 3循环执行一次的情况。

4、错误推测法

概念:

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

基本思想:

列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例

5、因果图法

概念:

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

基本思想:

等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。

如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。

6、判定表驱动法

概念:

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

基本思想:

能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。

在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。

7、正交试验设计法

概念:

依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等.

基本思想:

利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。

8、功能图法

概念:

功能图由状态迁移图和布尔函数组成.状态迁移图用状态和迁移来描述.一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变.同时要依靠判定表或因果图表示的逻辑功能.

从功能图生成测试用例的过程:

1) 生成局部测试用例:在每个状态中,从因果图生成局部测试用例.局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。

2) 测试路径生成:利用上面的规则(三种)生成从初始状态到最后状态的测试路径。

3) 测试用例合成:合成测试路径与功能图中每个状态中的局部测试用例.结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。

五:测试方法选择的综合策略

在实际测试中,往往是综合使用各种方法才能有效提高测试效率和测试覆盖度,这就需要认真掌握这些方法的原理,积累更多的测试经验,以有效提高测试水平,以下是各种测试方法选择的综合策略,可在实际应用过程中参考。

*首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率的最有效方法。

*在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现程序错误的能力最强。

*对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。

*对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。

优秀测试用例的设计策略

测试工作最为基础核心的内容就是设计测试用例,什么样的测试用例是好的测试用例?我们一般会认为数量越少,发现缺陷越多的用例就是最好的用例。那么我们如何才能设计出好的测试用例呢?一份好的用例是设计出来的,是... 查看详情

测试用例设计

概念测试用例就是测试时使用的例子,是为了某个特定的目标而开发的输入、执行条件、操作步骤以及预期结果的集合。格式用例编号产品名称—用例属性—测试需求标示—数字编号测试项测试用例对应的功能模块测试标题描述... 查看详情

我的测试用例设计-01测试用例的个人见解

刚入行的时候,看了很多关于测试相关的文章,记得有一篇说到测试用例是测试灵魂让我印象深刻。如今,我入行几年了,越发深感测试用例的设计重要性,可以这么说,测试用例的设计与管理是测试工程师的核心技能。我发现... 查看详情

自动化测试用例设计

一、了解自动化测试的目的和作用  自动化测试是为了让测试人员从繁琐重复的机械式测试过程中解脱出来,把时间和精力投入到更有价值的地方,从而挖掘更多的产品缺陷。目前自动化测试更多的是定位在冒烟测试和回归测... 查看详情

自动化测试用例设计

一、了解自动化测试的目的和作用  自动化测试是为了让测试人员从繁琐重复的机械式测试过程中解脱出来,把时间和精力投入到更有价值的地方,从而挖掘更多的产品缺陷。目前自动化测试更多的是定位在冒烟测试和回归测... 查看详情

测试用例设计

一、为什么要使用测试用例1、理清思路,避免遗漏如果我们测试的项目大而复杂,我们可以把项目功能细分,根据每一个功能通过编写用例的方式来整理我们测试系统的思路,避免遗漏掉要测试的功能点。2、跟踪测试进展通过... 查看详情

测试用例设计:测试用例格式

一、什么是测试用例?  通俗的讲:就是把我们测试系统的操作步骤用按照一定的格式用文字描述出来。  二、写测试用例有什么好处?  理清思路,避免遗漏  这里是我们认为最重要的一点,假如我们测试的项目大而... 查看详情

接口测试用例设计指导文档:新建查询修改删除功能以及流程等用例设计

一、功能点测试用例(单个测试用例)二、新建接口三、查询接口&查询列表接口四、修改接口&删除接口五、流程测试用例(组合测试用例)六、测试执行时,需注意的地方 查看详情

怎么设计完整的测试用例

  测试用例的设计一般从分析需求设计说明书开始,了解开发人员设计这个项目的思路、设计的要求、实现的功能等(最好有usecase,这样看起来更清晰)。软件测试的W模型,就要求测试与开发同步,在开发设计需求设计说明... 查看详情

质量如何衡量测试用例质量

测试用例的标准不能局限于一个层次,因为测试用例设计类似于软件设计,软件设计有架构设计(结构设计/概要设计)和详细设计,所以对于测试用例的质量标准,也应分为两个层次来考虑:高层次——满足某... 查看详情

质量如何衡量测试用例质量

测试用例的标准不能局限于一个层次,因为测试用例设计类似于软件设计,软件设计有架构设计(结构设计/概要设计)和详细设计,所以对于测试用例的质量标准,也应分为两个层次来考虑:高层次——满足某... 查看详情

质量如何衡量测试用例质量

测试用例的标准不能局限于一个层次,因为测试用例设计类似于软件设计,软件设计有架构设计(结构设计/概要设计)和详细设计,所以对于测试用例的质量标准,也应分为两个层次来考虑:高层次——满足某... 查看详情

测试用例设计

一、测试用例格式1、用例编号(如:CRM-ST-客户管理-新增客户-001)2、测试项(如:客户管理--新增客户)3、测试标题(如:新增名称为空的客户信息)4、用例属性5、重要级别(包含高、中、低)6、预置条件7、测试输入(如:... 查看详情

黑盒测试用例设计-用例维护

...例维护—经验用例      当进入执行测试阶段时,我们总是能发现一些缺陷的出现是出乎我们意料的,或者说是已有的测试需求和测试用例未能覆盖的。那么,对于这部分缺陷,也应当在分析整理后添加到测... 查看详情

测试用例

一、测试用例的切面设计1、功能点切面2、特定切面3、隐含切面(1)、后台功能(2)、完整业务流程的测试(3)、某种特定情况下的系统运行(4)、其它相关系统(5)、除功能测试外的其它测试类型二、详细用例的设计1、功... 查看详情

测试用例

测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小测试实体。测试用例就是设计一个场景,使软件程序在这种场景下,必须能够正常运行并且达到程序所设计的执行结果。测试用例... 查看详情

我的测试用例设计-02用例组成元素(用例模板)

可以这么说,每一家公司对于测试用例的设计规范、风格和用例的组成元素(填写的字段)都一样,但都大同小异,不同只是来源于公司对于某些实际需求来带来的差异。一般基本的测试用例都具有以下基础的组成元素:用例编... 查看详情

自动化测试用例设计的原则

自动化测试用例设计的原则很多公司在实施自动化测试的过程中,往往会把所有的手工测试用例作为自动化测试用例,并且直接进行脚本的开发工作,甚至有些公司不写自动化测试用例,直接想当然地开发测试脚本,这些都是极... 查看详情