★测试方法
一、编写用例的方法
等价类划分、边界值、因果图、判定表、正交排列法、场景法、状态转换图法、测试大纲方法
☆等价类划分
1.应用场合:
只要有数据输入的地方,就可以应用等价类划分。
从很多的数据中,选取具有代表性的数据进行测试,可以提高测试效率,节约测试成本。
2.核心概念:
(1)有效等价类:
对程序有意义、合理的输入数据
程序接收有效等价类数据,应该正确计算、执行
(2)无效等价类:
对程序无意义、不合理的输入数据
程序接收无效等价类数据,应该给出错误提示,或者根本不让输入
3.步骤:
(1)根据需求,划分等价类
(2)细化等价类
再次检查,等价类能不能细分,一般依据的不是书面上的需求,而是基于对计算机数据存储、
处理方式的深入理解。
——对正数和负数一般需要单独测试
(3)建立等价类表(熟练后,直接做这一步)
个人认为这一步是多余的。
(4)编写测试用例
从每个等价类中至少选取一个数据进行测试即可
4.边界值法
说明:一般不会单独说到用边界值,等价类和边界值是小情侣,结合使用设计一套较为完善的测试用
例。
边界值选取规则:得到需求的边界值时,取大于,等于,小于三个值设计测试用例。
5.等价类法经验
1)在一条用例中,可以尽可能多的测试(覆盖)不同控件的1个有效等价类(包括有效边界值)——
对于不同控件的有效等价类(有效边界值)可以组合着去测。
2)在一条用例中,只测试一个控件的一个无效等价类(包括无效边界值)——无效等价类先不要组
合(无效等价类先单独测试,避免屏蔽现象,最后可以考虑无效等价类的组合)
☆因果图法
1.应用场合
在一个界面中,有多个控件,要考虑控件之间的组合,不同控件的组合会产生不同的输出结果组合,为了弄清输入组合和输出组合之间的对应关系,可以使用因果图(控件之间的组合)
2.因果图的核心
(1)因——原因,输入动作
(2)果——结果,输出结果
找出原因(输入)和结果(输出),以及它们之间的对应关系
3.图形符号
(1)基本符号
表达输入(因)和输出(果)的对应关系
(2)约束条件
约束的是同一类型(全部是输入或者全部是输出)
4.步骤
1)找出所有的原因(输入)和找出所有的结果(输出)
2)找到各输入的限制关系和组合关系和找出各输出的限制关系和组合关系
3)找出什么样的输入组合会产生怎样的输出组合,画出因果图
4)根据因果图,写出判定表(决策表)
5)根据判定表,编写测试用例:把判定表的一列,转换成一条用例
如下一个判定表:
5.小结
因果图适合处理控件的组合情况,但是一般来讲,控件的数量不宜过多(5-6个),以及每个控件的状态(取值)不宜过多(最好2-3个)
正交排列法
1.应用场合
有多个控件,每个控件有多个取值,要考虑不同控件,不同取值的组合,如何用最少的组合量,达到最大的覆盖面——正交排列
2.正交表
看API:如L9(34)
3.步骤
(1)选取合适的正交表
①需要组合控件的个数——次幂(表的列数):4个控件——4次幂
②每个控件的取值个数——底:每个控件有3个取值——底为3
(2)分析需求——列出所有控件及其取值
(3)映射
①把正交表的列名分别用控件名称替代
②把正交表每列中的取值分别用控件的选项进行替代
(4)根据正交表,编写用例:正交表的一行转换成一条用例
4.正交表的思想
选取数据组合的时候,应该零星、均匀的从所有的组合中选择,而不能只局限在某个局部,让每个控件中的所有取值,参与组合的机会均等,最少的数据组合达到最大的用例
场景法(情景法)
1、应用场合
真实模拟用户的操作,测试软件的主要功能和业务逻辑
场景法的应用主要基于对软件业务的深入理解(行业背景)
场景法的技术主要基于等价类划分(主要等价类)
2、重要概念
(1)基本流(正确流):模拟用户正确的操作流程(使用有效等价类),基本流验证软件的核心功能(2)备选流(错误流):模拟用户出错的操作流程(使用无效等价类),备选流验证软件错误处理能力
3、步骤
(1)列出基本流和备选流
①基本流——正确取款的操作过程
②备选流——模拟各个环节出错的操作
——主要基于对软件业务的理解
(2)根据基本流和备选流,列出主要的场景
(3)针对每个场景,编写用例
状态转换图
1、应用场合
软件有很多种操作顺序、路径,为了更真实、全面的模拟出这些操作顺序、操作流程,可以使用状态转换图。
(避免所有的操作流程考虑不全面,把一系列完整的操作进行分解)
2、重要的概念
(1)输入的动作:用户对软件进行的有效操作
(2)软件的状态:软件在某一时刻所处的情况
3、步骤
(1)找出软件所有的动作,编号
(2)找出软件的所有状态——可以认为每对软件做一个动作,它的状态就会发生变化步骤(1)(2)主要是熟悉需求的过程
(3)找出什么动作,会导致什么状态发生,画出状态转换图
如:
(4)编写用例
一条用例覆盖一条较为完整的路径
说明:
对于无效等价类,在图中先不体现(只画出必填项不填情形),否则图形会过于复杂,最后再利用等价类方法补充即可
总结:
直接要找出软件的所有操作流程比较困难,而测试要求必须测试全这些操作路径
把一系列连贯的操作进行分解,每一步都在可控范围内,最后再把独立的状态和动作联系起来编写用例。
测试大纲方法
1.应用场合
涉及到多个界面,每个界面中有多个操作,为了弄清界面和界面之间的关系(操作之间的关系),可以通过测试大纲法。
如:安装测试中插件选择对下一个界面的影响,或先选择什么样的插件就跳到对应插件中去安装。
主要测试窗口的跳转是否正确。
2.步骤
(1)列提纲——找出所有的窗口及其动作(熟悉需求)
(2)找到窗口之间的关系(动作之间的关系),编写用例
说明:
①测试大纲方法可以找全所有的操作路径,但是可能会有一定的冗余(没有新的测试点),可以把这
些用例去掉
如:
测试用例方法选择的综合策略
1.场景法:
测试软件的主要功能、重要的业务流程以及错误处理能力(包括等价类)
基本流:有效数据,验证主要业务逻辑
备选流:无效数据,验证错误处理
2.等价类划分
有数据输入的地方,进行等价类划分
有效等价类、无效等价类
3.边界值
有数据输入的地方,需要测试边界值
在实际工程中,边界值的重要程度一般低于等价类,很多边界在前期可能不会测试
前3种方法最重要
====================
4.因果图/判定表
有多个控件、每个控件有多个取值(操作),考虑控件输入的组合,产生不同的输出组合要求:记住基本的图形符号
局限性:每个控件的取值(或操作)最好2-3个
5.正交排列方法
有多个控件、每个控件有多个取值,考虑控件取值的组合(参数配置类)
方法4、5主要处理控件组合情况
====================
6.状态转换图
为了更真实的模拟用户的操作流程和操作顺序
优点:可以把所有的操作流程全部找到
缺点:过于复杂
7.测试大纲方法
适合多窗口程序
方法6、7适用于特定场合
===================
如果时间允许,再利用错误猜测方法补充测试即可。