黑盒测试实验报告.doc
《黑盒测试实验报告.doc》由会员分享,可在线阅读,更多相关《黑盒测试实验报告.doc(21页珍藏版)》请在咨信网上搜索。
实验报告书 课程名称:软件测试 实验题目:黑盒测试报告 专 业:教育技术学 班 级:教技142 学生姓名:安卓 指导老师:郭小雪 所属学期:2017-2018学年第二学期 一、引言 1.1 目的 测试报告为三角形问题和找零钱最佳组合问题项目的黑盒测试报告,目的在于总结测试阶段的测试以及分析测试结果。 1.2实验环境 在Windows 2000(SP2) 或Windows XP 操作系统上,使用C++语言,VC6.0工具作为开发环境(IDE) 1.3实验要求 1. 根据给出的程序分别使用等价类划分法、边界值分析法、判定表方法、因果图法、正交试验法、功能图法、错误推测法来设计相应的测试用例。 2. 输入数据进行测试,填写测试用例。 二、 实验原理 黑盒测试原理:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。 从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。 等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。 1 划分等价类 划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 无效等价类:与有效等价类的定义恰巧相反。 设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。 2 边界值分析 边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重视输入条件边界,而且也必须考虑输出域边界。它是对等价类划分方法的补充。 (1)边界值分析方法的考虑;长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。 (2)基于边界值分析方法选择测试用例的原则: 1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。 2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。 3)根据规格说明的每个输出条件,使用前面的原则1)。 4)根据规格说明的每个输出条件,应用前面的原则2)。 5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。 6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。 7)分析规格说明,找出其它可能的边界条件。 3 错误推测法 错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。 错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如, 在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有,输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。 4 因果图法 前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。 因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。 三、实验内容 3.1 三角形问题 1) 划分等价类 有效等价类: 输入3个正整数或正小数: 1、两数之和大于第三数,如A<B+C;B<C+A;C<A+B 2、两数之和不大于第三数 3、两数相等,如A=B或B=C或C=A 4、三数相等,如A=B=C 5、三数不相等,如A!=B,B!=C,C!=A 无效等价类: 1、 空 2、负整数 3、非数字 4、少于三个数 三角形测试用例类别 输入条件 有效等价类 无效等价类 是否是三角形 (A>0) (1) (B>0) (2) (C>0) (3) (A+B>C) (4) (B+C>A) (5) (C+A>B) (6) (A<=0) (7) (B<=0) (8) (C<=0) (9) (A+B<=C) (10) (B+C<=A) (11) (C+A<=B) (12) 是否是等腰三角形 (A=B) (13) (B=C) (14) (C=A) (15) (A!=B)and(B!=C)and(C!=A) (16) 是否是等腰直角三角形 (A=B)and(A2+B2=C2) (17) (B=C)and(B2+C2=A2) (18) (C=A)and(C2+A2=B2) (19) (A!=B)and(B!=C)and(C!=A) (20) 是否是等边三角形 (A=B)and(B=C)and(C=A) (21) (A!=B) (22) (B!=C) (23) (C!=A) (24) 三角形测试用例:用最少的测试用例覆盖所有的有效等价类,而无效等价类每个类型都要覆盖到 序号 输入[A,B,C] 覆盖等价类 输出 1 [3,4,5] (1)(2)(3)(4)(5)(6) 是三角形 2 [1,2,3] (10) 非三角形 3 [1,3,2] (11) 非三角形 4 [3,1,2] (12) 非三角形 5 [3,3,4] (1)(2)(3)(4)(5)(6)(13) 等腰三角形 6 [3,4,4] (1)(2)(3)(4)(5)(6)(14) 等腰三角形 7 [3,4,3] (1)(2)(3)(4)(5)(6)(15) 等腰三角形 8 [3,4,5] (1)(2)(3)(4)(5)(6)(16)(20)(22)(23)(24) 是三角形 9 [3,3,3] (1)(2)(3)(4)(5)(6)(16)(21) 等边三角形 10 [3,4] 无效等价类 错误提示 三角形问题”的测试用例(边界值分析法) 测试用例说明 测试数据 期望结果 (1)a=0 0 3 4 输入无效 (2)b=0 3 0 4 (3)c=0 3 4 0 (4)a>0 3 4 5 这个三角形是三边不等的 (5)b>0 3 4 5 (6)c>0 3 4 5 (7)a+b=c 2 3 5 输入无效 (8)a+c=b 2 3 5 (9)b+c=a 2 3 5 (10)a+b<c 2 3 6 (11)a+c<b 2 3 6 (12)b+c<a 2 3 6 (13)|a-b|=c 5 3 2 (14)|a-c|=b 5 3 2 (15)|b-c|=a 5 3 2 (16)|a-b|>c 5 3 1 (17)|a-c|>b 5 3 1 (18)|b-c|>a 5 3 1 (19)a≠b≠c 3 4 5 这个三角形是三边不等的 (20)a=b≠c 4 4 5 这个三角形是等腰的 (21)a=c≠b 4 5 4 (22)b=c≠a 5 4 4 (23)a=b=c 4 4 4 这个三角形是等边的 测试源代码 三、 测试代码 等价值测试法 package cn.heihe.sjx.test; import java.util.Scanner; /** * “三角形问题”的测试用例(等价类测试) * * @author Mario * */ public class TestTriangle { @SuppressWarnings("resource") public static void main(String[] args) { try { int a, b, c; System.out.println("开始黑盒测试"); Scanner in = new Scanner(System.in); System.out.print("条件1.请输入第一个大于0且小于等于100的整数"); a = Integer.parseInt(in.nextLine()); if (a <= 0 || a > 100 || !String.valueOf(a).matches("[0-9]+")) { throw new Exception(); } System.out.print("条件2.请输入第二个大于0且小于等于100的整数"); b = Integer.parseInt(in.nextLine()); if (b <= 0 || b > 100 || !String.valueOf(b).matches("[0-9]+")) { throw new Exception(); } System.out.print("条件3.请输入第三个大于0且小于等于100的整数"); c = Integer.parseInt(in.nextLine()); if (c <= 0 || c > 100 || !String.valueOf(c).matches("[0-9]+")) { throw new Exception(); } if ((!(a + b <= c || a + c <= b || b + c <= a)) && (a >= 1 && a <= 100) && (b >= 1 && b <= 100) && (c >= 1 && c <= 100)) { if (a == b && a == c) { System.out.println(a + "," + b + "," + c + "可以组成一个等边三角形"); } else if (a == b || a == c || b == c) { System.out.println(a + "," + b + "," + c + "可以组成一个等腰三角形"); } else if ((a * a + b * b == c * c && a == b) || (a * a + c * c == b * b && a == c) || (c * c + b * b == a * a && c == b)) { System.out.println(a + "," + b + "," + c + "可以组成一个等腰直角三角形"); } else if ((a * a + b * b == c * c) || (a * a + c * c == b * b) || (c * c + b * b == a * a)) { System.out.println(a + "," + b + "," + c + "可以组成一个直角三角形"); } else { System.out.println(a + "," + b + "," + c + "可以组成一个一般三角形"); } } else { if (a < 1 || a > 100) System.out.println("不满足条件1,不能构成三角形"); if (b < 1 || b > 100) System.out.println("不满足条件2,不能构成三角形"); if (c < 1 || c > 100) System.out.println("不满足条件3,不能构成三角形"); if (c < 1 || c > 100) System.out.println("不满足条件3,不能构成三角形"); if (a >= b + c) System.out.println("不满足a<b+c,不能构成三角形"); if (b >= a + c) System.out.println("不满足b<a+c,不能构成三角形"); if (c >= a + b) System.out.println("不满足c<a+b,不能构成三角形"); } System.out.println("黑盒测试结束"); } catch (Exception e) { System.out.println("不满足条件,不能构成三角形\n黑盒测试结束"); } } 边界值测试法 package cn.heihe.sjx.test; import java.util.Scanner; /** * “三角形问题”的测试用例(边界值测试) * * @author Mario */ public class TestTriangle2 { @SuppressWarnings("resource") public static void main(String[] args) { try { int a, b, c; System.out.println("开始黑盒测试"); Scanner in = new Scanner(System.in); System.out.print("条件1.请输入第一个大于0且小于等于100的整数"); a = Integer.parseInt(in.nextLine()); System.out.print("条件2.请输入第二个大于0且小于等于100的整数"); b = Integer.parseInt(in.nextLine()); System.out.print("条件3.请输入第三个大于0且小于等于100的整数"); c = Integer.parseInt(in.nextLine()); if (a < 1 || a > 100 || !String.valueOf(a).matches("[0-9]+")) { throw new Exception(); } if (b < 1 || b > 100 || !String.valueOf(b).matches("[0-9]+")) { throw new Exception(); } if (c < 1 || c > 100 || !String.valueOf(c).matches("[0-9]+")) { throw new Exception(); } if ((!(a + b <= c || a + c <= b || b + c <= a))) { if (a != b && b != c && a != c) { System.out.println("这个三角形是三边不等的"); } else if (a == b && b == c && a == c) { System.out.println("这个三角形是等边的"); } else if (a == b || a == c || c == b) { System.out.println("这个三角形是等腰的"); } } else { System.out.println("输入无效"); } System.out.println("黑盒测试结束"); } catch (Exception e) { System.out.println("输入无效\n黑盒测试结束"); } } } 3.2 找零钱最佳组合 一、分析输入的情形。 R P R>100 0<R<=100 R<=0 P>100 R<=P<=100 P<R 二、分析输出情形。 N50 N10 N5 N1 N50=1 N50=0 4>=N10>=1 N10=0 N5=1 N5=0 4>=N1>=1 N1=0 三、分析规格中每一决策点之情形,以RR1,RR2,RR3表示计算要找50,10,5元货币数时之剩余金额。 R>100 R<=0 P>100 P<R RR1>=50 RR2>=10 RR3>=5 四、由上述之输入/输出条件组合出可能的情形。(RR=P-R) R>100 R<=0 0<R<=100,P>100 0<R<=100,P<R 0<R<=100,R<=P<=100,RR=50 0<R<=100,R<=P<=100,RR=49 0<R<=100,R<=P<=100,RR=10 0<R<=100,R<=P<=100,RR=9 0<R<=100,R<=P<=100,RR=5 0<R<=100,R<=P<=100,RR=4 0<R<=100,R<=P<=100,RR=1 0<R<=100,R<=P<=100,RR=0 五、为满足以上之各种情形,测试资料设计如下: 1.货品价格=101 2.货品价格=0 3.货品价格=-1 4.货品价格=100,付款金额=101 5.货品价格=100,付款金额=99 6.货品价格=50,付款金额=100 7.货品价格=51,付款金额=100 8.货品价格=90,付款金额=100 9.货品价格=91,付款金额=100 10.货品价格=95,付款金额=100 11.货品价格=96,付款金额=100 12.货品价格=99,付款金额=100 13.货品价格=100,付款金额=100 测试源代码 package com.xu.ceshi; import java.util.Scanner; public class Price { public static void main(String[] args) { System.out.println("请输入您购买的东西价格:"); Scanner scanner=new Scanner(System.in); int value=scanner.nextInt(); if(value>100||value<0){ System.out.println("无效货品价格"); System.out.println("请输入您购买的东西价格:"); value=scanner.nextInt(); } System.out.println("请输入您支付的金额:"); int value2=scanner.nextInt(); if(value>value2||value2>100){ System.out.println("无效付款"); }else if(value==value2){ System.out.println("不找零"); }else{ int value3=value2-value; if(value3>100||value3<0){ System.out.println("输入的价钱不在本店范围内"); value=scanner.nextInt(); } Price price=new Price(); price.process(value3); } } public void process(int money){ System.out.println("将"+money+"元找零需要"); int[] value={100,50,10,5,1}; int[] count=new int[value.length]; for(int i=0;i<value.length;i++){ while(money>=value[i]){ money-=value[i]; count[i]++; } if(count[i] !=0){ System.out.print("应找回"+count[i]+"张"+value[i]+"元 "); } } } } 四、心得体会 通过这一次的黑盒测试实验,我们小组成员学习到了很多的知识。首先对于测试计划上的失误,可以通过小组讨论,理清问题所在,交流寻找解决方案,以保证软件测试的后续展开。 还有对于测试人员对软硬件的熟悉程度引起的延误,可暂时延后测试行程,组员之间相互沟通交流软件、硬件系统使用心得,共同提高熟练程度后继续展开测试工作。在这过程中我们发现我们仍然有很多不足的地方,例如对测试的基本知识掌握程序不够,编写测试用例可能不完整等等。 20- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 黑盒 测试 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【1587****927】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【1587****927】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【1587****927】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【1587****927】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文