软件测试-毕业设计任务书,软件测试任务书
软件测试 毕业设计任务书,软件测试任务书
软件测试实验任务书
学院:数学与计算机学院
班级:09计算机3班(嵌入式)
姓名:王闯
学号:00913319
南京晓庄学院2009级
一、基本概念
1、写出什么是黑盒测试? 黑盒测试主要采用的技术有哪些?
答:①黑盒测试:黑盒测试方法,也称功能测试或数据驱动测试方法,在测试时,把程序
看作是一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试人员针对软件直接进行测试。
②黑盒测试主要采用的技术:黑盒测试方法中常用的具体方法有等价类划分法、边界值
分析法、错误推测法、因果图等。
2、写出什么是等价类?等价类划分一般经过的两个过程?什么有效等价类?无效等价
类?
答:①等价类:等价类是指某一个输入域的一个特定的子集合,在该子集合中各个输入数据对于揭露程序中的错误都是等效的。也就是说,如果用这个等价类中的代表值作为测试用例未发现程序错误,那么该类中其他的数据(测试用例)也不会发现程序的错误。
②等价类划分一般经过的两个过程:分类和抽象。
③有效等价类:有效等价类是指输入完全满足程序输入的规格说明、有意义的输入数
据所构成的集合,利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。
④无效等价类:无效等价类和有效等价类相反,即不满足程序输入要求或者无效的输入数据构成的集合。利用无效等价类,可以测试程序/系统的容错性——对异常输入情况的处理。
3、写出你所知道的白盒测试的方法?并对各种方法进行简单描述。
答:①白盒测试的方法:具体方法有逻辑覆盖、循环覆盖、基本路径覆盖等。逻辑覆盖又
可进一步分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖等。 ②对各种方法的简单描述:Ⅰ语句覆盖:语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。
Ⅱ判定覆盖:判定覆盖法的基本思想是设计若干用例,运行
被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。
Ⅲ条件覆盖:条件覆盖的基本思想是设计若干用例,执行被
测程序以后,要使每个判断中每个条件的可能取值至少满足一次。
Ⅳ判定-条件覆盖:判定-条件覆盖实际上是将前两种方法结
合起来的一种设计方法,它是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次。
Ⅴ条件组合覆盖:条件组合覆盖的基本思想是设计足够的测
试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。
Ⅵ路径覆盖:顾名思义,路径覆盖就是设计所有的设计用例,
来覆盖程序中的所有可能的执行路径。 二、 测试案例举例
1、写出三角形问题的等价类测试和边界值分析测试的测试用例及测试结果(实验1) 答: 测试用例 输入a,b,c 输出
1
2
3
4
5
等价类分析测试
在三角形问题中,输入条件为: a 、 整数 b 、 三个数
c 、 取值为1~100
三角形问题的无效等价类划分测试用例 (2)标准和稳健等价类划分测试用例设计
三角形问题有四种可能输出:等边三角形、等腰三角形、一般三角形和非三角形。
利用这些信息可确定下列输出(值域)等价类。 R1={:边为a,b,c 的等边三角形} R2={:边为a,b,c 的等腰三角形} R3={:边为a,b,c 的一般三角形} R4={:边为a,b,c 的直角三角形} R5={:边为a,b,c 不能形成三角形}
三角形问题的4个标准等价类划分测试用例
2、写出NextDate 函数黑盒测试的初始判定表和测试用例和部分测试结果(实验4)
初始判断表: (
年份划分等价类:
Y1=非闰年 Y2=闰年 月份划分等价类:
M1=2月 M2=1、3、5、7、8、10月 M3=4、6、9、11月 M4=12月 日期划分等价类:
D1=1-27 D2=28 D3=29 D4=30 D5=31
并且假设年份(1811-2013) 月份(1-12) 日期(1-31)都不会超出范围)
2、测试用例执行情况及记录 3、请举例说明白盒测试的判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖的应用(实验5、6) 答:①下图为(图1)某程序段的流程图,请用判定覆盖、条件覆盖、判定/条件覆盖、路
径覆盖设计足够的测试用例填写到下面的表格中。
一、
②在三角形计算中,要求三角型的三个边长:A 、B 和C 。当三边不可能构成三角形时
提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。
程序流程图:
控制流程图:
#include int main() { int a,b,c,X; while(1) { { else
if(a+b
printf(“错误!\n”);
else if((a==b&&(a!=c))||(a==c&&(b!=c))||(b==c&&(a!=c)))
printf(“等腰三角形\n”);
printf(“请输入三角形的三条边长a,b,c:\n”); scanf("%d",&a); scanf("%d",&b); scanf("%d",&c);
else if(a==c && a==b)
printf(“等边三角形\n”);
X=a+b+c; }
printf(“三角形周长%d\n”,&X);
return 0; } }
③计算圈复杂度V(g):
答:V(g)=边界数目—节点数目+2.按此计算,V(g)=5—3+2=4 ④找出基本测试路径:
答:❶A-B-C-G-J
❷A-B-C-D-E-J ❸A-B-C-D-E-F-I-J ❹A-B-C-D-E-F-H-J
三、 写出格式完整的NextDate 函数等价类测试实验报告并同时写出一份缺陷报告(缺陷报
告格式自拟)
黑盒测试深入(目标一)
1、 简介
1.1编写目的
本测试报告目的在于总结测试阶段的测试以及分析测试结果,通过测试来检测每个功能是否都能正常使用。预期参考人员包括测试人员、开发人员和需要阅读本报告的老师。
1.2项目背景
本项目为软件测试上机作业。
1.3术语
等价类划分:是把所有可能的输入数据, 即程序的输入域划分成若干部分(子集), 然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的, 常用的黑盒测试用例设计方法。
1.4参考资料
**********]0vpsy.html
2、 测试概要
2.1测试程序源代码
#include using namespace std;
void NextDate(int year,int month,int day); void main() { int year=0,month=0,day=0; NextDate(year,month,day); }
void NextDate(int year,int month,int day) { cout>year; while(!(year>=1811 && year>year; } cout>month; while (month>12||month>month; } cout>day; while (day>31||day>day; }
if((year%4==0 && year%100!=0) || (year%400==0)) //检查闰年; { int i=0; i=day-29; while(month==2&&i>0) { cout>day; } if(month==2&&day==29) { month=3; day=1; } else day++; } else day++; //月底计算; switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: if (day==32) { month++; day=1; cout
}
case 9: case 11: if(day==31) { month++; day=1; cout
cout
2.2测试用例设计
2.3测试环境与配置
操作系统:Microsoft Windows XP
Cpu :Intel (R )Core (TM )2 Duo CPU
内存:2.99GHZ ,3.21GB
2.4测试方法
手工利用黑盒测试中的等价类划分法进行测试,主要测试目标为检验函数是否符合题目所给要求。即:输入是否符合规定条件,及程序的鲁棒性。
3、 测试结果及缺陷分析
3.1测试执行情况与记录
3.2缺陷统计与分析
- 在非闰年2月份时,可以输入日期大于28(29,30,31)。如图
:
- 在4,6,9,11月份时候,可以输入日期31,结果输出日期32。实际上这些月份是不会出现
31,32号的。如图:
- 在闰年时,2月份输入日期时候,会出现死循环。一直提示“本月是闰月,请在1到29
之间从新输入日期”。如图:
- 转月或者跨年时候,会输出2次第二天的日期。如图:
4、 测试结论
结论:测试结果表明该程序有部分功能不能完整的正确实现,需要进一步修正。 测试人员:王闯
缺陷报告
1、概述
本文档用于对NextDate 函数的测试工作阶段成果的描述。描述测试工作中发现的函数缺陷。
2、测试策略
手工利用黑盒测试中的等价类划分法进行测试,主要测试目标为检验函数是否符合题目所给要求。即:输入是否符合规定条件,及程序的鲁棒性。
2.1 界面测试
界面实现没问题
2.2 功能测试
四、 (选做题目)请介绍一个你熟悉的自动化测试工具,并简略写出它的使用方法(使用
方法请配图说明)
答: JUnit is an open source Java testing framework used to write and run repeatable tests 。说白了,JUnit 是一个集成测试工具,能实现测试的自动化。这里说的是单元测试:属于软件工程里的白盒测试,也就是测试某个类的某个方法的功能。JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit 测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的
软件如何(How )完成功能和完成什么样(What )的功能。Junit 是一套框架,继承TestCase 类,就可以用Junit 进行自动测试了。
- 图解JUnit 安装过程 答: 第一步:
去Junit 主页( )下载最新版本3.8.1程序包junit-3.8.1.zip. 解开压缩包创建一个目录到F :\08年上课件。
第二步:右击我的电脑进入属性,选择高级选项,再进入环境变量,在上面的Administrator 的用户变量处进行新建变量名为classpath 中加入:“D:\08年上课件\软件测试\junit3.8.1\junit3.8.1\;D:\08年上课件\软件测试\junit3.8.1\junit3.8.1\junit.jar:”定义类路径。点击确定后如下图
接下来运行cmd ,运行:
java junit.swingui.TestRunner
接着比在下拉菜单中寻找程序自带的例子如
junit.tests.extensions.ActiveTestTest ,点击Run
,运行如下:
安装完毕。