软件测试用例的几种设计方法
一、等价类划分法
所谓「等价」,就是具有相同属性或者方法的集合,这个集合中某个个体所表现的特征与其他个体完全一致。
由此可知,等价类划分就是将所有可能的输入数据,划分成若干个等价类,然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,分为有效等价类和无效等价类。
例如,规定的用户名长度区间为4~8个字,那么它的有效等价类是用户名长度在[4,8],无效等价类为用户名长度大于8位,或用户名长度小于4位。
二、边界值
测试经验告诉我们,在测试有时会涉及到大量的数据,遍历所有数据会使测试效率低下,如果是手工执行,更加难以覆盖所有数据。这时更有效率的做法是,先划分等价类,再从等价类中选择部分参数测试,边界值是等价类所有可选参数中最容易出问题的地方,所以我们一般会选择边界值作为测试的重点,边界值法的应用步骤如下:
1.先根据等价类法划分有效等价类和无效等价类,确定上点、离点及内点。上点是边界上的点,离点是离上点最近的点,内点则是边界有效范围内的任意一点。同样以用户名长度为4~8位为例,4和8为上点,3和9为离点,6则为内点。
2.设计一个新的测试用例,使其尽可能地覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖。
3.设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类都被覆盖。
三、判定表法
判定表又称策略表、决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合。判定表法适合逻辑判断比较复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,具体又明确地表达复杂地逻辑关系和多种条件组合情况。
判定表主要由条件桩和动作桩两部分组成。条件桩是功能要满足地所有条件,动作桩则是所有可能的操作以及产生的结果。
判定表能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。其缺点是判定表的建立过程较烦杂,当条件过多时,需要分析的逻辑组合呈2的倍数增长。测试工程师可根据实际情况与等价类划分法、边界值法结合使用。
四、正交试验法
正交试验法是研究多因素、多水平组合的一种实验法,它是利用正交表来对实验进行设计,通过少数的实验替代全面实验。正交表中所有参与试验的、影响试验结果的条件成为因子,影响试验因子的取值或输入的成为水平。
在设计测试用例时,采用正交试验法能够有效地、合理地减少测试的工作量与和成本。正交试验的一般流程包括以下几个步骤:
1)分析测试需求,获取因子和水平
2)根据因子和水平选择合适的正交表
3)替换正交表中的因子和水平,获取试验次数
4)根据经验或者其他因素补充试验次数
5)细化输出获得测试用例
以上是一些常见的测试用例设计方法,希望能够解答你的问题。
一、等价类划分法
所谓「等价」,就是具有相同属性或者方法的集合,这个集合中某个个体所表现的特征与其他个体完全一致。
由此可知,等价类划分就是将所有可能的输入数据,划分成若干个等价类,然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,分为有效等价类和无效等价类。
例如,规定的用户名长度区间为4~8个字,那么它的有效等价类是用户名长度在[4,8],无效等价类为用户名长度大于8位,或用户名长度小于4位。
二、边界值
测试经验告诉我们,在测试有时会涉及到大量的数据,遍历所有数据会使测试效率低下,如果是手工执行,更加难以覆盖所有数据。这时更有效率的做法是,先划分等价类,再从等价类中选择部分参数测试,边界值是等价类所有可选参数中最容易出问题的地方,所以我们一般会选择边界值作为测试的重点,边界值法的应用步骤如下:
1.先根据等价类法划分有效等价类和无效等价类,确定上点、离点及内点。上点是边界上的点,离点是离上点最近的点,内点则是边界有效范围内的任意一点。同样以用户名长度为4~8位为例,4和8为上点,3和9为离点,6则为内点。
2.设计一个新的测试用例,使其尽可能地覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖。
3.设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类都被覆盖。
三、判定表法
判定表又称策略表、决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合。判定表法适合逻辑判断比较复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,具体又明确地表达复杂地逻辑关系和多种条件组合情况。
判定表主要由条件桩和动作桩两部分组成。条件桩是功能要满足地所有条件,动作桩则是所有可能的操作以及产生的结果。
判定表能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。其缺点是判定表的建立过程较烦杂,当条件过多时,需要分析的逻辑组合呈2的倍数增长。测试工程师可根据实际情况与等价类划分法、边界值法结合使用。
四、正交试验法
正交试验法是研究多因素、多水平组合的一种实验法,它是利用正交表来对实验进行设计,通过少数的实验替代全面实验。正交表中所有参与试验的、影响试验结果的条件成为因子,影响试验因子的取值或输入的成为水平。
在设计测试用例时,采用正交试验法能够有效地、合理地减少测试的工作量与和成本。正交试验的一般流程包括以下几个步骤:
1)分析测试需求,获取因子和水平
2)根据因子和水平选择合适的正交表
3)替换正交表中的因子和水平,获取试验次数
4)根据经验或者其他因素补充试验次数
5)细化输出获得测试用例
以上是一些常见的测试用例设计方法,希望能够解答你的问题。
1、等价类划分
为每个输入划分等价类,得到等价类表,为每个等价类规定一个唯一编号。设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类。重复这一步骤,使得有效等价类均被测试用例所覆盖设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖。
2、边界值分析
从测试规格中分析得到输入参数类型,对于输入等价类划分方法进行等价类的划分,运用域测试分析方法确定域范围的边界(上点、离点与内点)。如果存在多个输入域,则需要运用因果图、判定表方法这些输入域边界值的组合情况进行进一步分析,选择这些上点、离点与内点或者这些点的组合形成测试项。
3、判定表
判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。
列出所有的条件桩和动作桩,填入条件桩、条件项和动作桩、动作项,化简,合并相似规则,将每条规则转化为用例。
基本格式
1、用例编号
测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则:PROJECT1-ST-001,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
2、测试标题
对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如“测试用户登录时输入错误密码时,软件的响应情况”。
3、重要级别
定义测试用例的优先级别,可以笼统的分为四个不同的等级。
4、输入限制
提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
5、操作步骤
提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
6、预期结果
提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。
在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。
测试用例的使用令软件测试的实施重点突出、目的明确。
在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期。
检验软件是否满足客户需求、体现一个测试人员的工作量、展现测试用例的设计思路。
必须掌握:用例编号(如何命名)、所属模块、用例标题(验证谁在什么情况下,去做什么,最后结果是什么)、优先级、前置条件、操作步骤、测试数据、预期结果、实际结果
了解内容:通过否、bugID、编写人员、编写时间、测试人员、测试时间、备注
测试用例覆盖所有的用户需求
测试用例要简单明了
各类型的测试用例要齐全
用最少的用例覆盖最多的需求
等价类划分 是把所有可能输入的数据分为若干个区域,然后从每个区域中取少量有代表性的数据进行测试即可。
等价类 :何为等价类,某个输入域的集合,在这个集合中每个输入条件都是等效的。
一般可分为有效等价类和无效等价类。
有效等价类:指符合《需求规格说明书》,输入合理的数据集合
无效等价类:指不符合《需求规格说明书》,输入不合理的数据集合
取值范围型: 输入学生成绩 0-100
恒等类型 : 只有一个结果是正确的,其他都是错误的 例如 彩票的特等奖
布尔值型: 通过是否来进行选择,如同意协议
枚举类型: 给出选项内容,只要符合其中任意一个就可以 例如选择学历
规则类型: 给定要求,满足要求的就可以,比如邮箱
在任意文本输入框中可以填写的字符类型: 中文、英文、特殊符号、空格、数字。
定义:边界值分析 是取稍高于或稍低于边界的一些数据进行测试。
原因: 程序开发循环体时的取数可能会因为<,<=搞错。
上点: 是指边界上的点,无论此时的域是开区间还是闭区间,开区间的话,上点就是在域外,闭区间的话,上点就是在域内。
离点: 是指离上点最近的点,这里就跟是闭区间还是开区间就有关系了,如果是开区间,那么离点就在域内,如果是闭区间,那么离点就在域外。(开内闭外)
遵循的原则:开内闭外 开区间往中间找,闭区间往外找
内点: 域内的任意点都是内点。
0<=x<=10 左上点 0左离点 -1右离点 11 右上点 10 内点 5
0<x<10 左上点 0 左离点 1 右离点 9 右上点 10 内点 5
0<=x<10 左上点 0 左离点 -1 右离点 9 右上点 10 内点 5
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
1、确定原因、结果、中间过程
2、连接因果图
3、标明约束条件
4、输出测试用例
错误猜测法是测试经验丰富的人喜欢使用的一种测试用例设计方法。
一般这种方法是基于经验和直觉推测程序中可能发送的各种错误,有针对性地设计。只能作为一种补充。
输入一串数字,程序可自动从小到大排序
邮箱格式@符合的全角以及半角情况
测试手机终端的通话功能,可以设计各种通话失败的情况来补充测试用 例:
无SIM 卡插入时进行呼出(非紧急呼叫)
插入已欠费SIM卡进行呼出
射频器件损坏或无信号区域插入有效SIM卡呼出
网络正常,插入有效SIM卡,呼出无效号码(如1、888、333333、不输入任何号码等)
网络正常,插入有效SIM卡,使用“快速拨号”功能呼出设置无效号码的数字
最重要的是要思考和分析测试对象的各个方面,多参考以前发现的bug的相关数据,总结的经验,个人多考虑异常的情况、反面的情况、特殊的输入,以一个攻击者的态度对待程序,就能设计出比较完善的测试用例来。
设计测试用例时,分析和表达多输入条件下执行不同操作的黑盒测试方法。
注意: 该方法和因果图法相似。
1、确定原因和动作
2、排列组合
3、标明结果关系
4、输出测试用例
日本人提出
使用工具:正交表
正交实验法就是利用排列整齐的表 -正交表来对试验进行整体设计、综合比较、统计分析,实现通过少数的实验次数找到较好的生产条件,以达到最高生产工艺效果。
这种试验设计法是从大量的试验点中挑选适量的具有代表性的点,利用已经造好的表格—正交表来安排试验并进行数据分析的方法。
正交表能够在因素变化范围内均衡抽样,使每次试验都具有较强的代表性,由于正交表具备均衡分散的特点,保证了全面实验的某些要求,这些试验往往能够较好或更好的达到实验的目的。
正交实验设计包括两部分内容:第一,是怎样安排实验;第二,是怎样分析实验结果。
在一个界面中有多个控件,每个控件有多个取值,控件之间可以相互组合,不可能(也没有必要)为每一种组合编写一条用例,如何使用最少最优的组合进行测试。——正交排列法
1. 边界值分析法:
指对输入的边界条件进行分析,设计出针对边界值的测试用例。
数值的边界值检验
字符的边界值检验
如: ASCII和 Unicode编码方式
其他边界值检验
选上所有选项(最大值)
不选上任何一项(空,零)
只选一项 (最小值)
2. 等价类划分法:
有效等价类:指输入完全满足程序输入的规格说明,是由有效且有意义的输入数据所构成的集合,利用有效等价类可以检验程序是否满足规格说明所规定的功能和 性能 。
无效等价类:和有效等价类相反,即不满足程序输入要求或者由无效的输入数据构成的集合。
3. 因果图法:
就是利用图解法分析软件输入(原因)和输出条件(结果)之间的关系,以设计测试用例的方法。因果图法适合于检查程序输入条件的多种情况的组合,并最终生成判定表,来获得对应的测试用例。
4. 功能图法
功能图是描述程序状态变化、转移的过程,因为软件运行或操作的过程可以看作是其状态不断发生变化的过程。测试用例的设计就是如何覆盖所有软件表现出来的状态,即在满足输入/输出的一组条件下,软件运行是一系列有次序的、受控制的状态变化过程。
5. 错误推测法:
推测法主要依赖经验、直觉来作出简单的判断甚至是猜测,给出可能存在 缺陷 的条件、场景等,在找到缺陷后,设计出相应的测试用例。
6. 正交实验设计方法:
主要步骤是:
(1) 对软件 需求 规格说明中的功能要求进行划分(层层分解与展开),分解成具体的、相对独立的基本功能。
(2) 根据基本功能的 质量 需求,找出影响其功能实现的操作对象和外部因素,每个因素的取值可以看作水平,多个取值就存在多个水平。
(3) 确定待测试软件中所有因素及其权值,这是 测试用例设计 的关键,确保全面、准确。
权值是依据各因素的影响范围、发生的频率和质量的需求来确定的。
(4) 加权筛选,生成因素分析表。
(5) 利用正交表构造测试数据集,正交表的每一行,就是一条测试用例。考虑交互作用不可忽略的处理因素和不可混杂的原则,有交互作用的组合优先安排。
定义: 把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,用少量代表性的测试数据,取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
1)确定等价类
有效等价类: 满足输入条件的
无效等价类: 不能满足输入条件的 超出范围的数值
空值
特殊字符
有空格(前、中、后)
2)生成测试用例
每个等价类编写一个测试用例;
设计一条测试用例,尽可能多地覆盖所有还未被覆盖的有效等价类;
设计一条测试用例,覆盖一条还未被覆盖到的无效等价类。
等价类划分的六大原则:
1)输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
例如:手机号码由11位数字组成
有效:11位符合电话号码规则的数字
无效:1、小于11位数字;2、大于11位数字
2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。
3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。布尔量是一个二值枚举类型,一个布尔量具有两种状态:true和false
4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
例如:
输入条件说明输入为:中文、英文、数字三种之一,则分别取这三种值作为三个有效等价类,另外把这三种字符以外的任何字符作为无效等价类
5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
例如:输入条件说明每个学生可选修1~3门课程
有效:选修1~3门课程
无效:1、未选修课程
2、选修课程超过3门
6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
等价类划分法要点:长度、类型、字母、汉字、特殊字符、空、空格
二、边界值分析法
边界值分析方法是对等价类划分方法的补充。
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是着重测试边界的情况。选取正好等于,刚刚大于或刚刚小于边界值的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
1)如果输入条件规定了一个输入值范围,那么应针对范围的边界设计测试用例,针对刚刚越界的情况设计无效输入测试用例;
比如:需求规定输入的数字在0~100范围内,此时测试数据应该有一下几类:
a.刚刚等于边界:0、100;
b.刚刚超出边界范围:-1、101:;
c.刚刚在范围内:1、99
2)如果输入条件规定了输入值的数量,那么应针对最小数量输入值、最大数量输入值,以及比最小数量少一个、比最大数量多一个的情况设计测试用例;
例1:输入手机号码有:
a 输入11位合法数字;b 输入10 位合法数字;c 输入12位合法数字
例2:输入6~8位数字密码:
a 输入6位数字;b 输入8位数字c 输入5位数字;d 输入9位数字
3)如果程序输入或输出是一个有序序列,则应该特别注意该序列的第一个和最后一个元素。
三、错误推测法
错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。需要多实践,且在实践时多积累常见问题。
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例-例如, 在单元测试时曾列出的许多在模块中常见的错误-以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行-这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。
四、因果图法
因果图法适用于描述对于多种输入条件组合的测试方法。(有多步输入操作)
根据输入条件的组合、约束条件和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件涉及的各种组合情况。
例题:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。
分析:
输入条件:a 投入1元5角硬币 b 投入2元硬币
1 按“可乐”按钮 2 按“雪碧”按钮 3 按“红茶”按钮
中间状态:1 已投币 2 已按按钮
输出结果:A 送出可乐 B 送出雪碧 C 送出红茶 D 退还5角硬币
测试用例:
1)投币1元5角,按“可乐”按钮,送出可乐
2)投币1元5角,按“雪碧”按钮,送出雪碧
3)投币1元5角,按“红茶”按钮,送出红茶
4)投币2元,按“可乐”按钮,送出可乐,退5角硬币
5)投币2元,按“雪碧”按钮,送出雪碧,退5角硬币
6)投币2元,按“红茶”按钮,送出红茶,退5角硬币
输入组合:投硬币+按按钮
结果组合:送出饮料+退钱
设计、书写和执行测试案例是测试活动中重要的组成部分,测试案例通常由测试案例管理系统或工具进行管理。
测试用例的重要性是毋庸置疑的,它是软件测试全部过程的核心,是测试执行环节的基本依据。测试用例编写应该遵循的原则:
特性:
一个好的测试用例应该具有较高的发现某个尚未发现的错误的可能性,而一个成功的测试案例能够发现某个尚未发现的错误,通常一个好的测试案例有以下特性:
测试用例不可能设计得天衣无缝,也不可能完全满足软件需求的覆盖率,测试执行过程里肯定会发现有些测试路径或数据在用例里没有体现,那么事后该将其补充到用例库里,以方便他人和后续版本的测试。
测试用例的信息有很多,可以根据实际的情况进行增删,一般来说一个优秀的测试用例应该包含以下信息:
这些信息建议可以由测试案例自动生成。
测试级别进行说明:
6.测试类型:功能测试、边界测试、异常测试、性能测试、压力测试、兼容测试、安全测试、恢复测试、安装测试、界面测试、启动/停止 测试、文档测试、配置测试、可靠性测试、易用性测试、多语言测试。
7.预置条件:对测试的特殊条件或配置进行说明
8.测试步骤:详细描述测试过程,案例的操作步骤建议少于15个。
9.预期结果:预期的测试结果
例如:假设目前测试中国移动互联短信网关是否能正确发送短信给中国联通互联网关,测试用例的设计如下:
(1)测试用例ID:TC000001
(2)测试用例名称:中国移动全球通手机用户成功发送短信给中国联通手机用户
(3)测试功能点:中国移动全球通手机用户成功短信给中国联通手机用户,中国联通网关返回成功的状态报告
(4)测试目的:
A、中国移动互联短信网关能否正确处理全球通用户发送给中国联通用户的短信;
B、中国移动互联短信网关能否正确处理中国联通互联短信网关返回成功的状态报告的情况。
(5)测试级别:基本功能测试
(6)测试类型:功能测试
(7)预置条件:各网关实体按照组网图中的关系连接好,各实体之间的连接和通信正常。
(8)测试步骤:
A、中国移动全球通手机用户(13901000001)给中国联通手机用户(13001000001)发送MO短信,内容为“测试”,目的号码填为中国联通手机号码;
B、中国联通互联短信网关把短信下发给中国联通用户成功后,给中国移动互联短信网关返回一个标识成功的状态报告。
(9)预期结果:
A、中国联通手机用户(13001000001)接收到了短信,内容为“测试”,源号码为中国移动全球通的用户号码(13901000001);
B、在中国移动互联短信网关上产生SMO话单,其中“短消息发送状态”填0(表示成功),“源手机号码”13001000001,“目的手机号码”为13001000001。
下面是一个完整的测试用例的模版:
对一个全新的产品来说,首先需要了解的是产品需求文档和产品模块之间的关系。然后需要从需求文档中书写与所有需求相对应的主路径测试案例和烟雾测试案例, 这个时候也同时会包括一定的基本路径测试案例甚至是详细测试案例。在这个时候,因为对产品没有直接的使用感受,书写测试案例要考虑面广而不要太过精细。继 续阅读产品功能定义文档,将所有的功能定义直接对应写相关的测试案例,这个时候,最好能够对程序的本身有一定的接触,加深对程序的了解,以便写出更好,更 全面的测试案例。最后,在实际测试中,还需要不断扩充,修改以前的测试案例,得到完整的基本功能测试案例和详细测试案例。如果对于一个已有一定或大部分案 例的产品来说,不管测试者是否本身熟悉这个产品,其主要的任务就是阅读,检查需求及相关的变更,然后对原有的案例进行理解,扩充和修改。这就是案例的重用 /复用。设计测试案例的时候,需要有清晰的测试思路,对要测试什么,按照什么顺序测试,覆盖哪些需求做到心中有数。测试用例编写者不仅要掌握软件测试的技 术和流程,而且要对被测软件的设计、功能规格说明、用户试用场景以及程序/模块的结构都有比较透彻的理解。
测试用例设计一般包括以下几个步骤:
1、测试需求分析从软件需求文档中,找出待测试软件/模块的需求,通过自己的分析、理解,整理成为测试需求,清楚被测试对象具有哪些功能。测试需求的特点是:包含软件需求,具有可测试性。
测试需求应该在软件需求基础上进行归纳、分类或细分,方便测试用例设计。测试用例中的测试集与测试需求的关系是多对一的关系,即一个或多个测试用例集对应一个测试需求。
2、业务流程分析软件测试,不单纯是基于功能的黑盒测试,还需要对软件的内部处理逻辑进行测试。为了不遗漏测试点,需要清楚的了解软件产品的业务流程。建 议在做复杂的测试用例设计前,先画出软件的业务流程。如果设计文档中已经有业务流程设计,可以从测试角度对现有流程进行补充。如果无法从设计中得到业务流 程,测试工程师应通过阅读设计文档,与开发人员交流,最终画出业务流程图。业务流程图可以帮助理解软件的处理逻辑和数据流向,从而指导测试用例的设计。
从业务流程上,应得到以下信息:
A、主流程是什么
B、条件备选流程是什么
C、数据流向是什么
D、关键的判断条件是什么
3、测试用例设计
完成了测试需求分析和软件流程分析后,开始着手设计测试用例。测试用例设计的类型包括功能测试,边
界测试,异常测试,性能测试,压力测试等。在用例设计中,除了功能测试用例外,应尽量考虑边界、异
常、性能的情况,以便发现更多的隐藏问题。
黑盒测试的测试用例设计方法有:等价类划分、边界值划分、因果图分析和错误猜测,白盒测试的测试用
例设计方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖。在这里主要讨论黑盒测
试。在设计测试用例的时候可以使用软件测试用例设计方法,结合前面的需求分析和软件流程分析进行设
计:
功能测试:测试某个功能是否满足需求的定义,功能是否正确,完备。
适合的技术:由业务需求和设计说明导出的功能测试、等价类划分
边界测试:对某个功能的边界情况进行测试。
适合的技术:边界值划分
异常测试:对某些功能来说,其边界情况无法简单的了解或某些操作不完全是正确的但又是可能发生的,
类似这样的情况需要书写相关的异常测试。
适合的技术:由业务需求和设计说明导出的特殊业务流程、错误猜测法、边界值分析、内部边界值测试、
性能测试:检查系统是否满足在需求中所规定达到的性能,性能主要包括了解程序的内外部性能因素。内部性能因素包括测试环境的配置,系统资源使用状况;外部因素包括响应时间,吞吐量等。
适合的技术:业务需求和设计说明导出的测试
压力测试:压力测试又称强度测试,主要是检查系统运行环境在极限情况下软件运行的能力,比如说给一个相当大的负荷或网络流量给应用软件兼容测试:测试软件产品在不同的平台,不同的工具,相同工具的不同版本下功能的兼容性。
4、测试用例评审
测试用例设计完成后,为了确认测试过程和方法是否正确,是否有遗漏的测试点,需要进行测试用例的评审。
测试用例评审一般是由测试leader安排,参加的人员包括:测试用例设计者、测试leader、项目经理、开发工程师、其它相关开发测试工程师。测试用例评审完毕,测试工程师根据评审结果,对测试用例进行修改,并记录修改日志。
5、测试用例更新完善
测试用例编写完成之后需要不断完善,软件产品新增功能或更新需求后,测试用例必须配套修改更新;在测试过程中发现设计测试用例时考虑不周,需要对测试用例 进行修改完善;在软件交付使用后客户反馈的软件缺陷,而缺陷又是因测试用例存在漏洞造成,也需要对测试用例进行完善。一般小的修改完善可在原测试用例文档 上修改,但文档要有更改记录。软件的版本升级更新,测试用例一般也应随之编制升级更新版本。测试用例是“活”的,在软件的生命周期中不断更新与完善。
从1开始,按顺序排列下去
2.测试项目
当前编写的用例的项目名,可以是测试用例所属大类,被测需求、被测模块、或被测单元。如:编写登录功能的用例时,此处可以填 “登录”
*当前测试用例所属项目,可以区分的更细
3.用例标题
对测试用例的简单描述
4.重要级别
划分三个等级,高、中、低
*一般重要级别高的用例,在一个测试项里不宜出现太多
5.预置条件
执行当前用例的需要满足的前提条件。如:修改用户信息,预置条件是:当前用户处于登录状态
6.测试输入
用例执行时,需要外部的输入信息
7.操作步骤
用例执行时的具体步骤,要求每一步都描写详细,保证测试人员可以按照此步骤,顺利的执行用例
8.预期结果
指按操作步骤执行时,预期应该出现的结果,用来与测试结果作比对
9.测试结果
指按操作步骤,在实际的产品环境(一般是测试环境)中,执行用例时出现的结果与预期结果的对比,若一致,则写OK,否则NG
10.测试人员
测试用例的执行人员
11.bugID
用例在实际的产品环境(一般是测试环境)执行时,出现的bug,在bug跟踪系统上记录后,记录在此,便于以后重点测试
1.等价类划分法
将测试的范围划分为几个互不相交的子集,这几个子集的并集是全集。再分别从每个子集里选取若干的代表作为测试的输入
如:测试商品的价格输入是否有效,限制为不大于9位的全数字。可以用等价类划分为空、输入1到9位数字、输入大于9位数字、输入1到9位的非数字
输入为空:“”(无效等价类)
输入1-9位数字:“0”(有效等价类),“2300”(有效等价类),“000000000”(有效等价类),“120333520”(有效等价类)
输入大于9位数字:“00000000000”(无效等价类)
输入1到9位非数字:“aaa!”(无效等价类)
上面抽取的7个值就是通过等价类划分选出的测试用例。在输入1-9位数字中,选取了多个输入值,因为“0”作为价格有特定的含义。“2300”和“120333520”本质上是一样的,在时间紧的情况下,可只选其一
2.边界值分析法
边界值分析法一般作为对等价类划分法的补充,边界值来源等价类划分的边界。处于边界附近很容易发生错误,用边界值分析法设计测试用例,对比处于中间范围的值,可以发现更多的问题。
边界值分析法,测试用例的选取为:等于边界值,刚刚大于边界值,刚刚小于边界值,作为完整的测试,还应选取一个中间的值作为测试用例。
如:某项值的输入范围为1≤X≤10,可选取1,2,4,9,10作为测试用例
*用边界值分析法可以对等价类划分法进行补充,在这种情况下,边界值来源等价类划分的边界
3.错误推测法
指基于经验或直觉推测出的程序中可能出现的错误,从而有针对性的设计用例
如:可以根据经验推测,支付时,一些支付失败的情况。1.支付时,网络中断 2.支付时,账户余额不足 3.支付时,超过支付时限
4.判定表法
该方法适用于逻辑判断复杂的场景,通过穷举法列举所有条件组合下可能出现的结果,再对结果进行优化整合
条件桩:列出问题所有条件,不受次序的影响
动作桩:列出所有的可能动作
条件项:列出针对它左列条件的取值。在所有可能情况下的真假值
动作项:列出在条件项的各种取值情况下应该采取的动作
判定表法的一般设计步骤:
1. 确定规则的个数。假如有n个条件,每个条件有两个取值(0,1),故2^n种规则。
2. 列出所有的条件桩和动作桩
3. 填入条件项
4. 填入动作项,得到初始判定表
5. 简化,合并相似规则(相同动作)
如:功率大于50马力且维修记录不全的机器,或已运行10年以上的机器,应给予优先的维修处理。假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义,建立判定表
*根据给出的例题进行仿写,可加深理解
5.正交试验法
在一项试验中,把影响试验结果的量称为试验因素(因子),简称因素。因素可以理解为试验过程中的自变量,试验结果可以看成因素的函数。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平。
正交试验法适用于多因素、多水平试验,是一种高效率的试验设计方法。
用正交试验设计方法设计测试用例时主要包括以下步骤:
1. 确定因素
因素是指对待测功能点有影响的变量。如:判定表法中的条件桩。
2. 确定因素的取值范围或集合(该步是为步骤3做准备的)
因素的取值范围是指确定每个因素的可能取值,为每个因素的水平数确定作准备。
3. 确定每个因素的水平
根据因素的取值范围或集合,采用等价类划分、边界值分析以及其他软件测试技术,在每个因素的取值范围或集合内挑选出有有代表性的测试值。
(4) 选择正交表
根据确定的因素k和水平m ,计算出行数L,再选择适合的正交表。
行数的计算:
(1)各因素的水平数相等 ,称作单一水平正交表 L=K*(m-1)+1,如3因素,2水平,L=4,表示为:L4(2^3)
(2)因素有多种水平数,称作混合水平正交表 L=∑(m-1)+1,如3因素3水平,2因素2水平,L=3*(3-1)+2*(2-1)+1=9,表示为:L9(3^3*2^2)
正交表的选择:
(1)单一水平正交表:
如果存在试验次数等于L,并且水平数大于等于m、因素数大于等于k的正交表,那刚好可以套用现有的正交表。如果不存在试验次数等于L的正交表,那就得找出满足试验次数大于L,并且水平数大于等于m、因素数大于等于k的正交表。如:行数(1)的计算,可选择L4(3因素2水平)
(2)混合水平正交表:
如果存在试验次数等于L,并且水平数大于等于max(m1,m2,m3…)、因素数大于等于(k1+k2+k3+…)的正交表,刚好也可以套用现有的正交表
如果不存在试验次数等于L的正交表,就要找出满足试验次数大于L,并且水平数大于等于max(m1,m2,m3…)、因素数大于等于(k1+k2+k3+…)的正交表。如:行数(2)的计算,可选择L16b(5因素4水平)
当有2个或2个以上正交表可以被选择时,选取原则是选试验次数最少的那个正交表。
练习:
Dr. Genichi Taguchi 设计的正交表: Orthogonal Arrays
测试用例的几种常见设计方法 - 51Testing软件测试网
测试用例设计方法
测试用例设计方法--正交试验法详解(三) - cmriqa的个人空间
测试用例设计之正交法 - CSDN博客
测试用例设计方法 - Molrang - 博客园
判定表法定义
判定表是分析和表达逻辑条件下执行不同操作的情况的工具。
判定表的4个组成部分
判定表通常有以下四个部分组成:
1)条件桩(Condition Stub):在左上部,列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
2)动作桩(Action Stub):在左下部,列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
3)条件项(Condition Entry):在右上部,列出针对它左列条件的取值。在所有可能情况下的真假值。
4)动作项(Action Entry):在右下部,列出在条件项的各种取值情况下应该采取的动作。
判定表法设计测试用例步骤以及案例讲解
判定表的建立步骤:
1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2的n次方种规则。
2)列出所有的条件桩和动作桩。
3)填入条件项。
4)填入动作项。得到初始判定表。
5)简化、合并相似规则(相同动作)。
案例:
判定表也称我决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合。与因果图法相似判定表法主要侧重输入条件之间的逻辑关系。
1.判定表主要包含以下五部分:
条件桩:列出所有可能的条件
条件项:列出所有的条件取值组合
动作桩:列出所有可能的操作
条件项:列出在每一种条件取值组合的情况下,执行动作桩中的哪些动作。
规则:一种条件取值组合与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成判定表的一个规则。条件组合的数目就是规则的数目。
2.建立判定表可遵循的步骤
1)列出条件桩和动作桩
2)确定规则的个数,用来为规则编号。
若有n个原因,且每个原因的可取值为0或者1,那么将会有2n个规则。
3)完成所有条件项的填写。
4)完成所有的动作项的填写。(得到初始判定表)
5)合并相似规则,用以对初始判断表进行简化。
有两个或者多条规则具有相同的动作,并且条件项之间存在极为相似的关系就可以进行合并。
3.实例
问题描述: “……对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”
条件桩:
C1:功率大于50马力吗?
C2:维修记录不全吗?
C3:运行超过10年吗?
动作桩:
A1:进行优先处理
A2:作其他处理
生成判断表:
简化判定表:
1,2合并,5,7合并,6,8合并