实验指导书(修订版) 下载本文

写到实验报告中)

(选做题)5、请对自己选定的课程设计题目进行详细设计,画出其程序流程图,并将程序流程图转换为流图,然后计算它的McCabe程序复杂度。

三、实验学时:4学时

四、实验步骤

1、绘制产生最佳解的软件结构图。

(1)软件结构图的绘制,打开Microsoft Visio 2003,选择“软件”中的“程序结构图”绘制系统的系统流程图。

(2)绘制过程同实验一。

2、绘制精化后的数字仪表板系统的软件层次图。

(1)软件层次图的绘制,打开Microsoft Visio 2003,选择“组织结构”中的“组织结构图”绘制系统的系统流程图。

(2)绘制过程同实验一。

其他题目请同学自主完成。 五. 实验结果

文档:软件结构图、软件层次图、流程图、N-S图、PAD图、伪代码、判定表和程序流程图以及环路复杂度的计算过程,打印后粘贴在实验报告中;

实验报告一份。

9

实验三 软件测试实验

一、实验目的:

深刻理解软件测试的目的,熟知软件测试的基本方法和基本策略。学会使用JUnit4.11工具完成软件测试用例的设计以及初步完成单元测试,在此基础上深刻理解单元测试的基本原理及测试类JUnit4.11工具的基本使用。

二、实验内容:

1、单元测试的逻辑覆盖测试验证实验:运用JNunit工具完成对如下例子的单元测试,要求分别完成语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖测试的测试用例编写以及测试。要求首先按格式编写出该测试所需要的测试用例,然后编写测试程序,对其进行测试,最后把你写的测试用例按格式记录到实验报告中。

测试用例的格式如下:

{[期望结果], [输入]},对于本例请遵循如下格式: { [X],[A,B,X] }

a b

F (A>1) and (B=0) T c X = X/A d F T (A=2) or (X>1) e X = X+1 图1 单元测试逻辑覆盖的验证实验

10

此外,请测试如下情况:

(1). 如果将第1个判定中的“AND”错写成了“OR”,用数据{[2.5],[2,0,3]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

(2). 如果将第2个判定中的“x>1”错写成了“x<=1”,则用数据{[2.5],[2,0,3]}对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

(3). 如果将第1个判定中的“AND”错写成了“OR”,则用数据{[1/3],[3,0,1]}和{[3],[2,1,2]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

(4). 如果将第2个判定中的“x>1”错写成了“x<=1”,则用数据{[1/3],[3,0,1]}和{[3],[2,1,2]})对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

(5). 如果将第2个判定中的“x>1”错写成了“x<=1”,则用数据{[2.5],[2,0,3]}和{[1],[1,1,1]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

(6). 如果将第1个判定中的“a>1”错写成了“a<=1”,且把“b==0”错写成了“b!=0”,则用数据{[2],[2,1,1]}和{[3],[1,0,2] }对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

(7). 如果将第1个判定中的“a>1”错写成了“a<=1”,且把“b==0”错写成了“b!=0”,则用数据{[2],[2,1,1]}、{[2],[2,0,2]}、{[1],[1,1,1]}和{[3],[1,0,2]}对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

经过上述的测试过程,你有什么体会,请写到实验报告中! 2、循环结构测试

现有一个简单循环,需要对其进行测试,其程序代码如下: public int test(int i, int a) {

while(i<=10) { a += 2; if(a>4) { a *= 2; a += 3; } else

11

{ if(a>1) a -= 4; else a += 5; } i++; } a *=4; return a;

要求为该程序设计满足简单循环的所有测试用例,记录到实验报告中。

3、等价类划分及边界值测试的验证实验:有如下算法A和B均是非负整型变量(注:int型),如果10=100,则B=A*100-200,请分别用等价类划分方法和边界值分析方法设计测试用例,然后编写测试程序完成测试。并把测试结论写入到实验报告中。

(选做题)4、为三角形程序设计测试用例。这个程序的功能是,读入代表三角形边长的三个整数,判断它们能否组成三角形。如果能够,则输出三角形是等边、等腰或任意三角形的识别信息。

要求:先用黑盒法设计测试用例,然后用白盒法进行检验与补充。

提示步骤:1)根据三角形特点,按照黑盒测试方法设计相关的测试用例。

2) 根据该程序的处理逻辑,通过某种开发工具编写程序,实现测试过程。 3)根据程序内部处理逻辑,按照白盒测试技术进行检验,并补充黑盒测试法中不够完善的测试用例。

三、实验学时:4学时

四、实验步骤

Junit4.11在Eclipse中的配置及概述详见附录1、2. 1、单元测试的逻辑覆盖测试验证实验

(1)启动Eclipse,新建立一个项目叫Junit_Test。 (2)依照图1编写一个Calculator类,详细代码如下: package app;

public class Calculator {

public double test(double A, double B, double X) {

12

if(A>1&&B==0) X=X/A; if(A==2||X>1) X=X+1; return X; } }

(3) 将JUnit4单元测试包引入项目Junit_Test: 在项目Junit_Test上点右键,点“属性”,如图2所示。

图2

在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add External JARs?”按钮,如图3所示。

13