软件测试课程设计.docx
《软件测试课程设计.docx》由会员分享,可在线阅读,更多相关《软件测试课程设计.docx(18页珍藏版)》请在冰点文库上搜索。
软件测试课程设计
存档资料成绩:
华东交通大学理工学院
课程设计报告书
所属课程名称软件测试课程设计
题目软件测试
分院电信分院
专业班级11信管1班
学 号
学生姓名
指导教师
20年月日
序号
项目
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
设计中创新性评价
6
论文书写规范化评价
7
综合应用能力评价
综合评定等级
课程设计(论文)评阅意见
评阅人 职称
20年月日
目录
第一章课程设计目的4
第二章功能测试5
第三章结构测试9
3、1.逻辑路径测试9
3、2.基本路径测试11
第四章压力测试14
第五章课程设计心得16
第六章参考文献17
第1章 课程设计目的
这次的软件测试课程设计与以前我做过的那些课程设计很不同,以往的都是一个大题而已,而这次的课程设计共有五个题目,需要使用到三种测试方法:
功能测试、结构测试、压力测试。
软件性测试需要贯穿在整个软件生命周期的每个阶段,每个时刻。
它需要伴随着软件开发以检验每一个阶段性的成果是否符合质量的要求和达到预先定义的目标,尽早的发现错误并改正以减少损失。
软件测试是软件工程中非常重要的环节,是软件质量的保证。
该课程是培养训练学生软件质量保证能力的重要实践性教学环节,与软件测试技术课程的教学内容紧密配合,同步进行。
开设该课程设计的主要目的是:
通过软件测试的实践训练,深刻理解和掌握软件测试和软件测试过程的基本方法和基本技术,熟练掌握功能测试、结构测试的测试用例的设计,同时进一步提高学生对于复杂程序的编写能力,为学生将来从事实际软件测试工作和进一步深入研究打下坚实的理论基础和实践基础。
第2章 功能测试
功能测试也称为黑盒测试,黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。
软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果来发现软件存在的缺陷,而不关心程序具体如何实现的一种软件测试方法。
黑盒测试常用工具有:
AutoRunner、winrunner、loadrunner。
以下两个题采用等价类划分法进行功能测试。
等价划分测试是根据等价类设计测试用例的一种技术。
是黑盒测试的典型方法之一,通过把被测试程序所有可能的输入数据域划分成若干部分。
从每一部分中选取少数有代表性的数据作为测试用例,可有效减少测试次数,极大提高软件测试效率,缩短软件开发周期.等价类划分测试的目的就是为了在有限的测试资源的情况下,用少量有代表性的数据得到比较好的测试效果。
有效等价类和无效等价类。
有效等价类中的数据代表的是一组符合需求文档的正确的有意义数据。
无效等价类则正相反。
1、用等价类划分法测试为保险公司计算保费费率的程序。
某保险公司的人寿保险的保费计算方式为:
投保额*保险费*保险费率,其中的保险费依点数不同而有别,10点及10点以上保险费为0.6%,10点以下保险费率为0.1;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:
年龄
20-39岁
6点
40-59岁
4点
60岁以上或20岁以上
2点
性别
男
5点
女
3点
婚姻
已婚
3点
未婚
5点
抚养人数
一人扣0.5点,最多扣3点(四舍五入取整数)
对程序中各个输入条件的要求如下:
年龄是一位或两位非零整数,值的有效范围为1-99;性别是一位英文字符,有效取值只能为‘M’(表示男性)或‘F’(表示女性);婚姻的有效取值只能为‘已婚’或‘未婚’:
抚养人数的有效取值可以是空白或一位非零整数(1-9)。
(1)分析程序的规格说明,列出等价类表(包括有效等价类和无效等价类)。
(2)根据
(1)中的等价类表,设计能覆盖所有等价类的测试用例的输入数据和预期输出。
步骤1:
分析程序的规格说明,列出输入域等价类表
输入条件
有效等价类
编号
无效等价类
编号
年龄
20-39岁
1
40-59岁
2
1-19岁、60-99岁
3
小于1
12
大于99
13
性别
单个英文字符
4
非英文字符
14
非单个英文字符
15
‘M’
5
除‘M’和‘F’之外的其它单个字符
16
‘F’
6
婚姻
已婚
7
除‘已婚’和‘未婚’之外的其它字符
17
未婚
8
抚养人数
空白
9
除空白和数字之外的其它字符
18
1-6人
10
小于1
19
6-9人
11
大于9
20
步骤2:
根据等价类表设计能覆盖所有等价类的测试用例
测试用例编号
输入数据
预期输出
年龄
性别
婚姻
抚养人数
保险费率
1
27
F
未婚
空白
0.6%
2
50
M
已婚
2
0.6%
3
70
F
已婚
7
0.1%
4
0
M
未婚
空白
无法推算
5
100
F
已婚
3
无法推算
6
99
男
已婚
4
无法推算
7
1
Child
未婚
空白
无法推算
8
45
N
已婚
5
无法推算
9
38
F
离婚
1
无法推算
10
62
M
已婚
没有
无法推算
11
18
F
未婚
0
无法推算
12
40
M
未婚
10
无法推算
2、某城市电话号码由三部分组成。
它们的名称和内容分别是:
地区码:
空白或三位数字:
前缀:
非‘0’或‘1’的三位数字:
后缀:
4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
根据该程序的规格说明,作等价类的划分,并设计测试方案。
答:
1.划分等价类
输入条件
有效等价类
无效等价类
地区码
1.空白
2.三位数
1.有非数字字符;2.少于三位数字;3.多于三位数字。
前缀
3.从200到999之间的三位
4.有非数字字符;5.起始位为‘0’;6.起始位为‘1’;7.少于三位数字;8.多于三位数字。
后缀
4.四位数字
9.有非数字字符;10.少于四位数字;11.多于四位数字。
设计测试方案
方案
内容
输入
预期输出
地区码
前缀
后缀
1
空白
200-999之间的三位数字
四位数字
()276-2345
有效
2
三位数字
四位数字
(635)805-9321
有效
3
有非数字字符
(20A)723-4567
无效
4
少于三位数字
(33)234-5678
无效
5
多于三位数字
(5555)345-6789
无效
6
有非数字字符
(345)5A2-3456
无效
7
起始位为‘0’
(345)012-3456
无效
8
起始位为‘1’
(345)132-3456
无效
9
少于三位数字
(345)92-3456
无效
10
多于三位数字
(345)4562-3456
无效
11
有非数字字符
(345)342-3A56
无效
12
少于四位数字
(345)342-356
无效
13
多于四位数字
(345)562-34567
无效
第3章 结构测试
结构测试也称为白盒测试,白盒测试是把测试对象看作一个打开的盒子。
利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。
其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
白盒测试常用工具有:
Jtest、VcSmith、Jcontract、C++Test、CodeWizard、logiscope。
以下两题目分别采用逻辑覆盖测试、基本路径覆盖测试,其中对于逻辑覆盖测试的用例设计,采用了语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖对程序设计测试用例。
3、1.逻辑路径测试
使用逻辑覆盖测试方法测试以下程序段:
VoidDoWork(intx,inty,intz)
{
1intk=0,j=0;
2if((x>3)&&(z<10))
3{
4k=x*y-1;
5j=sqrt(k);
6}
7if((x==4)||(y>5))
8j=x*y+10;
9j=j%3;
10}
说明:
程序段中每行开头的数字(1-10)是对每条语句的编号。
(1)画出程序的控制流图(用题中给出的语句编号表示)。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
解答:
(1)
程序的控制流图如下:
(2)假设M=(x>3)&&(z<10),N=(x=4)||(y>5),/M表示M的取反,/N同理
条件>3为真时为T1,为假时为F1,
条件<10为真时为T2,为假时为F2,
条件x==4为真时为T3,为假时为F3.
条件y>5为真时为T4,为假时为F4.
语句覆盖:
输入x=5,y=6,z=9,满足MN,执行路径为:
1-2-3-4-5-6-7-8-9-10,输出k=29,j=1
判定覆盖:
输入x=5,y=6,z=9,满足MN,执行路径为:
1-2-3-4-5-6-7-8-9-10,输出k=29,j=1
输入x=3,y=5,z=10,满足/M/N,执行路径为:
1-2-7-9-10,输出k=j=0
条件覆盖:
输入x=4,y=5,z=10,满足T1F2T3F4,执行路径为:
1-2-7-8-9-10,输出k=j=0
输入x=3,y=6,z=9,满足F1T2F3T4,执行路径为:
1-2-7-8-9-10,输出k=0,j=1
判定/条件覆盖:
输入x=4,y=6,z=9,满足MN、T1T2T3T4,执行路径为:
输入x=3,y=6,z=9,满足F1T2F3T4,执行路径为:
1-2-7-8-9-10,输出k=0,j=1
判定/条件覆盖:
输出x=4,y=6,z=9,满足MN、T1T2T3T4,执行路径为:
1-2-3-4-5-6-7-8-9-10,输出k=23,j=1
输入x=3,y=5,z=10,满足/M/N、F1F2F3F4,执行路径为:
1-2-7-9-10,输出k=j=0
条件组合覆盖:
输入x=4,y=6,z=9,满足MN、T1T2T3T4,执行路径为:
1-2-3-4-5-6-7-8-9-10,输出k=23,j=1
输入x=4,y=5,z=10,满足/MN、T1F2T3F4,执行路径为:
1-2-7-8-9-10,输出k=j=0
输入x=3,y=6,z=9,满足/MN、F1T2F3T4,执行路径为:
1-2-7-8-9-10,输出k=0,j=1
输入x=3,y=5,z=10,满足/M/N、F1T2F3F4,执行路为:
1-2-7-9-10,输出k=j=0
路径覆盖:
输入x=5,y=6,z=9,执行路径为:
1-2-3-4-5-6-7-8-9-10输出k=29,j=1
输入x=5,y=5,z=9,执行路径为:
1-2-3-4-5-6-7-9-10输出k=24,j=1
输入x=3,y=6,z=9,执行路径为:
1-2-7-8-9-10输出k=0,j=1
输入x=3,y=5,z=10,执行路径为:
1-2-7-9-10输出k=j=0
3、2.基本路径测试
使用基本路径测试方法测试以下程序段:
IntIsLeap(intyear)
{
1 if(year%4==0)
{
2 if(year%100==0)
{
3 if(year%400==0)
4 leap=1;
else
5 leap=0;—
}
else
4 leap=1;
}
else
5 leap=0;
6 returnleap;
}
说明:
写在程序段某些行开头的数字(1-6)是对相应语句的编号。
(1)画出程序的控制流图(用题中给出的语句编号表示)。
(2)计算上述程序段的环形复杂度。
(3)导出基本路径集,列出程序的独立路径(用题中给出的语句编号表示)。
(4)假设输入的取值范围是1000解答:
(1)
(2)圈复杂度:
V(G)=4
(3)基路径
Path1:
1,2,10,11,12
Path2:
1,2,3,8,9,11,12
Path3:
1,2,3,4,6,7,9,11,12
Path4:
1,2,3,4,5,7,9,11,12
(4)测试用例:
用例1:
year是1000-2000之间不能被4整除的整数,如1001、1002、1003等。
用例2:
year是1000-2000之间能被4整除但不能被100整除的整数,如1004、1008、1012、10016等。
用例3:
year是1000-2000之间能被100整除但不能被400整除的整数,如1100、1300、1400、1500、1700、1800、1900
用例4:
year是1000-2000之间能被400整除的整数,如1200、1600、2000。
第4章 压力测试
压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。
压力测试的基本思路很简单:
不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。
通常要进行压力测试的资源包括内部内存、CPU可用性、磁盘空间和网络带宽等。
一般用并发来做压力测试。
下题运用到的知识如下:
(1)响应时间:
从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间。
(2)并发用户数:
同一时间段内访问系统的用户数量。
(3)吞吐量:
单位时间内系统处理的客户请求数量。
压力测试是指模拟实际应用的软硬件环境及多用户订单提交过程的系统负荷,运行测试软件来测试被测系统的可靠性、稳定性等。
本次实验所用到的压力测试方法有:
(4)重复测试:
重复执行某个操作或功能,以检验软件能否在极端情况下正常执行该操作。
(5)并发测试:
并发是同时执行多个操作的行为,即在同一时间执行多个测试线程。
1、负载压力性能测试是评估系统性能、性能故障诊断以及性能调优的有效手段。
自选一个系统,例如税务征管系统中“税票录入”业务或“投票”业务等进行测试。
系统服务器端由应用服务器和单节点数据库服务器组成。
并发用户数
交易吞吐量平均值(trans/s)
交易响应时间平均值(s)
数据库服务器CPU平均利用率
应用服务器CPU平均利用率
10
0.56
0.57
37.50%
13.58%
20
2.15
1.16
57.32%
24.02%
30
3.87
3.66
70.83%
39.12%
50
7.02
6.63
97.59%
53.06%
回答以下问题:
(1)简述交易吞吐量和交易响应时间的概念。
(2)试判断随着负载的增加,当交易吞吐量不再递增时,交易响应时间是否会递增,并说明理由。
(3)对系统进行测试并且补充上表,根据测试结果,判断服务器资源使用情况是否合理,为什么?
(4)在并发用户数为50时,如果交易吞吐量和交易响应时间都不满足需求,简述数据库端造成此缺陷的主要原因,有效的解决方案是什么?
(5)若去年仓库处理“税票录入”交易约100万笔,考虑到3年后交易量递增到每年200万笔。
假设每年交易量集中在8个月,每个月20个工作日,每个工作日8小时。
试采用80~20原理估算系统服务器高峰期“税票录入”的交易吞吐量(trans/s)。
答:
(1)交易吞吐量:
系统服务器每秒能够处理通过的交易数。
交易响应时间:
是系统完成事务执行准备后所采集的时间戳和系统完成待执行事务后所采集的时间戳之后的时间间隔,是衡量特定类型应用事务性能的重要指标,标志了用户执行一项操作大致需要多长时间。
(2)当系统吞吐量未达到系统处理极限时,系统性能不衰减,交易平均响应时间一般不会递增;
当系统达到交易吞吐量极限时,客户端交易会在请求队列中排队等待,等待的时间会记录在响应时间中,交易平均响应时间一般会递增。
(3)数据库服务器资源使用不合理。
服务器资源使用中最主要的指标是CPU利用率,对于一般的应用系统,在负载压力期间当CPU利用率平均值持续达到85%以上时,表示服务器资源使用出现瓶颈,视为不合理。
当并发用户数达到50时,数据库服务器CPU平均利用率(%)达到97.5%,属不合理范围。
(4)数据库端造成此缺陷的主要原因包括:
服务器资源负载过重;
数据库设计不合理;
数据库单个事务处理响应时间长;
系统并发负载造成最终用户响应时间长;
有效的解决方案是:
采用数据库集群策略,并注意配置正确。
(5)(1000000*2*80%)/(8*20*8*3600*20%)=1.74trans/s
即服务器处理“税票录入”交易的吞吐量应达到1.74trans/s
第5章 课程设计心得
通过此次软件测试的课程设计,深刻学习掌握了软件测试和软件测试过程的基本方法和基本技术,关于黑盒、白盒的测试用例的设计,也进行了认真学习研究,从而进一步提高了自己在程序上的编写能力,以及一些之前未触及的问题,为即将踏上社会的自己又做了一份理论和实践的准备。
《软件测试方法和技术》这门课程是计算机软件工程专业的一门专业课,它具有很高的专业性知识,通过学习《软件测试方法和技术》,在《现代软件工程》课程基础上,将《现代软件工程》课程中的软件测试部分专门提取出来并详细解读,足以见本门课程的内容在软件实际开发过程中的重要性,软件测试做的好坏能决定一个软件的好坏,软件测试用例使用的好坏也决定着软件测试过程、软件的好坏。
学习好本门课程对以后进行软件开发以及软件测试有着很好的作用。
通过本次课程设计,以具体的测试实例加深巩固了本学期所开设的《软件测试方法和技术》课程。
掌握并总结实践中的缺点和成功之处,将为我们将来在软件行业工作打下良好基础。
总之,这几天来的付出得到了回报,既巩固了所学的知识,又加深了对这门学科的理解,感觉自己收获颇丰。
这次课设,让我学到了很多书本上没有的东西,我也将课本上的知识融会贯通,起到了很好的辅助学习的效果,我也发现我学到的知识比上个学期学的还要多。
理论和实践相结合是学习的最有效的方法,这次设计中我也发现了自己的很多不足之处,对以前所学的理解不够深刻,掌握不够牢固。
第6章 参考文献
[1]张小松,王钰,曹跃 等译.软件测试(原书第2版).机械工业出版社.2006.4
[2]陈能技(著).软件测试技术大全:
测试基础、流行工具、项目实战(第二版).人民邮电出版社.2011.7
[3]段念.软件性能测试过程详解与案例剖析(第二版).清华大学出版社.2012.6
[4]刘群策,《LoadRunner和软件项目性能测试》,机械工业出版社,2008年
[5]朱少民,《软件测试方法和技术》,清华大学出版社,2005年
[6]段念,《软件性能测试过程详解与案例剖析》,清华大学出版社,2006年
[7]宫云站,《软件测试教程》,机械工业出版社,2010年
[8]谢希仁,计算机网络(第五版)北京:
电子工业出版社,2008.2
[9]胡小强,计算机网络北京:
电子邮电大学出版社2005.1
[10]张海藩,《软件工程导论》(第五版),清华大学出版社,2008.2