测试用例设计
一、什么是测试用例
就像开发人员写代码一样,测试人员写用例。
测试用例就是:设计和开发一个能够检验软件是否按照预先设定的步骤和输入内容,进行正常的运行,并给出预定结果的一个方案。
如果计算机程序按照测试用例中设计的步骤和输入内容运行,能得到预先设定的结果,则说明该程序的这个功能没有缺陷。
若是不能得到预先设定的结果,则说明该程序的这个功能有缺陷。
测试人员发现缺陷之后,则应该记录并保存该缺陷,将其报告给对应的开发工程师或者其他人员进行修改。
等待开发人员(相关人员)修复和处理完成后,测试人员应该重新测试,确保缺陷却是被修复成功。
测试用例包含的内容:
1、测试目的。是一个测试用例的直接目标。并且,每一个测试用例的目的都不相同。
2、测试步骤。就是指操作软件的步骤和过程。
3、输入数据。测试中软件需要输入的内容。(不是所有的软件都需要输入,需要输入的时候再进行输入)
4、预期结果。是判断软件执行结果的标准。软件执行后,有没有缺陷,依赖预期结果。
5、测试用例编号。就是能够保证快速找到测试用例的一个唯一的编号。
6、依赖用例。测试的时候,有些测试和操作需要优先进行,有些需要稍后进行。
7、测试环境。指的就是测试执行的时候,所需要的计算机硬件、软件和操作系统、网络状态、或者其他情形。
8、优先级。是否某些测试优先进行。可以从测试的成本上、业务的先后关系上进行考虑。
9、测试用例的设计人。设计测试用例的人。
10、测试用例的执行人。按照测试用例设计的步骤和相关内容,执行测试用例。
11、设计时间。
12、执行时间。
13、所属模块。该测试用例属于哪一个软件功能或者系统模块。
二、设计测试用例的好处和目的
1、可以规范测试过程。
2、在版本更新的测试中,可以节省时间,提高效率。
3、有助于记录软件测试中的缺陷。
4、方便记录测试的工作进度。——像“黑客”
三、设计测试用例的方法
1、测试用例的步骤:按照软件的操作方式进行规划。
2、测试用例的数据:选择科学的数据进行测试。
测试用例选择数据的两个方式——测试用例设计方法之等价类划分法。
什么是等价类划分?
例如,一个只能做加法运算的计算器,测试的时候,进行了1+1、1+2、1+8、1+9的测试后,还需要做其他的测试么?
要!——不测试的话,不能保证计算是正确的。
不要!——太多了,没时间。
原理:将一个输入数据的全部作为主体,符合输入要求的称为有效等价类,不符合输入要求的称为无效等价类。
测试的时候,选择该类中的一个数据,作为代表,如果这个数据没有发现软件的缺陷,则说明这一类数据都不会产生软件的缺陷。
反之,则认为这一类数据都会产生软件的缺陷。
划分等价类的原则:
1)如果输入内容限制了输入的个数或者长度,则可以划分一个有效等价类,和两个无效等价类。例如,姓名输入要求2~5和汉字。
2)如果输入内容限制了大小或者取值范围,则可以划分一个有效等价类,和两个无效等价类。例如,成绩输入要求0~100分。
3)如果输入内容必须是某一个值,则可以划分一个有效等价类,和一个无效等价类。例如,身份证号的位数为18位。
4)如果输入内容需要从一个列表数据中选择,则可以划分N个有效等价类,没有无效等价类。例如,收货地址的省份选择。
5)如果遇到了不是以上内容的,结合实际情况进行判断。
举例说明等价类划分法应用:
1)首先找出所有的有效等价类和无效等价类。
有效等价类 |
无效等价类 |
两种字符:字母、数字、下划线 |
只包含一种字符:字母、数字、下划线 |
三种字符都包含 |
大于12个 |
6~12个字符 |
小于6个 |
唯一的 |
重复的 |
包含除了字母、数字、下划线的符号 |
2)挑选每一个等价类中的代表性数据.
注意,有效等价类中的数据,要满足所有的要求。
无效等价类中的数据,只需要(只能)违反一项规则。
yang123 |
yangkaikai |
yang_123 |
杨kaikai123 |
yangkaikai123 |
|
yang2 |
3)设计测试用例。在测试用例的数据中,使用等价类划分法挑选出的数据。
作业:
1、分析邮箱、密码的输入有效等价类和无效等价类,分别列举这一类中的代表性数据。
2、写出5条测试用例。
测试用例设计方法——边界值分析法。
俗话说“常在河边走,哪能不湿鞋?”
测试中,特别需要注意软件运行时的各种边界或者临界点问题。
例如,微信发红包(一对一的),最多能发200元,最少0.01元。所以,边界可以分析出来:0.01和200.因此我们测试的时候还要再分析:0和200.01
再比如,淘宝的购物车,最多能放99件商品。不放商品(0件商品),购物车可以打开;放99件商品,购物车可以打开。是否能放入100件商品。
再比如,购买商品的时候,一件商品能够购买的数量取决于:1)商家限定购买数量 2)购物平台限定的购买数量 3)商品库存数量
所以:边界值就是软件运行时,各种条件的限制中,处于最大、最小位置的数据。
测试中还需要考虑最大值、最小值附近的相关数据。(次边界)
思考:
1)如果一个程序的文本输入,要求输入的数值是整数,取值范围是:
-99≤x≤99.测试的时候需要考虑的边界值分别是哪几个?
2)如果一个程序的文本输入,要求输入的数值是整数,取值范围是:
-99<x<99.测试的时候需要考虑的边界值分别是哪几个?
所以:边界值其实就是有效数据和无效数据的分界。
思考:尝试分析用户注册时,各项输入数据的边界值。
测试用例设计需要注意的:
1、测试目的需要清楚,能够精准到明确指出测试点。
2、测试目的描述和具体的测试数据之间要一致。
3、除非测试需要使用重复数据,否则每一条测试用例的数据都要不一样。
4、测试目的、预期结果、数据之间不能冲突。
5、唯一、不重复的数据测试的时候,测试其中的一个方面即可。
6、设计和编写测试用例的时候,正向的测试(输入数据和操作是符合需求)写前面,反向的测试(输入数据或者操作是不符合需求)写后面。——如果正向的测试都不通过,反向测试可以不进行。