【等价类】
1、基本概念
等价类方法:是把程序的输入域划分成若干部分/等价类;然后从每个部分/等价类中选取少数/一个代表性数据作为测试用例,(ps:假设每一类的代表性数据在测试中的作用等价于这一类中的其他值)
有效等价类 :对程序规格有效的、合理的输入数据的集合;程序接收到有效等价类,可以正确计算、执行
无效等价类:对程序规格无效的、不合理的输入数据的集合;程序接收到无效等价类,应该给出错误提示,或者根本不允许输入
说明:穷举测试是最全面的测试,但是是不能采用的方法,时间成本太高,编写用例的方法主要解决的问题是如何使用最少的数据,达到最大的覆盖
2、应用场合
只要有数据输入的地方,就可以使用等价类方法/
3、 使用步骤
1)根据需求,划分等价类(细化等价类)
2)建立等价类表(熟练后直接做该步)
3)确定测试用例
4、使用要点
确定等价类的6条原则
1)在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。
3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。
等价类确定测试用例的原则
1)为每个等价类规定一个惟一的编号。
2)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖。
3)设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。
无效等价类重点考虑
1)必填项(不能为空)——为空
2)不能重复——重复
3)数据要求范围——超出范围
如:年龄:18—60,测试<18,>60
4)数据有字符个数要求——超出范围
如:姓名:1-20字符,测试<1字符,>20字符
5)从数据允许的样式考虑——小数、字母、符号、汉字
6)小数——小数点保留位数不满足
无效等价类处理方式:
1)允许输入无效等价类数据,后面给出错误提示
2)允许输入无效等价类数据,但可以自动纠正成正确数据
3)不允许输入无效等价类数据
【边界值】
1、基本概念
1)边界值方法是补充等价类的方法,它不是选择等价类的任意元素,而是选择等价类的边界的测试用例。
Ps: 本质上属于等价类的范畴,但是经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部,因此需要单独进行测试
2、应用场合
只要有数据输入的地方,一般就可以使用边界值
3、 使用步骤
1)找到各等价类的变界点(最小值、最大值)
2)选择该分界点及其两边的点(上点和离点),单独设计测试用例并进行测试
4、使用要点
1、对边界值设计测试用例,应遵循以下几条原则:
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、最大个数多1的数作为测试数据。
3)根据规格说明的每个输出条件,使用前面的原则1。
4)根据规格说明的每个输出条件,使用前面的原则2。
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。
7)分析规格说明,找出其他可能的边界条件。
【因果图/判定表】
1、基本概念
因果图基本概念
1)因果图
因——输入条件
果——输出结果
使用画图的方法找出输入(因)和输出(果)的关系
2)图形符号
基本图形符号——表示输入和输出之间的关系
说明:互斥和唯一的区别:一般有默认选项—唯一,没有默认选项—互斥
判定表基本概念 技术分享图片条件桩(输入项):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
动作桩(输出项):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
条件项(输入值):列出针对它所列条件的取值,在所有可能情况下的真假值。
动作项(输出值):列出在条件项的各种取值情况下应该采取的动作。
规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿也就有多少条规则,条件项和动作项就有多少列。
判定表的建立因该依据软件规格说明,步骤如下:
1)确定规则的个数。假如有n个条件,每个条件有两个取值(0,1),故有2n种规则。
2)列出所有的条件桩和动作桩。
3)填入条件项。
4)填入动作项。制定初始判定表。
5)简化。合并相似规则或者相同动作。
2、应用场合
当有输入条件的各种组合时,都可以使用因果图/判定表。
当应用中有多种输入条件且组合,并且输入和输出间的关系可以明显表达,可以用因果图
3、使用步骤
利用因果图/判定表导出测试用例需要经过以下几个步骤:
1)分析程序规格说明的描述中,哪些是原因,哪些是结果。原因常常是输入条件或是输入条件的等价类,而结果是输出条件。
2)分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”。
3)标明约束条件。由于语法或环境的限制,并将其表示成连接各个原因与各个结果的“因果图”。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情况,在因果图上使用若干个标准的符号标明约束条件。
4)因果法转换成判定表。(熟练的话直接跳到这一步,就是判断表法)
5)为判定表中每一列表示的情况设计测试用例。
【正交试验】
1、基本概念
依据Galois理论,正交试验设计方法是从大量的试验数据中挑选适量的、有代表性的点,从而合理地安排测试的一种科学的试验设计方法。
正交表中的试验个数/行数=∑(每列水平数-1)+1 ,例如:6因子5水平试验,在不重复时,只用6*(4)+1=25次试验就可以了。
2、应用场合
有很多的控件输入,且每个控件输入有多个取值,要考虑不同控件不同取值的组合——如何使用最少、最优化的数据组合达到最大的测试覆盖和因果图法的区别:
因果图法:适用于控件组合数量较少(20种以下),要比较全面的考虑所有情况
正交排列法:适用于控件组合数量庞大,而从代码角度讲又没有必要全部测试
3、使用步骤
1)分析需求——列出所有输入控件和取值
2)套用正交表,根据输入控件的个数和控件的取值,选择一个合适的正交表并套用(映射对应的值)
3)将正交表转换为测试用例
4、 使用要点
试验次数
正交表中的试验个数/行数=∑(每列水平数-1)+1
常用的正交表
【错误推测法】
1、基本概念
错误推测法就是基于经验和直觉推测程序中所有可能存在和容易发生错误的特殊情况,有针对地设计测试用例的方法。 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例
2、应用场合
任何场合,都可以使用
3、使用步骤
1)根据经验,列举出程序中所有可能存在的各种错误
2)根据这些错误,有针对的设计测试用例
4、测试要点
1)如设计一些非法、错误、不正确和垃圾数据(为空、不输入)进行输入测试是很有意义的
2)开发容易遗漏的地方:如重复点击
例如:
1)聊天窗口功能
A、输入特殊字符(全角,半角)后,窗口是否能够正常显示
B、输入空格,是否能够过滤,是否会算入长度计算
C、输入html字符
D、输入脚本语言函数
E、在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容是否能够通过
2)查询功能
A、无条件查询
B、是否支持模糊查询
C、查询的关键字之间是否可用连接符
D、输入正确的查询条件以前加上空格,看是否能正确地查出相应的数据
3)登录功能
A、输入的数据前存在空格,是否能够正常登录
B、输入的密码是否能够加密显示
C、用户在注销之后是否能够再登录成功
【功能图法】
1、基本概念
功能图方法是用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。
测试用例生成规则:为了把状态迁移(测试路径)的测试用例与逻辑模型的测试用例组合起来,从功能图生成实用的测试用例,需定义下面的规则。一个结构化的状态迁移中,定义3种形式的循环:顺序、选择和重复。
2、应用场合
对复杂的程序,还要用动态说明描述输入数据的次序或状态转移的次序,因此应用于有多种状态的场合
【场景法】
1、基本概念
一般软件是用事件触发(事件触发的情景就形成场景)来控制流程,因此可用场景法来模拟流程。有俩个基本概念:
1)基本流(正确流、有效流):模拟用户正确的操作流程
2)备选流(错误流、无效流):模拟用户错误的操作流程
ps:用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流
技术分享图片 技术分享图片
2、应用场合
1)业务流清晰的系统都可以使用场景法
2)界面中有很少(或没有)填写项,所有的操作都是通过鼠标的操作(单双击、拖动等)来模拟真实的用户操作,设计出相应的测试点,一般包括两类:
模拟用户正确的操作、完成主要业务逻辑的动作——验证软件的主要功能是否实现
模拟用户错误的操作——验证软件错误处理能力
3、使用步骤
1)根据需求,列出基本流和备选流, 此步骤完全基于业务的理解
2)根据基本流和备选流,生成场景(熟练后,直接做该步)
3)根据场景,编写用例
网友评论