1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,正交实验设计法设计测试用例,主要内容,一、设计测试用例时遇到的问题,二、正交表的概念,三、用正交表设计测试用例,四、正交表的由来,一、设计测试用例时遇到的问题,114系
2、统查询企业单位,当用户打114查询某公司的时,电信局的坐席人员会输入该公司相关信息,并进展查询,最后把查询的结果告之用户。,测试方法,全部测试,部分测试一,部分测试二,用正交表法设计用例并测试,全部测试2532,测试用例太多,测试时投入和报答不相符,序号,音形码,拼音 码,路名码,行业类别,特征码,1,0,0,0,0,0,2,0,0,0,0,1,3,0,0,0,1,0,4,0,0,0,1,1,5,0,0,1,0,0,6,0,0,1,0,1,7,0,0,1,1,0,8,0,0,1,1,1,9,0,1,0,0,0,10,0,1,0,0,1,11,0,1,0,1,0,12,0,1,0,1,1,13,
3、0,1,1,0,0,14,0,1,1,0,1,15,0,1,1,1,0,16,0,1,1,1,1,17,1,0,0,0,0,18,1,0,0,0,1,19,1,0,0,1,0,20,1,0,0,1,1,21,1,0,1,0,0,22,1,0,1,0,1,23,1,0,1,1,0,24,1,0,1,1,1,25,1,1,0,0,0,26,1,1,0,0,1,27,1,1,0,1,0,28,1,1,0,1,1,29,1,1,1,0,0,30,1,1,1,0,1,31,1,1,1,1,0,32,1,1,1,1,1,普通,当t为素数或素数幂时,总可以构造t-1个两两正交的t阶拉丁方,t 阶正交拉丁方假
4、设存在,最多不超越t-1个,落款人可以填写,可以不填写,正交拉丁方转化为正交表,6,即每人第周发现的缺陷数,sas/techsup/technote/ts723_Designs.,E:E1、E2、E3、E4、E5、E6,音形码不填、拼音码不填、路名码不填、行业类别填写、特征码不填,两个要素有两个程度变量的取值、两个要素有三个程度,一个要素有六个程度,5 把每一行的各要素程度的组合做为一个测试用例,普通,当t为素数或素数幂时,总可以构造t-1个两两正交的t阶拉丁方,在一项实验中,凡欲调查的变量称为要素变量,据测试担任人估计,假设AT&T采用1000个测试用例的测试方案,能够仅仅只发现这些缺陷中的
5、32个,部分测试一,测试时没有把握,序号,音形码,拼音 码,路名码,行业类别,特征码,1,0,0,0,0,0,2,0,0,0,0,1,3,0,0,0,1,0,4,0,0,0,1,1,5,0,0,1,0,0,6,0,0,1,0,1,7,0,0,1,1,0,8,0,0,1,1,1,9,0,1,0,0,0,10,0,1,0,0,1,11,0,1,0,1,0,12,0,1,0,1,1,13,0,1,1,0,0,14,0,1,1,0,1,15,0,1,1,1,0,16,0,1,1,1,1,17,1,0,0,0,0,18,1,0,0,0,1,19,1,0,0,1,0,20,1,0,0,1,1,21,1,0
6、1,0,0,22,1,0,1,0,1,23,1,0,1,1,0,24,1,0,1,1,1,25,1,1,0,0,0,26,1,1,0,0,1,27,1,1,0,1,0,28,1,1,0,1,1,29,1,1,1,0,0,30,1,1,1,0,1,31,1,1,1,1,0,32,1,1,1,1,1,部分测试二,测试时也没有把握,序号,音形码,拼音 码,路名码,行业类别,特征码,1,0,0,0,0,0,2,0,0,0,0,1,3,0,0,0,1,0,4,0,0,0,1,1,5,0,0,1,0,0,6,0,0,1,0,1,7,0,0,1,1,0,8,0,0,1,1,1,9,0,1,0,0,0,10
7、0,1,0,0,1,11,0,1,0,1,0,12,0,1,0,1,1,13,0,1,1,0,0,14,0,1,1,0,1,15,0,1,1,1,0,16,0,1,1,1,1,17,1,0,0,0,0,18,1,0,0,0,1,19,1,0,0,1,0,20,1,0,0,1,1,21,1,0,1,0,0,22,1,0,1,0,1,23,1,0,1,1,0,24,1,0,1,1,1,25,1,1,0,0,0,26,1,1,0,0,1,27,1,1,0,1,0,28,1,1,0,1,1,29,1,1,1,0,0,30,1,1,1,0,1,31,1,1,1,1,0,32,1,1,1,1,1,利用正
8、交表的正交实验法,序号,音形码,拼音 码,路名码,行业类别,特征码,1,0,0,0,0,0,2,0,0,0,0,1,3,0,0,0,1,0,4,0,0,0,1,1,5,0,0,1,0,0,6,0,0,1,0,1,7,0,0,1,1,0,8,0,0,1,1,1,9,0,1,0,0,0,10,0,1,0,0,1,11,0,1,0,1,0,12,0,1,0,1,1,13,0,1,1,0,0,14,0,1,1,0,1,15,0,1,1,1,0,16,0,1,1,1,1,17,1,0,0,0,0,18,1,0,0,0,1,19,1,0,0,1,0,20,1,0,0,1,1,21,1,0,1,0,0,22
9、1,0,1,0,1,23,1,0,1,1,0,24,1,0,1,1,1,25,1,1,0,0,0,26,1,1,0,0,1,27,1,1,0,1,0,28,1,1,0,1,1,29,1,1,1,0,0,30,1,1,1,0,1,31,1,1,1,1,0,32,1,1,1,1,1,加上可疑用例,序号,音形码,拼音 码,路名码,行业类别,特征码,1,0,0,0,0,0,2,0,0,0,0,1,3,0,0,0,1,0,4,0,0,0,1,1,5,0,0,1,0,0,6,0,0,1,0,1,7,0,0,1,1,0,8,0,0,1,1,1,9,0,1,0,0,0,10,0,1,0,0,1,11,0,1
10、0,1,0,12,0,1,0,1,1,13,0,1,1,0,0,14,0,1,1,0,1,15,0,1,1,1,0,16,0,1,1,1,1,17,1,0,0,0,0,18,1,0,0,0,1,19,1,0,0,1,0,20,1,0,0,1,1,21,1,0,1,0,0,22,1,0,1,0,1,23,1,0,1,1,0,24,1,0,1,1,1,25,1,1,0,0,0,26,1,1,0,0,1,27,1,1,0,1,0,28,1,1,0,1,1,29,1,1,1,0,0,30,1,1,1,0,1,31,1,1,1,1,0,32,1,1,1,1,1,二、正交表的概念,要素和程度,什么是要素
11、Factor,在一项实验中,凡欲调查的变量称为要素变量,什么是程度位级 Level,在实验范围内,要素被调查的值称为程度变量的取值,什么是正交实验设计是研讨多要素多程度的一种设计方法,它是根据正交性从全面实验中挑选出部分有代表性的点进展实验,这些有代表性的点具备了“均匀分散,齐整可比的特点,正交实验设计是一种基于正交表的、高效率、快速、经济的实验设计方法,正交表的构成,行数(Runs):正交表中的行的个数,即实验的次数。,要素数(Factors):正交表中列的个数。,程度数(Levels):任何单个要素可以获得的值的最大个数。正交表中的包含的值为从0到数“程度数-1或从1到“程度数,正交表的表
12、示方式:L行数(程度数要素数),L8(27),如何查找正交表,Technical Support(support.sas)support.sas/techsup/technote/ts723_Designs.txt,查Dr.Genichi Taguchi设计的正交表,york.ac.uk/depts/maths/tables/orthogonal.htm上面查询,数理统计、实验设计等方面的书及附录中,关注点:要素数和对应的程度数组成的矩阵,L4(23),L8(2441),L9(34),L8(27),L18(3661),L8(27),三、用正交表设计测试用例,用正交表设计测试用例的步骤,1 有哪
13、些要素变量,2 每个要素有哪几个程度变量的取值,3 选择一个适宜的正交表,4 把变量的值映射到表中,5 把每一行的各要素程度的组合做为一个测试用例,7 加上他以为可疑且没有在表中出现的组合,如何选择正交表,思索要素变量的个数,思索要素程度变量的取值的个数,思索正交表的行数,取行数最少的一个,设计测试用例时的三种情况,1 要素数变量、程度数变量值相符,2 要素数不一样,3 程度数不一样,1要素数、程度数相符,程度数变量的取值一样、要素数变量刚好符合正交表,对某人进展查询,假设查询某个人时有三个查询条件:,根据“姓名进展查询,根据“身份证号码查询,根据“手机号码查询,思索查询条件要么不填写,要么填
14、写,此时可用正交表进展设计,要素数和程度数,有三个要素:,姓名、身份证号、手机号码,每个要素有两个程度,姓名:填、不填,身份证号:填、不填,手机号码:填、不填,选择正交表,表中的要素数3,表中至少有三个要素的程度数2,行数取最少的一个,结果:L4(23),什么是要素Factor,落款人可以填写,可以不填写,音形码不填、拼音码不填、路名码不填、行业类别不填、特征码填写,6,即每人第周发现的缺陷数,为了减轻这种不确定性的问题,他用正交表法重新设计了测试用例,此时测试用例只需422个。,音形码填写、拼音码不填、路名码不填、行业类别填写、特征码填写,要素数(Factors):正交表中列的个数。,当t=
15、2和6时,不存在正交拉丁方,除此之外,对一切自然数t都至少存在一对正交的t阶拉丁方,音形码不填、拼音码不填、路名码不填、行业类别不填、特征码填写,它描画了对PC(IBM格式)和 StarMail(基于局域网的电子邮件软件)做回归测试;,E:0E1、1E2、2E3、3E4、4E5、5E6,测试用例减少数:3213,它描画了对PC(IBM格式)和 StarMail(基于局域网的电子邮件软件)做回归测试;,音形码不填、拼音码不填、路名码填写、行业类别不填、特征码不填,表中的要素数变量 5,变量映射,姓名:0填写,1不填写,身份证号:0填写,1不填写,手机号码:0填写,1不填写,用L4(23)设计的测
16、试用例,测试用例如下:,1:填写姓名、填写身份证号、填写手机号,2:填写姓名、不填身份证号、不填手机号,3:不填姓名、填写身份证号、不填手机号,4:不填姓名、不填身份证号、填写手机号,增补测试用例,5:不填姓名、不填身份证号、不填手机号,测试用例减少数:85,114系统查询企业单位,要素数和程度数,有五个要素:,音形码、拼音码、路名码、行业类别和特征码,每个要素有两个程度,音形码:填、不填,拼音码:填、不填,路名码:填、不填,行业类别:填、不填,特征码:填、不填,选择正交表,表中的要素数5,表中至少有五个要素的程度数2,行数取最少的一个,结果:L8(27),变量映射,音形码:0不填写,1填写,
17、拼音码:0不填写,1填写,路名码:0不填写,1填写,行业类别:0不填写,1填写,特征码:0不填写,1填写,用L8(27)设计的测试用例,测试用例如下:,音形码填写、拼音码填写、路名码填写、行业类别填写、特征码填写,音形码填写、拼音码填写、路名码填写、行业类别不填、特征码不填,音形码填写、拼音码不填、路名码不填、行业类别填写、特征码填写,音形码填写、拼音码不填、路名码不填、行业类别不填、特征码不填,音形码不填、拼音码填写、路名码不填、行业类别填写、特征码不填,音形码不填、拼音码填写、路名码不填、行业类别不填、特征码填写,音形码不填、拼音码不填、路名码填写、行业类别填写、特征码不填,音形码不填、拼
18、音码不填、路名码填写、行业类别不填、特征码填写,增补测试用例,音形码不填、拼音码填写、路名码不填、行业类别不填、特征码不填,音形码不填、拼音码不填、路名码填写、行业类别不填、特征码不填,音形码不填、拼音码不填、路名码不填、行业类别填写、特征码不填,音形码不填、拼音码不填、路名码不填、行业类别不填、特征码填写,音形码不填、拼音码不填、路名码不填、行业类别不填、特征码填写,测试用例减少数:3213,3程度数不一样,要素变量的程度数变量的取值不一样,要素数和程度数,有五个要素变量:,A、B、C、D和E,两个要素有两个程度变量的取值、两个要素有三个程度,一个要素有六个程度,A:A1、A2,B:B1、B
19、2,C:C1、C2、C3,D:D1、D2、D3,E:E1、E2、E3、E4、E5、E6,选择正交表,表中的要素数变量 5,表中至少有二个要素的程度数变量的取值,2,至少有另外二个要素的程度数3,还至少有另外一个要素的程度数6,行数取最少的一个L49(78)、L18(3661),结果:L18(3661),变量映射,A:0A1、1A2,B:0B1、1B2,C:0C1、1C2、2 C3,D:0D1、1D2、3D3,E:0E1、1E2、2E3、3E4、4E5、5E6,用L18(3661)设计的测试用例,测试用例如下:,省略,测试用例减少数:21618,加上一些可疑的情况设为n个为18n它比原来也少多了
20、案例研讨,1992年AT&T发表了一篇讲述在测试过程中运用正交表一个案例研讨。,它描画了对PC(IBM格式)和 StarMail(基于局域网的电子邮件软件)做回归测试;最初制定的测试方案是用18周的的时间执行1500个测试用例。但是,开发推迟了,测试时间被紧缩到仅仅8周时间。测试担任人采取另外一个测试方案和方案,即2个人8周的时间测试1000个测试用例,但是他不敢保证测试的质量,对这些用例检测缺陷的才干不放心。为了减轻这种不确定性的问题,他用正交表法重新设计了测试用例,此时测试用例只需422个。用这422个测试用例去测试发现了41个缺陷,开发人员修复缺陷,然后软件就发布了。在运用的两年时间内
21、凡被测试到的领域都没有再发现缺陷,因此在发现缺陷这方面,此测试方案是100%有效。据测试担任人估计,假设AT&T采用1000个测试用例的测试方案,能够仅仅只发现这些缺陷中的32个,与最初的方案相比,用正交表设计测试用例执行任务量不到50%,但却多发现28%的缺陷,而且测试人员个人的效率也添加了测试消费力(testing productivity)的因子是2.6,即每人第周发现的缺陷数,另例:内部邮件系统,企业或公司内部邮件系统,当在测试写邮件的一些功能时情况如下:,收件方收件人、收件部门,内容标题可以填写,可以不填写,邮件内容可以填写,可以不填写,落款人可以填写,可以不填写,附件可以添加附件
22、可以不添加,四、正交表的由来,拉丁方称号的由来,古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表。,数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方,拉丁方和正交拉丁方的表述,什么是n阶拉丁方,用n个不同的拉丁字母排成一个n阶方阵n26,假设每行的n个字母均不一样,每列的n个字母均不一样,那么称这种方阵为nXn拉丁方,或n阶拉丁方,也即:每个字母在任一行、任一列中只出现一次,备注:此时可以用数字替代拉丁字母,它们是等价的,什么是正交拉丁方,设有两个n阶的拉丁方,假设将它们叠合在一同,恰好出现n2个不同的有序数对,那
23、么称为这两个拉丁方为相互正交的拉丁方,简称正交拉丁方,3阶拉丁方,把字母拉丁改为数字,欧拉 Euler猜测,1782年,瑞士数学家欧拉研讨这样一个问题:,“有6个不同的师团。现从每个师团中选出具有6种军衔的军官各1人例如上校、中校、少校、上尉、中尉、少尉各一名,共36名军官。试问,能不能把这些军官排成6行6列的一个方阵,方阵每行的6名军官恰来自6个师团,而且恰好分别具有6种不同的军衔.方阵每列的6名军官也是如此,即每行每列都有各个师团和各种军衔的代表?,欧拉在作了种种尝试之后宣布:“我毫不犹疑地以为人们不能够造出一对6阶的正交拉丁方。同时对于10阶,14阶也不能够造出。普通地说,对任何奇数的2
24、倍,都不能够造出。欧拉这一猜测,在长达100多年的时间里一直未能处理,上述方阵称为正交拉丁方。36个军官问题,是问能否有n=6的正交拉丁方。,证明Euler猜测,直到1900年,塔里Tarry才用完全归纳法非常费劲地证明了n=6时欧拉猜测是对的,1926年英国统计学家费歇(RAFisher)运用正交拉丁方在农业实验中获得惊人的效果这就更刺激人们努力于此问题的研讨,费歇尔有一次到印度讲学,一位印度几何学家玻斯Roj Chandra Bose,1901 被歇尔的讲演吸引住了。玻斯用伽罗瓦(Galois)域GFpn为坐标的有限射影几何学,很随便地证明,当n是素数时,有n-1个两两正交的拉丁方,195
25、8年,美国数学家帕克ETParker,1926 用群论和有限几何构造了21阶的拉丁方。,帕克用群论和有限几何法构造的阶拉丁方又给玻斯以新的启发。玻斯和他的学生西里克汉特Shrikhande得出了惊人的结果:当n=22时欧拉猜测不成立,即n为11的2倍时正交拉丁方是存在的。,帕克接着又证明n=10也有拉丁方。,玻斯和西里克汉特最后证明除n=2,n=6外,都存在正交拉丁方。欧拉猜测至此完全处理。欧拉实践上只猜中了n=6!,难!欧拉猜测到20世纪中叶才获得处理!,正交拉丁方性质,当t=2和6时,不存在正交拉丁方,除此之外,对一切自然数t都至少存在一对正交的t阶拉丁方,t 阶正交拉丁方假设存在,最多不超越t-1个,普通,当t为素数或素数幂时,总可以构造t-1个两两正交的t阶拉丁方,正交拉丁方转化为正交表,假设存在两个正交的t阶拉丁方,那么可以在t2次实验中安排4个t程度因子,使得实验是正交的。作法是:按第一个拉丁方依行、列、字母的顺序展开得到一个3列正交表,再将第二拉丁方按一样的顺序展开添加为第四列。,普通,有能够存在m个正交的t阶拉丁方,那么可以在t2次实验中安排m+2个t程度因子,使得实验是正交的,所以这也驱使数学家找方法来证明n阶拉丁方能否存在正交拉丁方以及存在多少对正交拉丁方,






