软件测试课程设计
- 格式:doc
- 大小:597.00 KB
- 文档页数:19
课程设计(论文)任务书
软件 学 院 软件工程(软件测试) 专 业 软件(测试)2016-1 班
一、课程设计(论文)题目 综合课程设计4(A)
二、课程设计(论文)工作自 2019年 1 月 2 日起至 2019年 1 月 11 日止。
三、课程设计(论文) 地点: 软件测试中心
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)学生能够运用所学知识和方法设计好测试用例,熟练运用单元测试工具,能对相对的复杂函数进行单元测试;
(2)培养学生分析、解决问题的能力;
(3)提高学生的科技论文写作能力。
2.课程设计的任务及要求
1)基本要求:
(1)选择4个有一些复杂的待测试函数;
(2)重点是按合理方法,设计好测试用例;
(3)编写测试代码,分析测试结果;认真进行bug和用例分析。
2)创新要求:
选择1-2个有测试难度的、复杂的待测函数开展测试。
3)课程设计论文编写要求
(1)要按照书稿的规格打印书写课程设计论文
(2)论文包括目录、4个待测函数,有用例设计过程和Bug用例分析,设计体会与小结、参考文献等
(3)课程设计论文装订按学校的统一要求完成
4)答辩与评分标准:
(1)课设态度表现:10分; 华东交通大学课程设计报告
(2)课设进度检查:40分;
(3)课设论文:50分;
5)参考文献:
(1)参考单元测试的PPT,软件测试教材。
(2)相关编程、算法课本和网络代码。
6)课程设计进度安排
内容 天数 地点
构思及收集资料 2 图书馆、教室
设计与测试 6 实验室
撰写论文 2 图书馆、教室
学生签名:
2019年1月11日
课程设计(论文)评审意见
(1)测试内容 (20分):优( )、良( )、中( )、一般( )、差( );
(2)设计过程 (50分):优( )、良( )、中( )、一般( )、差( );
(3)Bug分析 (30分):优( )、良( )、中( )、一般( )、差( );
评阅人: 陈丹 职称: 讲师
2019年 1月15日
华东交通大学课程设计报告
目 录
一、前言 ...................................................................................... 4
二、测试设计一:背包函数 ..................................................... 4
三、测试设计二:装载问题函数 ........... 错误!未定义书签。
四、测试设计三:广告印刷函数 ............................................. 7
五、测试设计四:钱币找零函数 ........................................... 15
六、课设小结及心得体会 ....................................................... 18
七、参考文献 ............................................................................ 19 华东交通大学课程设计报告
第 4 页 一、前言
本次课设选择了4个函数展开测试设计工作。其中,背包问题函数,是贪心算法中的一种解决背包问题方法的函数。还有装载问题,也来自于算法设计与分析,这类问题同样也是经过贪心算法,从而写出的函数,去寻找最优解问题。然后还有广告印刷问题,作为acm的题目。最后是钱币找零问题,解决最优的找零方案。
二、测试设计一:背包函数
1、背包函数介绍
背包函数来源于算法设计与分析。它的输入有背包的容量 M, 物品的种类的数量 n,某一种类物品的重量weight,及其该物品的价值values。输出是为某一物品值为w[i],v[i]放入背包,且比例为rate。
2、用例设计
背包问题用例分析
首先输入有背包的容量 M, 物品的种类的数量 N
某一种类物品的重量weight,及其该物品的价值values。
输入的物品重量可以大于背包重量,但是不管他价值有多高 他都不能被完全装入背包中。
物品的价值是不能为0的这样的物品是不能被计算单位重量的价值的,
物品的种类可以很多 可以很少,很多的时候并不能被全部装入,只能装入部分。
M>0 ,N>0
物品的重量为int[ ] weight = {w1,w2,w3…wi…wn} 华东交通大学课程设计报告
第 5 页 w>0, 0<=i<=n
物品的价值为int[ ] values = { v1,v2,v3…vi…vn}
v>0, 0<=i<=n
输出为某一物品值为w[i],v[i]放入背包,且比例为rate
rate>=0,rate<=1。Rate为物品的使用率 等于一为该物品完整的放入,
小于一大于零为切去该物品的部分放入背包,等于零为该物品没有放入背包。
测试用例
1) 全部装入且比例全为1
m=100,n=4
w[n] = {10,20,30,40 }
v [n] = {10,10,10,10}
2) 不能全部装入比例有一个为0
m=100,n=4
w[n] = {10,20,30,50}
v[n] = {10,10,10,10}
3) 不能全部装入但有一个比例为0.5
m=100,n=4
w[n] = {10,20,30,50}
v[n] = {40,30,20,10}
4) 不能全部装入有一个比例为零有一个为0.3333
m=100,n=4
w[n] = {10,30,40,50}
v[n] = {40,30,20,10}
5) 无法进行计算
M=100,n=0
华东交通大学课程设计报告
第 6 页
3.Bug用例分析
3.3.1 源代码
背包函数正确代码
图一 bug1 代码
图二 bug2代码
图三 bug3代码 华东交通大学课程设计报告
第 7 页
3.3.2 bug1测试和分析
For循环中 i的起始值为1是,是从第二个物品开始的,判断重量和价值。通过上诉的测试用例可以了解到,他将会无限的忽略第一个物品,不管他什么价值 什么重量。所以 正确代码是将I =1 改为I = 0;
3.3.3 bug2 测试和分析
这段代码是 物品重量大于背包容量时执行,他会把比背包容量还大的物品装入,这与实际不相符合,当n=4,c =100, w[n] = {100,120,150,10}时,有超过一百的装入
所以出现bug正确代码应为if(items[j].weight<=c) 。
3.3.4 bug3 测试和分析
这段代码是sum变量等于当前每一个遍历的物品的重量,当n =4,c
=100
w[n] = {10,40,60,50}时显示能全部装入,但总重量超过了背包容量,所以代码有bug
正确代码为sum+=items[j].weight
三、测试设计二:装载问题函数
1、装载问题函数介绍
装载问题函数来自于算法设计与分析。输入两艘装载重量分别为C1和C2的轮船输入n个重量为wi的集装箱。
输出为船c1装的集装箱和c2装的集装箱。
2、用例设计
装载问题的用例分析 华东交通大学课程设计报告
第 8 页 输入两艘装载重量分别为C1和C2的轮船
输入n个重量为wi的集装箱
集装箱重量输入集合为int[ ] weight = {w1,w2,w3…wi…wn}
0<=i<=n ,c1>0, c2>0.使集装箱的总重量wmax<=c1+c2.
当取边界值是wmax = c1 +c2 时
- w1 = c1或c2 w2= c2或c1 能够装载集装箱
- w1>c1,w1>c2 或w2>c1,w2>c2
当取得值wmax >c1+c2是不管怎么分配都会有集装箱装不到轮船上。
亦或者当集装箱数量为1个是
- w1 = c1或w1 =c2 则能够装载
- w1不等于c1且不等于c2时不能够装载
输出为船c1装的集装箱和c2装的集装箱。
输出的时候,先进行整体重量的对比
- W max>c1+c2时 输出:不能装入。
- W max=
测试用例
1) 当n= 1时
C1 = 7,c2 = 8,n=1
W[i] = {7}
2)当n=1 时
C1 = 7,c2 = 8 ,n=1
W[i] = {10}
3) 当n>1时
C1 = 7, c2 = 8, n = 2;
W[ i] = {7,8}
4) 当n>1时
C1 = 7,c2 = 8,n=3