测试用例是软件测试过程中重要的产物之一,编写的测试用例需要满足系统性、连贯性、全面性、正确性、可操作性。
测试用例的常见格式:用例编号+测试项目(模块)+标题+优先级+前置条件+输入+步骤+预期结果+实际结果
用例编号(产品名称-测试类型-功能模块-子模块-编号):唯一、易识别,一般有数字、字母、下划线(_)或中横线(-)组成。
测试项目(模块):被测试的项目名称或者模块名称。
标题:简明易懂,字数要求不多,同一模块,标题一般不重复。
优先级:根据用例的重要程度进行区分,不同公司有不同的区分方式。
前置条件:在执行当前用例前,需要满足的条件,如果条件没有满足,执行用例就无法达到预期结果。
输入:执行当前的用例需要输入的值
步骤:详细清楚每一个步骤应该怎么操作,便于对用例的执行,达到预期结果。
预期结果:根据需求文档分析,执行当前的用例应该达到的结果。
实际结果:执行当前的用例达到的结果,与预期结果不一致,就可能是缺陷。
常用的黑盒测试用例设计方法:等价类划分法、边界值分析法、因果图法、判定表法、状态迁移法、流程分析法、正交实验法、异常分析法、错误猜测法等
(1)等价类划分法:将所有的输入划分为有效等价类和无效等价类,然后从每个子集中选取少量具有代表的数据作为测试用例。
例如:一个输入框要求仅可以输入3到13为字符,那么有效等价就为3≤用户名长度≤13,无效等价为小于3大于13的长度。
(2)边界值分析法:根据上点、离点进行取值。
上点:边界上的点,闭区间上点在范围内,开区间上点在范围外
离点:离上点最近的点,闭区间在范围外,开区间在范围内
例如:区间取值范围为(3,13],上点为3和13,离点为4和14,用例一般就取3、4、13、14四个值。
(3)因果图法:提供一个把规格转化为判定表的系统方法,根据因果图的每条路线编写用例。
关系符号:
恒等:若c1为1,则e1也为1
非:若c1为1,则e1为0
或:若c1或c2为1,则e1为1
与:若c1和c2为1,则e1为1
关系约束符号:
E约束(异):a和b中最多一个为1,不能同时为1
I约束(或):a、b、c中最少一个为1,即 a、b、c不能同时为0
O约束(唯一):a和b必须有一个且仅一个为1
R约束(要求):a为1时,b也必须为1
M约束(强制):输出条件的约束,结果a为1,b强制为0
(4)判定表法:常与因果图法一起使用,分析和表达多种输入条件下系统执行不同动作的工具,把复杂的逻辑关系和多种条件组合的情况表达得具体明确。
根据条件项和动作项将相似的规则进行合并,即所有规则的条件有一个不同结果相同进行合并。最后根据合并后的规则编写用例,一条规则一条用例。
(5)状态迁移图法:根据事物的状态变化进行编写用例。先画出状态迁移图,画出每种状态的可以转变为其它的状态,标写出条件。每次状态变化就时一条用例。
(6)流程分析法:又叫场景分析法,通过分析软件的场景,从用户的角度出发,从场景来设计测试用例,从开始进行到结束,需要保证每条分支都可以走到,每个场景就是一个用例。
(7)正交实验法:根据行数(n)、因素数(k)和水平数(m)计算的设计方法。
行数:即实验的次数,用例个数。
因素数:正交表的列数,即功能点。
水平数:任何单个因素能够取得最大的个数。
表达式: Ln(m^k),一般实际应用中n=k*(m-1)+1
(8)异常分析法:针对系统可能出现异常操作、软硬件缺陷引起的故障进行分析。
(9)错误猜测法:有经验的测试人员根据经验和直觉推测程序可能存在的错误,进行有针对性的测试。