一个人学习不如和大家一起学习,群里有学习资料,欢迎你加入软件测试交流群,群号:1062843742。
什么是测试用例
测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
通俗的讲:就是把我们测试系统的操作步骤用按照一定的格式用文字描述出来。
测试用例的必要性
- 理清思路,避免遗漏(把测试项目按功能细分,根据每个功能来编写测试用例,避免漏掉功能点)
- 引导测试,测试规范(测试工作不是只测试一次的,用例可以让我们每次都是都有一个规范)
- 跟踪进展(通过执行用例可以很清楚的指导测试的进度)
用例评审的必要性
- 保证设计的用例能覆盖完全
- 保证测试人员与开发人员的一致性
- 确保提交给客户高质量的成功
- 评估工作量
用例的要素
八大要素:用例ID、用例名称、测试项目/模块、优先级别、预制条件、测试输入、操作步骤、预期结果
其他:测试结果、作者、创建时间、修改时间
设计测试用例的方法
等价类
等价类划分,就是将测试的范围划分成几个互不相交的子集,从每个子集选出若干个有代表性的值作为测试用例。
例如,我们需要参数一个用户名是否合法,用户名定义为:8位数字组成的字符
我们可以先划分子集:空用户名、1-7位数字、8位数字、9位及以上数字、非数字
然后从每个子集中选出若干个又代表性的值:
空用户名:""(无效等价类)
1-7位数字:"12345"(无效等价类)
9位及以上数字:"000000000"(无效等价类)
非数字:"!@#¥"(无效等价类)
8位数字:"12312312"(有效等价类)
其实非数字还可以划分的更细比如字母、字符串。那么怎么划分才合适呢,我们可以根据我们的时间和资源来决定,还有对结果产生的意义。
边界值
边界是很容易出错的地方,所以设置边界值的用例是必要的。
设计边界值的用例,若区间是min-max应选取:min- min 中位数 max max+
例如:x为整数,10 <= x >= 20,那么x的边界值为 9、10、15、20、21
错误推断法
错误推断法是指:在测试程序时,人们根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地比编写检查这些错误的测试用例方法。
判定表法
- 又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会的到一个判断清晰的策略表
- 基本概念
- 条件桩:输入条件
- 动作桩:结果
- 条件项:输入条件取值的全部组合
- 动作项:条件项对应的所有的结果
- 规 则:一组条件与动作的组合,一条规则对应一条测试用例
实例
问题描述:“对于功率大于50马力的机器并且维修记录不全,或已运行10年以上的机器,应给予优先的维修处理”
条件桩:
C1:功率大于50马力
C2:维修记录不全
C3:运行超过10年
动作桩:
A1:优先处理
A2:非优先处理
生成判定表
合并判定表:
从编号1、2可以看出功率大于50马力并且维修记录不全的机器不管是否超过10年都设为优先
从编号5、7可以看出只要超过10年的机器设置为优先
从编号6、8可以看出只满足功率大于50或者维修记录不全,设为非优先处理
和并之后的表如下
这样,我们就可以得到更清晰的逻辑判断,也可以更好的协助我们编写测试用例。而决策表,对于开发人员来说一样有用。
正交实验法
目的
是以少数的替代全面的用例(也就是以较少的用例覆盖尽可能多的可能性)
例子
某所大学通信系共两个班级,刚考完一门课程,想通过“班级”、“性别”、“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询。
如果进行穷举来编写测试用例,组合个数是2*2*2 = 8。如下表
当组合条件少的时候,穷举暂时没有问题,但是一旦多了就要用到正交表了,通过有代表性的测试实例,达到以少数代替全面的效果。
正交表的基本概念
因素K:被测的元素称为因素,例如上面的性别、班级、成绩均为因素。所以上述例子中K=3
水平M:因素的可能值称为水平,例如上面性别的可能性男和女此处正好每个因素的水平都为2,所以M=2
正交表行数N:N的计算公式为N = K*(M-1)+1,带入上面的KM, N = 3 *(2-1)+1 = 4
我们通常用L表示正交表,完成的表示为LN(MK)
如果每个因素的水平相等我们成为单一水平正交表,例如本例子就是,L4(23)
各列水平数不完全相同的正交表成为混合水平正交表。如L8(4124)表示:有一个因素的水平为4,有4个因素的水平为2
有个这个表达式,我们可以在http://support.sas.com/techsup/technote/ts723_Designs.txt查到,其正交表的格式为: