测试用例及其设计方法

测试用例

  1. 测试用例的定义※
    设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果。
  2. 测试用例的模板包括和包含的内容
    测试用例模版:
    测试用例模板

标识符:由测试设计过程说明和测试程序说明引用的惟一标识符
测试项:描述被测试的详细特性、代码模块等,应该比测试设计说明中所列的特性更加具体。还要指出引用的产品说明书或者测试用例所依据的其他设计文档。
输入说明:该说明列举执行测试用例的所有输入内容或者条件。
输出说明:描述进行测试用例预期的结果。
环境要求:是指执行测试用例必要的硬件、软件、测试工具、人员等。
特殊要求:描述执行测试必须的特殊要求。
用例之间的依赖性:如果一个测试用例依赖于其他用例,或者受其他用例的影响,就应该在此注明。

1、标识符(用例编号)编号规则:TeatCase_项目名称_模块名称_功能名称
2、测试项:测试用例的测试目的,用一句话或一个短语表明
3、依赖用例:一般在功能流程上,下游的功能测试依赖于上游的功能测试。
4、测试步骤:软件操作的步骤,尽量详细。例如:在用户名文本框输入:XX,在省份下拉列表选择:北京
5、测试数据:单独整合测试数据,必须和测试数据中的数据保持一致
6、预期结果:准确。对象的准确性,内容的准确性。原则上每一个操作都有一个结果。在重要步骤之后,设定预期结果。
7、测试结果:在测试执行完成之后添加。没有执行保持为空
测试结果只有两个:通过/失败 pass/failed
和预期结果一致即为通过,不一致即为失败。
8、测试人:测试的执行人。可以和设计者相同,也可以不同
9、备注:为了测试用例正常执行而做的特殊准备。
例如:专门制造网络不通畅情况下,软件错误提示。

  1. 设计测试用例的作用
    1)有效性:
    测试用例是测试人员测试过程中的重要参考依据。
    2)可复用性:
    良好的测试用例具有重复使用的功能,使得测试过程事平功倍,提高测试效率。
    3)易组织性:
    即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用.
    4)可评估性:
    从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。
    5)可管理性:
    测试用例也可以作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的标准。

4、测试用例设计方法
黑盒测试用例设计方法
测试数据选择
1)等价类划分法
-把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例
-每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
-反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误

划分的原则
1、在输入条件归定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。
例如:请在输入8-12数字
一个有效等价类:8-12个数字
两个无效等价类:小于8个的数字;大于12个的数字

2、
·在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类
例如,请输入11位手机号码
一个有效等价类:输入11位
一个无效等价类:不是11位的

3、在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
例如:
一个有效等价类:真就是有效的
一个无效等价类:假就是无效的

4、在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
例如:输入账号密码
n个有效等价类:一个数据为真就是一个有效等价类
一个无效等价类:N个数据不匹配,账号如果为假,密码真或假都无所谓,都属于这一个无效等价类。

5、在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个羌效等价类(从不同角度违反规则)
例如:输入8-12位密码,包括小写字母、数字、下划线_
一个有效等价类:符合规则的输入
若干个无效等价类:不包括字母、不包括数字、没有下划线、都是数字、都是字母…

6、在确知己划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类迸二步地划分为更小的等价类

2)边界值分析法:
既适用于黑盒测试也适用于白盒测试

1)如果输入条件规定了值得范围,则应取刚到达这个范围得边界得值,以及刚刚超越这个范围边界得值作为测试得输入数据。
2)如果输入条件规定了值得个数,则用最大个数、最小个数、比最小个数少1,比最大个数大1的数作为测试数据。
3)分析规格说明,找出其他可能的边界条件。
4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界值上的值作为测试用例。

问题:
1)6≤x≤12,请问测试中x的边界值要选取哪几个进行测试?
5 6 7 11 12 13
2)6<x<12,请问测试中x的边界值要选取哪几个进行测试?
6 7 8 10 11 12
这个时候6 和12 是无效等价类,真正的边界是7 和11
3)有一个文本框,输入字符的个数要求不大于150字,测试如何选择边界值?
0≤x≤150,空 1, 149 150 151

测试步骤设计:
1)因果图法:
什么是因果图?
-适用于描述多种输入条件组合的测试方法
-根据输入条件的组合,约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法
-它适合于检查程序输入条件涉及的各种组合情况。

第一步:根据功能说明书中规定的原因和结果之间的关系画出因果图
恒等

或(V):全假才假(相当于加法)
与:全真为真,(相当于乘法)
第二步:根据功能说明在因果图中加上约束条件
约束条件

其中,互斥、包含、唯一、要求 是对原因的约束,屏蔽是对结果的约束
互斥:不能同时位1,即a b c 中至多只有一个1
包含:至少有一个1
唯一:有且只有一个1
要求:表示若a=1,则b必须为1.
屏蔽:若a=1,则b必须等于0;
原因和结果的关系

