软件测试基础day03

正交排列法

正交排列法概述

正交排列法能够使用最小的测试过程集合获得最大的测试覆盖率。
当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,
可以采用这种方法。
案例:字符属性设置程序
窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值
字体:仿宋、楷体、华文彩云
字符样式:粗体、斜体、下划线
颜色:红色、绿色、蓝色
字号:20号、30号、40号
在测试时,要考虑这些控件的组合情况,组合量非常大(有3^4 =81种组合情况)
由于组合量太大,不可能为每一种组合都创建测试用例。
如何采用最少的测试用例集合获得最大的测试覆盖率——采用正交排列法。

正交排列表

正交试验设计:
是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,
这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是一种基于正交表的、高效率、快速、经济的试验设计方法

正交表的概念

正交表:一种特制的表,一般的正交表记为:Ln(mk)
n是表的行数,也就是需要测试组合的次数
K是表的列数,表示控件的个数(因素的个数,或因子个数)
m是每个控件包含的取值个数(各因素的水平数,即各因素的状态数)
如:
有4个控件
每个控件有3个取值
9为需要测试的组合个数
叫4因素3水平
L9(3^4)正交排列表

正交排列法的使用步骤

1、根据所测程序中控件的个数(因素)以及每个控件的取值个数(水平),
选取一个合适的正交排列表查找正交表
http://support.sas.com/techsup/technote/ts723_Designs.txt
数理统计、试验设计等方面的书及附录中 
正交排列表是经过严格的数学推理得来的。
2、把控件及其取值列举出来,并对其进行编号(取值表)
3、把控件及其取值映射到正交排列表中
4、根据映射好的正交排列表编写测试用例

正交表练习

案例:字符属性设置程序
窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值
字体:仿宋、楷体、华文彩云
字符样式:粗体、斜体、下划线
颜色:红色、绿色、蓝色
字号:20号、30号、40号
1.由于组合量非常大(3^4=81种组合情况),因此考虑使用正交法,选择L9(3^4)正交排列表
2.把控件及其取值列举出来,并对取值进行编号,制作取值表

编号

字体

字符样式

颜色

字号

1

仿宋

粗体

红色

20

2

楷体

斜体

绿色

30

3

华文彩云

下划线

蓝色

40

3.把控件及其取值映射到正交排列表中

步骤四:根据映射好的正交排列表编写测试用例

方法:将字体这一列的1->仿宋、2->楷体、3->华文彩云

          将字符样式这一列的1->粗体、2->斜体、3->下划线
          将颜色这一列的1->红色、2->绿色、3->蓝色
          将字号这一列的1->20号、2->30号、3->40号
A、B、C、D这四行换成控件名称,分别为字体、字符样式、颜色、字号
结论:这是进行测试的最少组合数量,但是,在测试中有72种(81-9)组合没有测试到。
当然,如果时间允许,应该再补充一些用例。因为遗漏的组合越多,存在缺陷的可能性就越大。(时间问题!内测、公测)

案例:114系统查询企业单位
完全测试需设计用例数:2^5=32
有五个因素:
音形码、拼音码、路名码、行业类别和特征码
每个因素有两个水平:
音形码:填、不填
拼音码:填、不填
路名码:填、不填
行业类别:填、不填
特征码:填、不填
选择正交表
表中的因素数>= 5
表中至少有五个因素的水平数>= 2
行数取最少的一个
结果: L8(2^7)没有2^5只有2^3和2^7,自然选择多的,增加测试用例
制作取值表
取值表与正交表进行映射,得到正交表的测试用例

使用正交排列法的局限性

使用正交排列法的局限性
目前常见的正交排列表只有前面附录文件中给出的几种
即使是已有的正交排列表,基本都要求每个控件中取值的个数要相等,这在实际软件中很少遇到。
没有现成的正交排列表怎么办?
通过正交排列法的学习,我们更多的应该学习到一种测试思想,也就是在从所有组合集合中选取测试数据时,
应该均匀的选取其中的组合作为测试用例,而不要只在某个局部选取数据。
问题:
水平数不同
因素(变量)的水平数(变量的取值)不相同
例:
找不到现成的正交表,就只能使用工具来生成!

