软件测试课程设计

  • 格式: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