写到实验报告中)
(选做题)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