2)判定表驱动法:
是分析和表达多逻辑条件下执行不同操作的情况的工具,由以下几个内容组成
1、条件桩(Condition Stub)
列出了问题所有条件,通常认为列出的条件的次序无关紧要
2、动作桩(Action Stub)
列出了问题规定可能采用的操作。这些操作的排列顺序没有约束
3、条件项(Condation Entry)
列出针对它左列田间的取值。在所有可能情况下的真假值。
4、动作项(Action Entry)
列出条件项的各种取值情况下因该采取的动作。

应用场合:主要适用于多条件的内容组合和结果分析
组成:条件桩、动作桩、条件项、动作项
使用的条件:所有的条件桩在表中的位置和顺序互相不影响
所有的动作桩的顺序不会以条件顺序的变化而产生不同。

建立判定表的步骤
·第一步:确定规则的个数
假如有n个条件,每个条件有两个取值(o,1),故有2^n种规则
·第二步:列出所有的条件桩和动作桩
填入条件项
填入动作项,制定初始判定表
·第三步:简化,合并相似规则或者相同动作

例:
案例

第一步:分析条件和动作
分析条件和动作

第二步:写入条件桩、动作桩、条件项、动作项
写入条件桩、动作桩、条件项、动作项

第三步:对判定表进行简化和优化,对其中不合理或者重复的进行取舍
分析:只要未超时,不管金额是否大于500,都发批准单和提货单。所以可以选(1,0),(0,0)二者中的一个进行测试。

第四步:将判定表中的每一列(条件和对应的动作项)作为测试用例的需求和操作以及对应的预期结果。

测试用例的设计方法,没有哪一种方法是单独使用的
a)所有的软件,都是因为某种操作才会导致一定的结果。——因果图法
b)所有的软件都有文本框——等价类、边界值法

实例:读书指南
读书指南判定表
简化:
1-5合并:内容感兴趣、而且糊涂。 就回到本章开头重读
2-6合并:对内容感兴趣,不糊涂。 继续读下去
3-4合并:疲倦且不感兴趣。 休息
7-8合并:不疲惫且不感兴趣。 跳到下一章
优化后

3)正交实验法:
由日本统计学家提出
使用的工具:正交表
统计和分析实验数据,从大量实验中找到合适的实验数据组合(原本用于工业生产的数据组合与实验室的数据挑选)
大量的实验组合中,挑选出来一部分具有代表性的电,进行实验,分析数据。(与等价类划分的思想相似)
核心概念:
1)影响试验结果的量称为试验因素(因子),简称因素。
2)把因素所处的状态或状况称为因素的水平(因素的不同取值),简称水平。
例如字的显示效果:
字体、字号、颜色——称为因素
字体选择时可以选择宋体、黑体、小篆、隶书——称为水平
字号可以选择的内容——水平
在任意2列横向组成的数字对中,每种数字对出现的次数相等。数字对出现的次数也相等。这个特点保证了试验点均匀的分散在因素与水平的完全组合之中。

实施步骤:
1、分析对结果有影响的因素,从多个角度和方式进行分析
2、分析因素的水平数量,充分利用等价类、边界值
3、选择正交表。只有特定的因素数和水平数的组合才有对应的正交表。找最贴近的正交表,正交表的因素数和水平数一般要大于实际的因素数和水平数。

正交表:
表达式:L n (m^k )
n代表试验次数;m代表水平数量;k代表因素数量。三个数之间没有任何数学关系。
行数,就是测试数。也是通过正交表

4)功能图法:
又叫状态迁徙法。
来源:在遇到有事务流或者某种条件成立导致状态改变的软件时,如何进行测试用例的设计就比较麻烦。
目标:尽可能覆盖软件的状态、状态组合、状态变迁路径
使用场合:软件的状态会根据某些内容、条件、操作的变化而变化。
步骤:
1、列出所有可能的输入事件,以Ip N(input)(N=1,2,3…)
2、定义空闲状态(初始状态),软件的打开的初始状态。
3、在“空闲”状态上,加上所有可能的输入(只加一次)
4、循环执行3
5、直到再没有任何新状态产生,列出所有的状态,生成状态表。
6、组合任意可能的状态组合,写出相应的测试用例。

5)场景法:
1、场景法基本原则:
原理:现在的软件基本都是用事件来控制流程的,测试时,可以盛鼎的描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。
基本流;软件功能按照正确的事件流实现的一条正确流程。通常一个业务仅存在一个基本流,且基本流仅有一个七点和一个终点。
备选流:除了基本流之外的各支流,包含多种不同的情况。
注意:
1、场景中必须有基本流
2、场景中必须有内容从用例开始,到用例结束

案例:ATM机取款

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值