为特定测试目标或测试条件而制定的一组输入值、执行入口条件、预期结果和执行出口条件的集合
定义好测试活动,避免盲目测试、提高测试效率。
杀虫剂效应
软件测试的重要性是毋庸置疑的,测试用例是测试工作的指导,是软件测试质量稳定的根本保障。
影响软件测试的因素很多,如软件本身的复杂程度,开发质量,测试方法和技术的运用。也有可观因素存在,如人员变动,环境,情绪等。
测试用例的通过率以及错误率,是测试结束的一个重要依据,用来判断该软件测试结果是否可以通过,能否达到上线的标准。
黑盒测试方法
白盒测试方法
确定测试条件->设计测试用例->实现测试用例->执行测试用例->管理测试用例
最常见的如下:
测试管理工具(项目流程管理)
功能测试工具(自动化脚本测试)(黑盒)
性能测试工具(黑盒)
代码测试工具(白盒测试)
黑盒测试:是一种常用的软件测试方法,它将被测软件看作一个打不开的黑盒,主要根据功能需求设计测试用例,进行测试。
几种常用的黑盒测试方法有等价类划分法、边界值分析法、因果图法、决策表法。在实际运用中要选择合适的方法。
等价类划分法是一种典型的黑盒测试用例设计方法。采用等价类划分法时,完全不用考虑程序内部结构,设计测试用例的唯一依据是软件需求规格说明书。
等价类:某个输入的集合,集合中每个输入条件都是等效的,如果其中一个输入无法发现问题,集合中其它输入也是无效的
有效等价类:合理的输入数据
无效等价类:不合理的输入数据
有效等价类和无效等价类都是使用等价类划分法设计用例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输入,也能接受无效输入的考验。
例如账号限制条件:6~18个字符,可以使用字母、数字、下划线、需以字母开头
边界值分析法是一种补充等价划分的测试用例设计法则,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。
从方法论上可以看出来,边界值分析是对等价类划分的补充,所以这两种测试方法经常结合使用。
学生管理系统中,可以录入考试成绩,成绩范围在0~100,考试成绩合格分是60分。
为了测试这个输入框,当然不会从0100挨个测试,根据需求可知,059任意整数,60~100任意整数可以看做是等价的,都可以揭露输入框潜在的缺陷。
等价类划分法
在059之间和60100之间随机抽取整数验证,就成为”有效等价类”;显然如果输入的成绩是负数,或是大于100的数,都成为”无效等价类”。
因此,测试用例的设计:
有效等价类
无效等价类
边界值分析法
我们继续看学生信息系统中“考试成绩”的例子,选取的边界值数据应该包括:-1,0,1,59,60,61,99,100,101。
等价类划分法和边界值分析法都是着重考虑输入条件,而不考虑输入条件的各种组合、输入条件之间的相互约束关系。
如果输入之间有关系,例如,约束关系、组合关系,这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障,因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法,因果图正是在此背景下提出的。
比如注册功能,填写地区信息,条件一输入了北京地区,条件二的输入只能是昌平、海淀、朝阳等等信息,这就是种约束关系。
因果图(逻辑模型)是一种适合描述多种条件的组合、产生多种相应动作的测试方法,这就需要用因果图。
判定表通常由四个部分
比如两位数加法运算器:
分析输入条件与输出条件
输入1与输入2的数值区间:
输出信息
要保证系统在各种应用场景下的功能是符合设计要求的,测试用例就需要更多、更全面。
在具体的用例设计时,首先需要搞清楚每一个业务需求所对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,最后再针对每个测试需求点设计测试用例。
一个质量过硬的软件系统,显式功能性需求和非功能性需求即隐式功能性需求同等重要。
显式功能性需求(Functionalrequirement)
非功能性需求(Non-functionalrequirement)
从软件测试的维度来看,非功能性需求主要涉及安全性、性能以及兼容性三大方面。在上面所有的测试用例设计中,我们完全没有考虑对非功能性需求的测试,但这些往往是决定软件质量的关键因素。
安全性测试用例
性能压力测试用例
兼容性测试用例
穷尽测试
穷尽测试指的是包含了软件输入值和前提条件所有的可能的组合的测试方法,完成穷尽测试的系统中不该残留任何未知的软件缺陷,因为必须去做更多的测试去找到他们。
在软件测试的面试中,经常会碰到类似的问题,比如:如何测试一个杯子,或者如何测试一只笔。
要求你设计20个以上的测试用例。
这类的面试题目,是考察面试者是否熟悉各种软件测试方法,设计testcase的能力。
回答这类问题的思路,应该从软件测试的各种不同方法来联想,具体如下