《《软件测试黑盒白盒测试方法综合实训》(共18页).docx》由会员分享,可在线阅读,更多相关《《软件测试黑盒白盒测试方法综合实训》(共18页).docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上软件测试综合实训报告填写内容(一) 黑盒测试实训一1、实训目的理解黑盒测试的基本方法,掌握等价类划分法、边界值方法。2、实验内容、步骤及结果实验内容:程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1month12、1day31、1900 year 2050。),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。 a.大家用自己熟悉的编程语言,实现上面问题的描述。b.用等价类设计法和边界值法设计测试用例并执行,将
2、测试结果与预期结果进行比对并查找、修复bug。实验步骤:步骤一:编写源程序并运行该程序。 步骤二:编写测试用例设计。步骤三:执行测试。步骤四:将测试结果与预期结果进行比对并查找、修复bug。实验结果:条件划分:输入条件标号有效等价类编号无效等价类输入年份T11900=year=2050T7Year2050输入月份T21=month=12T9Month12输入日期T31=day=31T11Day31闰年T4输入2月29日T13输入闰年2月30日平年T5输入2月28日T14输入2月29日输入类型T6输入int性T15输入除int型任意型等价类测试法:测试用例输入预期结果测试结果覆盖等价类12010
3、-1-12010/01/02T1,T2,T3,T622000-2-292001/03/01T432001-02-282001-03-01T542600-3-4无效输入T851800-5-12无效输入T761997-0-1无效输入T971998-20-1无效输入T1082018-1-0无效输入T1192018-3-66无效输入T12102000-2-30无效输入T13112014-2-29无效输入T1412DAEE*&无效输入T15多变量边界测试法:对于n个变量的程序采用五点法产生4n+1个测试用例,本实验题有三个变量即有4*3+1=13个测试用例测试用例输入预期结果测试结果11900-1-11
4、900-1-221901-3-91901-3-1031975-6-151975-6-1642049-8-112049-8-1252050-12-31无效输入61999-1-131992-1-1471992-2-131992-2-1482001-11-92001-11-1092018-12-92018-12-10102003-8-12003-8-2112011-8-22011-8-3122015-7-302015-8-1132016-5-312015-6-13、结果分析与问题讨论通过本次实验,我对黑盒测试用例有了进一步的了解。实验要求使用等价类划分法、边界值法的设计测试用例。在分析边界值设计时测
5、试有点混,因为针对于本实验可以采用多变量边界值分析(通常采用“五点法”)或者健壮性边界值分析(通常采用“七点法”),本题有是有三个变量的程序,采用五点法将产生4n+1=4*3+1=13个测试用例,对于多变量健壮性边界值分析,需要设计6n+1=6*3+1=19个测试用例。在本次实验我采用的方法是五点法,测试用例比较多,需要认真分析。(二) 黑盒测试实训二1、 实训目的理解黑盒测试的基本方法,掌握因果图法和决策表法设计测试用例。2、 实验内容、步骤及结果1) 某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信
6、息L;如果第二列字符不是数字,则给出信息M。要求:a. 根据问题描述画出因果图。b. 画出决策表并设计测试用例。实验结果:1)根据题意,条件桩:问题的所有条件: c1:第一列为A c2:第一列为B c3:第二列为数字条件项:对条件桩给出的条件列出所有可能的取值c1: 1-第一列为A,0-第一列不为Ac2: 1-第一列为B,0-第一列不为Bc3: 1-第二列为数字,0-第一列不为数字动作桩:出现问题时按规定可能采取的操作结果:e1:修改文件 e2:给出信息L e3:给出信息M2)其对应的因果图如下:C为中间节点,考虑到原因c1和c2不可能同时为1,因此在因果图上加上E(异或)约束。b:根据因果图
7、创建决策表条件桩条件项c111110000c211001100c310101010c中间节点111100动作桩动作项e1e2e3测试用例:测试用例规则号输入数据预期输出Case11c1:1 c2:1 c3:1c1和c2不可能同时为1Case22c1:1 c2:1 c3:0c1和c2不可能同时为1Case33A 3修改文件Case44A *给出信息MCase55B 1修改文件Case66B /给出信息MCase77C 5给出信息LCase88M 给出信息L, M2) 支付宝个人认证中,分为两部分:个人身份认证和银行卡认证。这两者都通过后,认为个人认证成功。个人身份认证需要提交个人基本信息及身份证
8、复印件。银行卡认证分为两种:提现认证和充值认证。要求: a. 根据问题描述画出因果图。b. 画出决策表并设计测试用例。实验步骤: 步骤一:分析问题,列出原因和结果。 步骤二:画出因果图,将原因与结果用关系连接线连接。步骤三:根据因果图生成决策表。步骤四:根据决策表设计测试用例。实验结果:条件桩:问题的所有条件:C1:个人基本信息C2:身份证复印件C3:提现认证C4:充值认证条件项:对条件桩给出的条件列出所有可能的取值C1: 1个人基本信息正确 0个人基本信息不准确C2: 1身份证复印件有效 0身份证复印件无效C3: 1提现认证成功0提现认证失败C4: 1充值认证成功0充值认证失败动作桩:出现问
9、题时按规定可能采取的操作A1:个人身份认证成功。A2:银行卡认证成功A3:支付宝个人认证成功动作项:指出在条件项的各组取值情况下采取的动作H1:-个人身份认证成功H2:-银行可认证成功H3:-支付宝个人认证成功 因果图:根据因果图推导出决策表条件桩条件项c10111111110000000c20101001101111000c30100100110101110c40100011010011010动作桩动作项A1A2A3测试用例测试用例规则号输入数据预期输出Case11c1:0 c2:0 c3:0 c4:0支付宝个人认证失败Case22c1:1 c2:1 c3:1 c4:1支付宝个人认证成功Ca
10、se33c1:1 c2:0 c3:0 c4:0支付宝个人认证失败,银行卡认证失败Case44c1:1 c2:1 c3:0 c4:0支付宝个人认证成功,银行卡认证失败Case 55c1:1 c2:0 c3:1 c4:0支付宝个人认证失败,银行卡认证成功Case66c1:1 c2:0 c3:0 c4:1支付宝个人认证失败,银行卡认证失败Case77c1:1 c2:1 c3:0 c4:1支付宝个人认证成功Case88c1:1 c2:1 c3:1 c4:0支付宝个人认证成功Case99c1:1 c2:0 c3:1 c4:1支付宝个人认证失败,银行卡认证成功Case1010c1:0 c2:1 c3:0
11、c4:0支付宝个人认证失败,银行卡认证失败Case1111c1:0 c2:1 c3:1 c4:0支付宝个人认证失败,银行卡认证成功Case1212c1:0 c2:1 c3:0 c4:1支付宝个人认证失败,银行卡认证成功Case1313c1:0 c2:1 c3:1 c4:1支付宝个人认证失败,银行卡认证成功Case1414c1:0 c2:0 c3:1 c4:0支付宝个人认证失败,银行卡认证成功Case1515c1:1 c2:0 c3:1 c4:1支付宝个人认证失败,银行卡认证成功Case1616c1:1 c2:0 c3:0 c4:1支付宝个人认证失败,银行卡认证成功3.结果分析与问题讨论通过本次
12、黑盒测试实训,从结果上看,因果图只是清晰地表达了需求分析的内容,为了得到测试用例,我们需要借助于决策表,因果图中的“因”和“果”直接可以作为条件桩和动作桩。在画因果图的时候,要注意分析有些条件是不可以同时存在。(三) 白盒测试实训一1.实训目的a.掌握路径测试、数据流测试的基本方法。b.运用路径测试、数据流测试的方法设计测试用例。2.实验内容、步骤及结果 1) 阅读下面代码。0 void DoWork (int x,int y,int z)1 int k=0, j=0;2 if(x3)&(z5)8 j=x*y+10;9 要求: 使用路径测试的方法a. 画出控制流图。b. 计算环形复杂度并列出基
13、本路径。c. 根据基本路径设计测试用例并执行测试。 使用数据流测试法a. 根据已画出的控制流图分析代码中所有变量的定义使用(区分谓词使用和计算使用)节点、定义使用对、定义使用路径(注明是否为定义清除路径)。b. 根据全定义-使用路径覆盖准则(测试路径需要覆盖所有定义点到所有使用点的路径)找出测试路径并设计测试用例并执行测试。实验步骤: 步骤一:根据代码画出相关图形。 步骤二:根据不同测试方法设计测试用例。步骤三:运行代码执行测试用例实验结果:控制流图环形复杂度分为两个圈计算,圈1和圈2分别如下:圈1:V(G)=6-5+2=3圈2:V(G)=5-4+2=3总独立路径为:圈1复杂度*圈2复杂度=9
14、条(取8条即可,分别为:路径1:2(x3?)7(x=4?)7(y5?)9路径2:2(x3?)7(x=4?)7(y5?)89路径3:2(x3?)2(z5?)9路径4:2(x3?)2(z5?)89路径5:2(x3?)2(z5?)9路径6:2(x3?)2(z5?)89路径7:2(x3?)2(z3?)2(z10)457(x=4?)89根据基本路径设计测试用例并执行测试。测试用例表:测试用例名称测试数据预期结果测试结果测试路径T1x=2,y=4,z=0K=0,j=0路径1T2x=2,y=6,z=0k=0,j=22路径2T3x=5,y=4,z=11k=0,j=0路径3T4x=5,y=6,z=9k=29,j
15、=40路径4T5x=5,y=4,z=8k=19,j=4路径5T6x=6,y=6,z=7k=35,j=46路径6T7x=4,y=0,z=12k=0,j=10路径7T8x=4,y=0,z=4k=-1,j=10路径8 使用数据流测试法变量定义节点使用节点定义-使用对(DU path)(开始节点,结束节点)定义-使用路径(是否为定义-清除路径)计算使用谓词使用x04,82,7(0,4),(0,8),(0,2),(0,7)0-1-2 (F)0-1-2-4-5-7 (F)0-1-2-4 (F)0-1-2-4-5-7-8(F)y04,87(0,4),(0,8), (0,7)0-1-2-4-5-7 (F)0-
16、1-2-4 (F)0-1-2-4-5-7-8(F)z02(0,2)0-1-2(F)k1,45(1,5),(4,5)1-2-4-5(F)4-5(T)j1,5,8b.根据全定义-使用路径覆盖准则(测试路径需要覆盖所有定义点到所有使用点的路径)找出测试路径并设计测试用例并执行测试。测试路径1:0-1-2-4-5-7-8-9测试路径2:0-1-2-7-9测试路径3:0-1-2-7-8-9测试路径4:0-1-2-4-5-7-9测试用例名称测试数据预期结果测试结果测试路径T1x=4,y=6,z=2k=27,j=38路径1T2x=2,y=2,z=11k=0,j=0路径2T3x=2,y=6,z=3k=0,j=
17、22路径3T4x=5,y=2,z=2k=9,j=3路径43.结果分析与问题讨论要正确分析判断程序的走向,然后画出控制流图。根据控制流图计算环形(圈)复杂度,主要运用两种方法计算环形复杂度:(1)V(G)=E-N+2(2)V(G)=P+1,正确计算出环形复杂度,并确定独立路径,用测试用例来测试路径。复杂度是独立路径数的上界,独立路径可以小于复杂度。先计算预期结果,再用代码验证预期结果与测试结果是否一致。(四) 白盒测试实训二1. 实训目的a. 掌握逻辑覆盖的基本方法。b. 运用逻辑覆盖的方法设计测试用例。2. 实验内容、步骤及结果1) 阅读下面源码。#include using namespac
18、e std;int main()int b;int c;int a;cin a b c;if (a*b*c != 0 & (a + b c&b + c a&a + c b)if (a = b&b = c)cout 您输入的是等边三角形!;else if(a=b|b=c)|a=c) cout 您输入的是等腰三角形!;else if (a*a + b*b = c*c) | (b*b + c*c = a*a) | (a*a + c*c = b*b)cout 您输入的是直角三角形!;else cout 普通三角形;elsecout c&b + c a&a + c b)这四个条件必须同时满足才能构成三角
19、形,若不满足其中任意一项都不可能构成三角形。(2)a = b&b = c在a*b*c != 0 & (a + b c&b + c a&a + c b)成立的情况下,满足a = b&b = c这两个条件,输出的三角形是等边三角形,若不满足其中任意一项,则不能输出等边三角形(3)(a=b|b=c)|a=c,在a*b*c != 0 & (a + b c&b + c a&a + c b)成立的情况下,且a = b&b = c不成立,满足(a=b|b=c)|a=c这三个条件,输出等腰三角形,则不能输出等腰三角形(4)(a*a + b*b = c*c) | (b*b + c*c = a*a) | (a*a
20、 + c*c = b*b),在a*b*c != 0 & (a + b c&b + c a&a + c b)成立的情况下,且a = b&b = c不成立,(a=b|b=c)|a=c也不成立,满足(a*a + b*b = c*c) | (b*b + c*c = a*a) | (a*a + c*c = b*b)这个条件输出直角三角形,否则输出普通三角形。c. 分别使用逻辑覆盖的5种覆盖标准设计测试用例并执行测试。在a*b*c != 0 & (a + b c&b + c a&a + c b)成立的情况下1.语句覆盖:选择足够多的测试数据,使得程序中的每一个可执行语句至少执行一次测试用例变量取值(a,b
21、,c)执行路径预期结果测试结果T12,3,4acegi普通三角形2.判定(分支)覆盖:使得程序中的每一个判断至少获得一次“真”和一次“假”测试用例变量取值(a,b,c)执行路径预期结果测试结果T11,2,3ab不能构成三角形T23,3,3acd等边三角形T34,4,5acef等腰三角形T42,3,4acegi普通三角形T53,4,5acegh直角三角形3. 条件覆盖:使得程序中每个判定表达式中的每个条件至少获得一次“真”和一次“假”第一个判定表达式:a*b*c!=0 取真值,记为T1a*b*c!=0 取假值,即a*b*c= 0,记为T1a+bc取真值,记为T2a+bc取假值,即a+bc,记为T
22、2b+ca取真值,记为T3b+ca取假值,即b+ca,记为T3a+cb取真值,记为T4a+cb取假值,即a+cb,记为T4第二个判定表达式:a=b 取真值,记为T5a=b 取假值,即ab,记为T5b=c取真值,记为T6b=c取假值,即bc,记为T6第三个判定表达式:a=b 取真值,记为T7a=b 取假值,即ab,记为T7b=c取真值,记为T8b=c取假值,即bc,记为T8a=c 取真值,记为T9a=c取假值,即ac,记为T9第四个判定表达式:a*a+b*b=c*c 取真值,记为T10a*a+b*b=c*c 取假值,即a*a+b*bc*c,记为T10b*b+c*c=a*a取真值,记为T11b*b
23、+c*c=a*a取假值,即b*b+c*ca*a,记为T11a*a+c*c=b*b取真值,记为T12a*a+c*c=b*b取假值,即a*a+c*cb*b记为T12条件覆盖的测试用例测试用例变量取值(a,b,c)执行路径覆盖条件T12,3,4acegiT1,T2,T3,T4,T5, T6, T7, T8, T9, T10, T11, T12T21,0,0abT1,T2,T3,T4,T5,T6, T7,T8, T9, T10, T11, T12T31,1,1acdT1, T2, T3, T4,T5,T6,T7,T8,T9,T10,T11,T12测试结果: 4. 判定/条件组合:第一个判定表达式:a*
24、b*c!=0, a+bc, b+ca, a+cb,记为T1,T2,T3,T4a*b*c!=0, a+bc,b+ca, a+cb,记为T1, T2,T3,T4a*b*c!=0, a+bc, b+ca,a+cb,记为T1,T2, T3,T4a*b*c!=0, a+bc, b+ca, a+cb,记为T1,T2,T3, T4a*b*c=0, a+bc, b+ca,a+cb,记为T1,T2, T3,T4a*b*c=0, a+bc,b+ca ,a+cb,记为T1, T2,T3,T4a*b*c=0, a+bc, b+ca, a+cb,记为T1,T2,T3, T4a*b*c=0, a+bc, b+ca, a+
25、cb,记为T1, T2, T3,T4a*b*c=0, a+bc, b+ca, a+cb,记为T1, T2, T3, T4a*b*c=0, a+bc, b+ca, a+cb,记为T1, T2, T3, T4a*b*c=0, a+bc, b+ca, a+cb,记为T1, T2, T3, T4第二个判定表达式:a=b,b=c,记为T5,T6a=b,bc,记为T5, T6ab,b=c,记为T5,T6ab, bc,记为T5, T6第三个判定表达式:(因为第三判定表达式包含了第二个判定表达式)ab, bc,a=c, 记为T5, T6,T7ab, b=c, ac, 记为T5, T6, T7a=b, bc,
26、ac, 记为T5, T6, T7ab, bc,ac, 记为T5, T6, T7a=b, b=c, a=c, 记为T5, T6, T7第四个判定表达式:a*a+b*bc*c,b*b+c*ca*a,a*a+c*c=b*b,记为T8, T9,T10a*a+b*bc*c,b*b+c*c=a*a,a*a+c*cb*b,记为T8, T9, T10a*a+b*b=c*c,b*b+c*ca*a,a*a+c*cb*b,记为T8, T9, T10a*a+b*bc*c, b*b+c*ca*a,a*a+c*cb*b,记为T8, T9, T10判定/条件组合测试用例测试用例变量取值(a,b,c)执行路径覆盖条件T11,
27、0,1abT1, T2, T3, T4, T5, T6,T7,T23,3,3acdT1,T2,T3,T4, T5, T6, T7, T8, T9, T10T36,8,10aceghT1,T2,T3,T4,T5,T6,T7,T8,T9,T10T43,3,4acefT1,T2,T3,T4, T5, T6, T7, T8, T9, T10T53,4,5aceghT1,T2,T3,T4, T5, T6, T7, T8, T9, T10T61,1,2abT1, T2,T3,T4, T5, T6, T7, T8, T9, T10T75,4,3aceghT1,T2,T3,T4, T5, T6, T7, T8
28、, T9, T10T82,3,3acefT1,T2,T3,T4, T5, T6, T7, T8, T9, T10T95,2,1abT1,T2,T3,T4,T5,T6, T7, T8, T9, T10T102,3,1abT1,T2,T3, T4,T5,T6,T7, T8, T9, T10T112,0,1abT1,T2,T3,T4,T5,T6,T7,T8,T9, T10T121,0,2abT1,T2,T3,T4,T5,T6,T7,T8,T9, T10T130,2,0abT1,T2,T3, T4,T5, T6,T7, T8,T9, T10 5. 条件组合覆盖:(1) a*b*c!=0,a+bc,b+
29、ca,a+cb属第一个判断地真分支(2) a*b*c!=0,a+bc,b+ca,a+cb属第一个判断地假分支(3) a*b*c!=0,a+bc,b+ca,a+cb属第一个判断地假分支(4) a*b*c!=0,a+bc,b+ca,a+cb属第一个判断地假分支(5) a*b*c=0,a+bc,b+ca,a+cb属第一个判断地假分支(6) a*b*c=0,a+bc,b+ca,a+cb属第一个判断地假分支(7) a*b*c=0,a+bc,b+ca,a+cb属第一个判断地假分支(8) a*b*c=0,a+bc,b+ca,a+cb属第一个判断地假分支(9) a*b*c=0,a+bc,b+ca,a+cb属第
30、一个判断地假分支(10) a*b*c=0,a+bc,b+ca,a+cb属第一个判断地假分支(11) a*b*c=0,a+bc,b+ca,a+cb属第一个判断地假分支(12) ab, bc,a=c属第三个判断地真分支(13) ab, b=c, ac属第三个判断地真分支(14) a=b, bc, ac属第三个判断地真分支(15) ab, bc,ac属第三个判断地假分支(16) a=b,b=c,a=c属第三个判断地假分支(17) a*a+b*bc*c, b*b+c*ca*a,a*a+c*cb*b属第四个判断地假分支(18) a*a+b*b=c*c,b*b+c*ca*a,a*a+c*cb*b属第四个判
31、断地真分支(19) a*a+b*bc*c,b*b+c*c=a*a,a*a+c*cb*b属第四个判断地真分支(20) a*a+b*bc*c,b*b+c*ca*a,a*a+c*c=b*b属第四个判断地真分支条件组合覆盖测试用例测试用例变量取值(a,b,c)执行路径覆盖组合情况T13,3,3acd(1),(16)T21,0,1ab(6),(12)T31,0,2ab(8),(15),(17)T42,3,4acegi(1),(15),(18)T51,1,2ab(2),(14),(20)T65,2,1ab(3),(15),(20)T70,0,0ab(11),(16)T82,2,0ab(10),(14)T91,2,0ab(4)T102,0,1ab(5)T113,5,5acef(7),(13)T120,2,2ab(9),(18)T135,,4,3acegh(19)测试结果 3.结果分析与问题讨论本次实训主要是针对白盒的逻辑覆盖进行分析测试,逻辑覆盖是通过对程序逻辑结构的遍历实现对程序的覆盖,本次实训的题目需要分析各个判断或各个条件的数目较多,容易混在一起,注意区分5种覆盖准则。在分析条件组合时要注意else if(a=b|b=c)|a=c)已经包含了if (a = b&b = c)。有些条件组合不符合逻辑是不可能成立的,需要删掉。专心-专注-专业