《软件测试黑盒白盒课件.ppt》由会员分享,可在线阅读,更多相关《软件测试黑盒白盒课件.ppt(37页珍藏版)》请在三一办公上搜索。
1、1,大家好,2023/3/27,2,软件测试方法,2023/3/27,3,黑盒测试和白盒测试,功能测试数据驱动测试,结构测试逻辑驱动测试,2023/3/27,4,黑盒测试是从用户观点出发的测试,它又称功能测试、数据驱动测试或基于规格说明书或用户手册的测试。它所依据的是程序的外部特性。,黑盒测试,2023/3/27,5,黑盒测试的设计方法,等价分类法,边值分析法,错误推测法,因果图法,不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。,2023/3/27,6,1.等价类划分,基本思想:把所有可能的输入数据,即程序的输入域划分成若干部分“等价类”,然后从每一部分中选取少数有“
2、代表性”的数据做为测试用例。分为两步:划分等价类(列出等价类表)选取测试用例,2023/3/27,7,等价类的分类:有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。,1.等价类划分,2023/3/27,8,数学含义A=X=BC=Y=D,等价类划分的原则,9,例如:每个学生可选修1-3门课程 可以划分一个有效等价类:选修1-3门课程。可以划分两个无效等价类:未选修课,选修课超过3门。,2023/3/27,10,确立等价类测试用例,确立了等价类之后,建立等价类表,列出所有划分出的等价类。,
3、2023/3/27,11,确立等价类测试用例,再从划分出的等价类中按以下原则选择测试用例:为每一个等价类规定一个唯一编号;设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。,2023/3/27,12,在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。”并且规定:“标识符必须先说明,再使用。”“在同一说明语句中,标识符至少必须有一个。”,举例,2023/3/2
4、7,13,建立输入等价类表,举例,2023/3/27,14,下面选取了9个测试用例,它们覆盖了所有的等价类。VAR x,T1234567:REAL;BEGIN x:=3.414;T1234567:=2.732;.(1),(2),(4),(8),(9),(12),(14)VAR:REAL;(3)VAR x,:REAL;(5),举例,2023/3/27,15,VAR T12345678 REAL;(6)VAR T12345.REAL;(7)多于80个字符 VAR T$:CHAR;(10)VAR GOTO:INTEGER;(11)VAR 2T:REAL;(13)VAR PAR:REAL;(15)BE
5、GIN.PAP:=SIN(3.14*0.8)/6;,举例,2023/3/27,16,2.边界值分析,基本思想:选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测试,选择测试用例既考虑输入亦考虑输出。,分析步骤:A、先划分等价类。B、选择测试用例,测试等价类边界。,使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。,2023/3/27,17,2.边界值分析,数学含义A=X=BC=Y=D,18,A、按照输入值范围的边界。例如:输入值的范围是-1.0至1.0,则可选择用例 1.0、1
6、.0、-1.001、1.001。B、按照输入/输出值个数的边界。例如:输入文件可有1-255个记录,则设计用例:文件的记录数为 0个、1个、255个、256个。C、输出值域的边界。例如:检索文献摘要,最多4篇。设计用例:可检索0篇、1篇、4篇,和5篇。D、输入/输出有序集(如顺序文件、线性表)的边界。应选择第一个元素和最后一个元素。,边界选择原则:,2023/3/27,19,3.错误推测法,人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的用例。错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。,一般经验:输入
7、数据为0,输出数据为0,输入表格为空等,2023/3/27,20,4.因果图,因果图:把输入条件视为“因”,把输出条件视为“果”,将黑盒看成是从因到果的网络图,采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。根据这种关系可选择高效的测试用例。,因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。,2023/3/27,21,因果图基本步骤,(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系?
8、根据这些关系,画出因果图。,2023/3/27,22,因果图基本步骤,(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。(4)把因果图转换成判定表。(5)把判定表的每一列拿出来作为依据,设计测试用例。,2023/3/27,23,因果图基本符号,用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。主要的原因和结果之间的关系有:,2023/3/27,24,因果图基本符号,表示约束条件的符号:为了表示原因与原因之间,结果与结果之间可能存在的约束条
9、件,在因果图中可以附加一些表示约束条件的符号。,2023/3/27,25,例如,有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。”,因果图举例,2023/3/27,26,因果图举例,(1)分析这一段说明,列出原因和结果原因:1.售货机有零钱找 2.投入1元硬币 3.投入5角硬币 4.押下橙汁按钮 5.押下啤酒按钮建立中
10、间结点,表示处理中间状态11.投入1元硬币且押下饮料按钮12.押下橙汁或啤酒的按钮13.应当找5角零钱并且售货机有零钱找14.钱已付清,2023/3/27,27,因果图举例,结果:21.售货机零钱找完灯亮 22.退还1元硬币 23.退还5角硬币 24.送出橙汁饮料 25.送出啤酒饮料(2)画出因果图。所有原因结点列在左边,所有结果结点列在右边。(3)由于 2 与 3,4 与 5 不能同时发生,分别加上约束条件E。(4)因果图(5)转换成判定表,2023/3/27,28,2023/3/27,29,30,白盒测试,白盒测试又称结构测试、逻辑驱动测试或基于程序的测试,其测试过程如图所示。,覆盖情况分
11、析,测试用例,分析,31,白盒法,白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。,语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,弱,强,路径覆盖,32,1、语句覆盖,使得程序中每个语句至少都能被执行一次。,A1ANDB=0,X:=X/A,A=2OR X1,X:=X+1,a,b,c,d,e,满足语句覆盖的情况:执行路径:ace,选择用例:(2,0,4),(2,0,3)ace,用例格式:输入(A,B,X),输出(A,B,X),Y,N,Y,N,33,2、判定覆盖,使得程序中每个判定至少为TRUE 或FALSE各一次。,A1ANDB=0,X:=X/A,A=2OR X1,
12、X:=X+1,a,b,c,d,e,覆盖情况:应执行路径ace abd或:acd abe,选择用例(其一):(2,0,4),(2,0,3)ace(1,1,1),(1,1,1)abd(2,1,1),(2,1,2)abe(3,0,3),(3,1,1)acd,Y,Y,N,N,34,3、条件覆盖,使得判定中的每个条件获得各种可能的结果。,应满足以下覆盖情况:判定一:A1,A1,B=0,B0判定二:A=2,A2,X1,X1,选择用例:(2,0,4),(2,0,3)ace(1,1,1),(1,1,1)abd,注意:(1,0,3),(1,0,4)abd(2,1,1),(2,1,2)abe满足条件覆盖,但不满足
13、判定覆盖。,A1ANDB=0,X:=X/A,A=2OR X1,X:=X+1,a,b,c,d,e,Y,Y,N,N,35,4、判定/条件覆盖,同时满足判断覆盖和条件覆盖。,应满足以下覆盖情况:条件:A1,A1,B=0,B0 A=2,A2,X1,X1 应执行路径ace abd或:acd abe,选择用例:(2,0,4),(2,0,3)(ace)(1,1,1),(1,1,1)(abd),A1ANDB=0,X:=X/A,A=2OR X1,X:=X+1,a,b,c,d,e,Y,Y,N,N,36,5、条件组合覆盖,使得每个判定中条件的各种可能组合都至少出现一次。,A1,X:=X/A,A=2,X:=X+1,a
14、,b,c,d,e,B=0,X1,Y,N,Y,N,Y,N,Y,N,满足以下覆盖情况:A1,B=0 A1,B0 A1,B=0 A1,B0 A=2,X1 A=2,X1 A2,X1 A2,X1,选择用例:(2,0,4),(2,0,3)(2,1,1),(2,1,2)(1,0,3),(1,0,4)(1,1,1),(1,1,1),37,6.路径测试,路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。测 试 用 例 通过路径 覆盖条件【(2,0,4),(2,0,3)】ace(L1)【(1,1,1),(1,1,1)】abd(L2)【(1,1,2),(1,1,3)】abe(L3)【(3,0,3),(3,0,1)】acd(L3),A1ANDB=0,X:=X/A,A=2OR X1,X:=X+1,a,b,c,d,e,Y,N,Y,N,