关于三角形问题的白盒测试实验报告
一、实验目的
1、能熟练应用功能性测试技术进行测试用例设计;
2、对测试用例进行优化设计;
二、实验内容
1、题目内容描述
针对实验一编写的源代码进行白盒测试。要求绘制出程序的控制流图,采用逻辑覆盖和基路径方法设计测试用例。执行测试用例,并分析测试结果。可以使用C++Test对代码进行静态检查和动态测试。
2、测试用例的编写
根据条件绘制程序流程图如下:
由程序流程图得如下控制流图:
采用逻辑覆盖设计测试用例并执行测试用例:
(1)语句覆盖:
(2)判定覆盖
(3)条件覆盖:
(4)判定-条件覆盖:
(5)条件组合覆盖:
(6)路径覆盖:
基路径方法设计测试用例并执行测试用例:
3、测试结果分析
经过以上测试发现:程序无法结束,达不到预测结果。其余均能正确执行达到预期结果。
4、实验思考
通过本次试验,对C++test工具有了一定的认识,学会了一些基本的用法和操作,用该工具测出了一些代码规范的问题,能够分析测试结果了。本实验用两种方法对程序进行测试,从中可看出,基路径测试比逻辑覆盖测试过程简单,但是没有逻辑覆盖测试的效果好。所以,我觉得应该更加熟悉两种测试方法的特色,以便在以后的测试中能更快更准确的选择测试方法,快速测试,找到程序中的错误。
附录:程序代码
#include "iostream.h"
#include "stdio.h"
void Judge(int m_num1,int m_num2,int m_num3)
{
while(scanf("%d %d %d",&m_num1,&m_num2,&m_num3)!=EOF)
{
if(!(m_num1+m_num2<=m_num3 || m_num1+m_num3<=m_num2 || m_num2+m_num3<=m_num1))
{
if (m_num1==m_num2 && m_num1==m_num3)
cout<<"等边三角形"<
else if (m_num1==m_num2 || m_num1==m_num3 || m_num2==m_num3)
cout<<"等腰三角形"<
else
cout<<"一般三角形"<
}
else
{
cout<<"不是三角形"<
}
}
}
void main()
{
int a,b,c;
Judge(a,b,c);
}
第二篇:黑盒测试实验报告
黑盒测试实验报告
一 实验内容
1、 系统地学习和理解黑盒测试的基本概念、原理,掌握黑盒测试的基本技术和方法;
2、 对一个已知的程序进行测试。
3、 通过试验和应用,要逐步提高和运用黑盒测试技术解决实际测试问题的能力;
4、 完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试报告等)
二 实验原理
黑盒测试原理:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。
从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。
等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。
1 划分等价类
划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。
2 边界值分析
边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重视输入条件边界,而且也必须考虑输出域边界。它是对等价类划分方法的补充。
(1)边界值分析方法的考虑:
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
(2)基于边界值分析方法选择测试用例的原则:
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
3)根据规格说明的每个输出条件,使用前面的原则1)。
4)根据规格说明的每个输出条件,应用前面的原则2)。
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
7)分析规格说明,找出其它可能的边界条件。
3 错误推测法
错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。
错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如, 在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有,输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。
4 因果图法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。
因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。
注:该用于被测试的程序能完成根据输入的年月日计算星期几的功能。已知公元1年1月1日是星期一。为简单起见不考虑公元前的日期。
三 实验方法
1 测试1(执行简单计算)
1.1 输入
1.2过程
2 测试2(执行科学计算)
2.1 输入
2.2过程
四 实验结果
打开Windows XP计算器(开始—所有程序—附件—计算器),如下图所示:
设计测试用例并记录,实验结果如下表所示:
1 测试1(执行简单计算)
2 测试2(执行科学计算)
五 实验分析
经测试证实了的Windows系统自带的部分计算器功能符合要求。由于时间有限所以没有进行全部功能的测试。对于十进制无法用科学计数法方便准确的输入数据,得到的简单结果也不能用科学计数法简单明了的表示,显示数字长度过长,有时不能准确记录。在计算时若输入其他非数字字符没有任何提示。经过证实该软件符合标准可以进行使用。
注:扩展实验,可以自己选择一个系统,设计测试用例,然后根据黑盒测试方法对其进行黑盒测试。