正交表生成工具allpairs

很多情况下无法找到合适的正交表,就要使用正交表生成工具
使用步骤:
1、制作取值表(只列出数据即可,不用编号)
2、复制取值表的数据,放到文本文档中保存(注意不要更改任何格式,例如文件叫Test2.txt )
3、把文本文档放在allpairs文件夹中
4、win+r后输入cmd进入控制台
5、使用控制台代码进入allpairs文件夹(cd 目录名字)
6、在控制台中输入allpairs.exe Test2.txt>chenggong.txt  
( chenggong是自己起的名字,用来存放生成的组合用例,可以自动生成,不必提前建好)

测试用例方法的选择

通常在确定测试方法时,有以下几条参考原则(1/2):
(1)拿到一个测试任务时,先关注它的主要功能和业务流程、业务逻辑是否正确实现,考虑使用场景法。
(2)需要输入数据的地方,考虑采用等价类划分法,包括输入条件和输出条件的等价划分,将无限测试变成有限测试。
(3)在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强。
(4)如果程序的功能说明中含有输入条件的组合制约情况,则一开始就应考虑选用因果图和判定表法。
(5)对于参数配置类的软件,需要考虑参数之间的组合情况,考虑使用正交排列法选择较少的组合方式(最少的测试用例获得最大的的测试覆盖率)。
(6)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。
(7)采用错误推断法再追加测试用例——依靠测试工程师的经验和智慧。

软件缺陷

软件缺陷是指存在于软件(程序、数据、文档)中的那些不符合用户需求的问题。(并不等同于程序bug)
定义:缺陷就是软件的问题,最终表现为没有满足用户的需求。

那些属于软件缺陷

1、    软件未达到规格说明书表明的功能
2、    软件出现了规格说明说中指明不会出现的错误。
3、    软件功能超出了规格说明书指明的范围
4、    软件未达到规格说明书虽未指明但应该达到的目标
5、    软件测试人员或用户觉得不好

缺陷的表现形式

1、    功能、特性没有实现或者部分实现
2、    设计不合理、功能不明确、逻辑不清楚或存在矛盾
3、    实际结果和期望结果不同
4、    没有达到规格说明说要求的性能指标
5、    运行出错、崩溃、中断、界面混乱
6、    数据不正确、精度不够、不完整或格式不统一
7、    用户不能接受的其它问题,如存取时间过长、界面不美观
8、    硬件或软件存在其它问题

软件缺陷的状态

1、    提交—测试人员提交了一个缺陷给程序员
2、    打开—待处理
3、    拒绝—程序员认为不是缺陷或者重复,就可以修改状态为拒绝
4、    修复—程序员修复缺陷后提交的一个状态
5、    关闭—测试人员经过回归测试后,认为此缺陷已经解决,将其关闭
6、    推迟—可以放在后续版本解决的问题,但是要详细写出修复的日期或版本

软件缺陷的严重程度划分

1、    Low—表面性错误,如错别字

2、    Medium—影响一个相对独立功能、仅仅发生再特定条件上、与需求定义不一致、断断续续出问题

3、    High—功能点没有实现、不符合用户需求、导致数据丢失

4、    VeryHigh--频繁死机、大部分功能不能使用

5、    Critical—系统瘫痪、异常退出、死循环、严重的计算错误、

软件测试的优先级

1、    Low—时间和资源允许的情况下修复
2、    Medium—不会延迟发布,会在以后修复
3、    High—会制约开发和测试的进行,需要在发布之前修复
4、    VeryHigh—影响系统,产生严重影响
5、    Urgent—导致系统几乎不可用

软件缺陷分类

1、    系统缺陷
2、    数据缺陷
3、    数据库缺陷
4、    接口缺陷
5、    功能缺陷
6、    安全性缺陷
7、    兼容性缺陷
8、    性能缺陷
9、    界面缺陷
10、    建议

原文地址:https://www.cnblogs.com/st998/p/13822267.html