搜档网
当前位置:搜档网 › 软件测试实验报告书(武汉理工大学)

软件测试实验报告书(武汉理工大学)

软件测试实验报告书(武汉理工大学)
软件测试实验报告书(武汉理工大学)

武汉理工大学

学生实验报告书

实验课程名称软件质量保证与测试

开课学院计算机科学与技术学院指导老师姓名王云华___

学生姓名高艺珩

学生专业班级软件ZY1301

2015 —2016学年第二学期

实验课程名称:_软件质量保证与测试

int m1=a1+b1;

int m2=a1+c1;

int m3=b1+c1;

if(a1>=m3||b1>=m2||c1>=m1) printf("非三角形\n");

else if(a1!=b1&&a1!=c1&&b1!=c1) printf("一般三角形\n");

else if((a1==b1&&b1!=c1)||(a1==c1&&a1!=b1)||(c1==b1&&a1!=c1)) printf("等腰三角形\n");

else if(a1==b1&&b1==c1) printf("等边三角形\n");

}

张振宇设计的测试用例和结果

测试用例输入a,b,c输出

1 5,6,7一般三角形

2 2,3,5非三角形

3 4,4,5等腰三角形

4 3,3,3等边三角形

5 0,1,2边长不能为0

6 -2,1,3边长不能为负

7 200,200,200请输入1-100之间的整数

测试我的代码结果截图

2.NextDate()实验代码

#include

#include

#include

void main()

{

int year;

intmonth,day;

测试张振宇代码结果图

二、实验小结、建议及体会

根据自己的实验情况自己填写

通过本次试验,自己根据代码以及判断条件自己设计了测试用例,真正的操作了黑盒测试。我先在vs2015中建立了项目,在代码编译运行通过后,在里面输入张振宇设计用例,发现输入负号时运行出错,在检查代码改正后通过了。我也对张振宇的程序设计用例并检测都通过了。真正理解到了测试用例是如何运作的,同时也增强了自己的实践操作能力。

实验课程名称:软件质量保证与测试

}

}

张振宇设计的测试用例x,y,z a!=0 d>0 d==0 输出结果

1 2,6,3真真假该方程有两个解

2 3,6,3真假真该方程有两个相同解

3 2,3,4真假假该方程没有解

4 0,2,3假该方程不是二元方程,可能是一元一次方程

运行结果截图:

张振宇的代码:

文件名:equation.java

/**

* Created by zzhen on 2016/6/27.

*/

importjava.util.*;

public class equation

{

public static void main(String[] args)

{

float a,b,c,x,y;

float delta,x1,x2;

//y = a*x*x + b*x + c;

System.out.println("二元一次方程求解 \n清依次输入二次项、一次项系数和常数项:");

Scanner in = new Scanner(System.in);

a = in.nextFloat();

b = in.nextFloat();

c = in.nextFloat();

if(a == 0)

测试用例输入a 输入b 输入c delta!=0 delta>0 delta == 0 输出结果Case1 2 5 3 真真假两不相等解Case2 1 2 1 真假真两相等解Case3 4 2 1 真假假无解

Case4 0 2 1 假不是一元二次方程

测试结果如下:

二、实验小结、建议及体会

根据自己的实验情况自己填写

通过本次试验,对白盒测试有了更深的了解,如语句覆盖判断覆盖等基本的测试方法真正的进行了操作。先在vs2015中建立了项目,编译程序代码并运行通过。执行程序用张振宇设计的用例测试,每个用例都顺利都过,我也对张振宇的程序设计用例并检测也都通过了。对用例的设计有了进一步的了解,设计起来也比试验一要快很多,加强了实践能力。

实验课程名称:软件质量保证与测试__

第二部分:实验结果分析(可加页)

一、实验结果描述

根据自己的实验情况自己填写

1、静态测试

该段程序用来输入存储对象的姓名、年龄和性别,用C语言编写,自定义了一个结构体类型,并且使用动态分配内存,有多少个对象分配多少个结构体大小的内存,信息的输入采用手动输入。

①info * head=(info*)malloc(sizeof(info));在此句中,动态分配了内存后,并没有进行是否内存分配成功的检验就进行后面的程序执行,可能会出现错误。

②while(1) 此句的执行会导致程序进入死循环,除非强制结束。

③在循环体内,为每一个对象个体分配内存也没有进行检验是否分配成功,如果失败会导致程序访问空指针而使程序奔溃造成错误。

④在对象个体的信息录入时,没有限定信息录入的长度,如果超过长度会造成数组越界的错误而导致程序异常结束。

⑤对于输入的信息没有进行有效性的检验,例如年龄的输入是否会存在字符,如果存在,在存储时就会产生错误。

⑥程序运行结束后,没有对申请的存储空间进行释放,造成内存泄漏。

⑦在main()主函数中定义的char name[10]; int age; char sex[10];变量并没有使用,应当去除掉以节省空间。

2、动态测试

(1) 运行程序进行正常的测试;

(2) 对输入信息的格式输入错误,进行测试;

(3) 信息长度测试

3,针对上面可能出现的情况设计用例如下:

用例姓名性别年龄结果

Case 1 高艺珩男21 无错误,无提示

Case 2 高艺珩男12345 年龄越界,跳出本次循环,无提示

男21 姓名长度越界,程序奔溃Case 3 高艺珩。。。珩

珩珩

测试用例的运行结果:

在崩溃出错前前两个用例

当名字过长时崩溃

在经过测试之后对给定的源程序进行修改改进之后所得的优化后的代码如下所示:

修改后的代码:

#include

#include

struct info

{

char name[10];

int age;

char sex[10];

info *next;

};

int main()

{

int i = 1, n;

info * head=(info*)malloc(sizeof(info));

//未判断空间是否申请成功---添加if判断

if(head != NULL)

{

printf("请输入对象的个数:");

scanf("%d", &n);

head->next=NULL;

while(i <= n)//死循环---改善死循环

{

info * temp=(info*)malloc(sizeof(info));

//未判断temp是否申请成功,如果申请失败会造成对空指针的访问导致程序崩溃

//添加if判断

if(temp != NULL){

temp->next=NULL;

printf("请输入第%d个人的基本信息:\n姓名(最多五个字):",i);

scanf("%s",temp->name);

//未对输入信息长度进行限定,如果大于10,将会导致数组越界访问

//添加提示输入

实验课程名称:软件质量保证与测试__

软件测试实验报告96812

实验一:软件测试方法 一:实验题目 采用白盒测试技术和黑盒测试技术对给出的案例进行测试 二:试验目的 本次实验的目的是采用软件测试中的白盒测试技术和黑盒测试技术对给出的案例进行测试用例设计。从而巩固所学的软件测试知识,对软件测试有更深层的理解。 三:实验设备 个人PC机(装有数据库和集成开发环境软件) 四:实验内容 1):为以下流程图所示的程序段设计一组测,分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。并在各题下面写出测试用例、覆盖路径及结果等。 2):画出下列代码相应的程序流程图,并采用基本路径测试方法为以下程序段设计测试用例(需列出具体实验步骤)。 void Do (int X,int A,int B) { 1 if ( (A>1)&&(B==0) ) 2 X = X/A; 3 if ( (A==2)||(X>1) ) 4 X = X+1;

5 } 采用基本路经测试方法测试用例,并写出具体步骤 3):在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下: 用户名:要求为4位以上,16位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字; 密码:要求为6~16位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。测试以上用例。 用所学的语言进行编码,然后进行等价类测试,当用户名和密码正确输入时提示注册成功;当错误输入时,显示不同的错误提示 通过分析测试用例以及最后得到的测试用例表分析所测程序的正确性,最后总结自己在这次试验中的收获并写出自己在这次试验中的心得体会。 五:实验步骤 1) (1)用语句覆盖方法进行测试 语句覆盖的基本思想是设计若干测试用例,运行被测程序,使程序中每个可执行语句至少被执行一次。由流程图可知该程序有四条不同的路径: P1:A-B-D P2:A-B-E P3:A-C-F P4:A-C-G 由于p1p2p4包含了所有可执行的语句,按照语句覆盖的测试用力设计原则,设计测试用例 无法检测出逻辑错误 (2)用判定覆盖方法进行测试 判定覆盖的基本思想是设计若干测试用例,运行被测程序,使得程序每个判断的取真和取假分支至少各执行一次,即判断条件真假均被满足。 条件覆盖测试用例 (3)用条件覆盖进行测试 条件覆盖的基本思想是设计若干测试用例,执行被测程序后要使每个判断中每个条件的可能取值至少满足一次。对于第一个判定条件A,可以分割如下: ?条件x>8:取真时为T1,取假时为F1;

软件测试技术实验报告册

工程学院 计算机学院 软件测试技术实验报告册 适用专业: 学期: 专业: 班级: 学号: 姓名: 指导教师: 2014年9月

目录 实验一 (1) 实验二 (5) 实验三 (10) 实验四 (13) 实验五 (16) 实验六 (19) 附录 (22)

实验一、黑盒测试 一、实验目的 1、熟练掌握黑盒测试方法的相关知识和方法; 2、熟练等价类划分方法、边界值分析法、判定表方法和因果图法; 3、掌握基本的测试用例的设计。 二、实验容 1.题目一:问题 某城市由三部分组成。它们的名称和容分别是: (1)地区码:空白或三位数字; (2)前缀:非'0'或'1'的三位数字; (3)后缀:4位数字。 假定被测程序能接受一切符合上述规定的,拒绝所有不符合规定的。根据该程序的规格说明,作等价类的划分,并设计测试方案。 2.题目二:三角形问题 根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。 “一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。” 3.题目三:日期问题 用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、 day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004 年11月29日,则该程序的输出为2004年12月1日。 (1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类。 (2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。 (3) 根据 (1) 和 (2) ,画出简化后的决策表。

武汉理工大学-操作系统实验报告

学 生 实 验 报 告 书 实验课程名称 操 作 系 统 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 软件工程 2014 — 2015 学年 第 一 学期 学生学号 实验课成绩

实验课程名称:操作系统 实验项目名称Linux键盘命令和vi实验成绩 实验者专业班级组别 同组者实验日期年月日第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 掌握Linux系统键盘命令的使用方法。 二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等) Vi编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi。 1.进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: 例如:$ vi myfile 有一点要注意,在进入vi之后,是处于“命令行模式”,要切换到“插入模式”才能够输入文字。 2. 切换至插入模式编辑文件 在“命令行模式”下按一下字母“i”就可以进入“插入模式”,这时候就可以开始输入文字了。 3. Insert 的切换 处于“插入模式”,就只能一直输入文字,按一下“ESC”键转到”命令行模式”能够删除文字。 4. 退出vi及保存文件 在“命令行模式”下,按一下“:”冒号键进入“Last line mode”,例如: : w myfilename : wq (输入”wq”,存盘并退出vi) : q! (输入q!,不存盘强制退出vi) 三、主要实验工具、仪器设备及耗材 安装Linux系统的计算机一台。

第二部分:实验结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 在整个过程中,最困难的就是记忆整个Vi命令。在查阅资料的情况下,这个问题得到了解决。 二、实验结果描述 1.进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面 图1 vi主界面 2.切换至插入模式编辑文件 在“命令行模式”下按一下字母”i”就可以进入”插入模式”。 3.退出vi及保存文件 在”命令行模式”下,按一下”:”冒号键进入”Last line mode”;输入w filename 将文章以指定的文件名filename保存;输入wq存盘并退出vi。 三、实验小结、建议及体会 这次实验让对Linux操作系统有了初步的了解,我掌握了一些Linux系统常用的命令。

软件测试实验报告材料58877

标准实用 本科实验报告 课程名称:软件测试技术 实验项目:软件测试技术试验实验地点:实验楼211 专业班级:软件工程学号: 学生:戴超 指导教师:兰方鹏 2015年10月7 日

理工大学学生实验报告 学院名称计算机与软件学院专业班级软件工程实验成绩学生戴超学号实验日期2015.10. 课程名称软件测试实验题目实验一白盒测试方法 一、实验目的和要求 (1)熟练掌握白盒测试方法中的逻辑覆盖和路径覆盖方法。 (2)通过实验掌握逻辑覆盖测试的测试用例设计,掌握程序流图的绘制。 (3)运用所学理论,完成实验研究的基本训练过程。 二、实验容和原理 测试以下程序段 void dowork(int x,int y,int z) { (1)int k=0,j=0; (2)if((x>0)&&(z<10)) (3){ (4)k=x*y-1; (5)j=sqrt(k); (6)} (7)if((x==4)||(y>5)) (8)j=x*y+10; (9)j=j%3; (10)} 三、主要仪器设备 四、操作方法与实验步骤 说明:程序段中每行开头的数字(1-10)是对每条语句的编号。

A 画出程序的控制流图(用题中给出的语句编号表示)。 B 分别用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。 C 编写完整的C 程序(含输入和输出),使用你所设计的测试用例运行上述程序段。完整填写相应的测试用例表(语句覆盖测试用例表、判定覆盖测试用例表、条件覆盖测试用例表、判定/条件覆盖测试用例表、条件组合覆盖测试用例表、路径覆盖测试用例表、基本路径测试用例表) 流程图为: 开始 开始 k=0,j=0 (x>0)&&(z<1) k=x*y-1 j=sqrt(k) (x==4)||(y>5) j=x*y+10 j=j%3 结束 1 2 5 7 8 9

黑盒测试实验报告

实验报告书 课程名称:软件测试 实验题目:黑盒测试报告 专业:教育技术学 班级:教技142 学生姓名:安卓 指导老师:郭小雪 所属学期:2017-2018学年第二学期

一、引言 1.1目的 测试报告为三角形问题和找零钱最佳组合问题项目的黑盒测试报告,目的在于总结测试阶段的测试以及分析测试结果。 实验环境 在Windows 2000(SP2) 或Windows XP 操作系统上,使用C++语言,工具作为开发环境(IDE) 实验要求 1.根据给出的程序分别使用等价类划分法、边界值分析法、判定表 方法、因果图法、正交试验法、功能图法、错误推测法来设计相应的测试用例。 2.输入数据进行测试,填写测试用例。 二、实验原理 黑盒测试原理:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。 从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都

作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。 等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。 1 划分等价类 划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中

软件测试实验报告

《软件测试技术》 ——实验报告 题目 _____实验一_ __ 指导教师薛曼玲 _ 实验日期 _11.4 专业 学生姓名 _ __ ____ 班级/学号 ____ 成绩 ________ ___ ____ _

一、实验目的 1.能熟练应用黑盒测试技术进行测试用例设计; 2.能对测试用例进行优化设计; 二、实验内容 题目一:电话号码问题 1.某城市电话号码由三部分组成。它们的名称和内容分别是: (1)地区码:空白或3位数字; (2)前缀:非'0'或'1'的3位数字; (3)后缀:4 位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。 1.根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。 “一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个

程序要打印出信息, 说明这个三角形是三边不等的、是等腰的、还是等边的。” 题目三:日期问题 1.用决策表测试法测试以下程序:该程序有三个输入变量month、day、year (month 、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004 年11月29日,则该程序的输出为2004年12月1日。 (1) 分析各种输入情况,列出为输入变量month 、day 、year 划分的有效等价类。 (2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。 (3) 根据(1) 和(2) ,画出简化后的决策表。 2.划分有效等价类 1)month变量有效等价类 M1:{month=4,6,9,11}M2:{month=1,3,5,7,8,10} M3:{month=12}M4:{month=2} 2)day变量的有效等价类 D1:{1<= day <= 26}D2:{day=27} D3:{day=28} D4:{day=29} D5:{day=30} D6:{day=31} 3)year变量有效等价类 Y1:{year是闰年} Y2:{year不是闰年} 3.列出所有动作桩

武汉理工大学计算机网络实验报告

学生学号0121210680117 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称《计算机网络》 开课学院计算机科学与技术学院 指导老师姓名周兰采 学生姓名柏扬 学生专业班级软件1201 2013 —2014 学年第二学期

实验课程名称:计算机网络 实验项目名称获取网卡的MAC地址实验成绩 实验者专业班级组别 同组者实验日期 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验内容:编程获取以太网适配器的MAC地址。 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) 实验原理: 在系统的cmd命令提示符中,我们输入ipconfig/all就可以看到本机上所有的适配器的具体内容如媒体状态、连接特定的DNS后缀、描述、物理地址、DHCP 已启用、自动配置已启用信息。本实验是运用匹配的思想,先通过,在寻找匹配字符串物理地址,找到了就将:后面位置的内容赋值给mac,作为MAC地址,然后再主函数中输出即可。

实验代码如下: package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class SystemTool { /** *@return mac地址 */ public static String getWindowsMACAddress() { String mac = null; BufferedReader bufferedReader = null; Process process = null; try { process = Runtime.getRuntime().exec("ipconfig /all");// windows 下的命令,显示信息中包含有mac地址信息 bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = null;

黑盒测试软件测试实验报告2

软件测试与质量课程实验报告实验2:黑盒测试法实验

缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1 – 10分其他情况:扣分<=5分总扣分不能大于10分 参考代码如下: (1)程序参考答案: #include double main() { int hours; double payment,wage; wage=20; cout<<"please input hours:"; cin>>hours; if(hours>=0&&hours<=168){ if (hours<40) payment=hours*wage ; else if ((hours>=40) && (hours<=50)) payment=40*wage+(hours-40)*1.5*wage; else if (hours>50) payment=40*wage+10*1.5*wage+(hours-50)*3*wage; cout<<"The final payment are:"< void main() { int year; int month,maxmonth=12; int day,maxday; printf("请输入年份:(1000~3000)"); scanf("%d",&year); if(year<1000 || year>3000) { printf("输入错误!请从新输入!\n");

武汉理工大学 统计学 学生实验报告书

实验报告

3,在对话框中选择描述统计、选择确定 4,在对话框的输入区域输入试验项目的数据范围A2:A31,在输出区域输入 D3,选择汇总统计,选择确定。 (三)动态数列长期趋势预测 1,进入Excel系统,输入实验项目的有关数据 2、建立直线趋势方程:Yc=a+bt,利用最小平方法计算a和b的参数 3、将参数代入直线趋势方程,Yc=a+bt,预测所需年份的产量 (四)抽样调查区间估计(从一批灯泡中随即抽取40只进行检查,并对该批全部 灯泡的平均使用时间的可能范围) 1、进去Excel系统,输入实验项目的全部数据,输入计算指标、计算公式 2、利用各公式计算相应的指标 3、利用区间估计的方法计算区间估计 五、原始数据记录 (一)制作次数分布图表(直方图) 某班40名学生考试成绩如下(单位:分) 成绩:66 45 99 56 88 99 84 81 76 94 79 77 99 82 65 73 74 77 98 65 60 79 67 66 82 97 59 83 60 78 72 63 89 95 84 79 86 78 98 87 答:首先,打开Excel并新建一个工作簿,输入试验项目的所有数据;然后,点击工具菜单栏的【数据】,并选择【数据分析】;再在对话框中选择【直方图】并点击确定;然后,在对话框的【输入区域】输入试验项目的数据范围(A2:A41),在【接收区域】输入分组的范围(B2:B6),在【输出区域】输入D2,并勾选【累计百分比】和【输出图表】,点击确定。最后得到次数分布图表如下图所示: 图1 在Excel中制作次数分配图表 由上述图表可知,该班学生考试成绩在50分及以下的有1人,50分(不包含50分)到60分(包含60分)之间的有4人,60分(不包含60分)到70分(包含70分)之间的有6人,70分(不包含70分)到80分(包含80分)之间的有11人,80分(不包含80分)到90(包含90分)分之间的有10人,90分以上的有8人。 (二)计算描述统计量(某煤矿6月份的燃煤产量,单位:万吨) 30个产量的原始数据如下: 产量:2010 2200 2400 1965 2010 2025 2042 2050 2080 2101 2103 2130 2152 2193 1100 2230 2280 2282 2300 2338 2342 2345 2361 2382 2390 2424 2450 1560 1980 1900

最新软件测试白盒测试实验报告

7.使用白盒测试用例设计方法为下面的程序设计测试用例: ·程序要求:10个铅球中有一个假球(比其他铅球的重量要轻),用天平三次称出假球。 ·程序设计思路:第一次使用天平分别称5个球,判断轻的一边有假球;拿出轻的5个球,拿出其中4个称,两边分别放2个球;如果两边同重,则剩下的球为假球;若两边不同重,拿出轻的两个球称第三次,轻的为假球。 【源程序】 using System; using System.Collections.Generic; using System.Linq; using System.Text; using NUnit.Framework; namespace Test3_7 { [TestFixture] public class TestGetMinValue { [Test] public void AddTwoNumbers() { Random r = new Random(); int n; int[] a=new int[10]; n = r.Next(0, 9); for (int i = 0; i < a.Length; i++) { if (i == n) a[i] = 5; else a[i] = 10; } GetMin gm = new GetMin(); Assert.AreEqual(n,gm.getMinvalue(a)); }

} public class GetMin { public int getMinvalue(int[] m) { double m1 = 0, m2 = 0, m3 = 0, m4 = 0; for (int i = 0; i < 5; i++) { m1 = m1 + m[i]; } for (int i = 5; i < 10; i++) { m2 = m2 + m[i]; } if (m1 < m2) { m3 = m[1] + m[0]; m4 = m[3] + m[4]; if (m3 > m4) { if (m[3] > m[4]) return 4; else return 3; } else if (m3 < m4) { if (m[0] > m[1]) return 1; else return 0; } else return 2; } else { m3 = m[5] + m[6]; m4 = m[8] + m[9]; if (m3 < m4) { if (m[5] > m[6]) return 6;

软件测试技术实验报告

《软件测试技术》 实验报告 河北工业大学计算机科学与软件学院 2017年9月

软件说明 电话号码问题 某城市电话号码由三部分组成。它们的名称和内容分别是:地区码:空白或三位数字; 前缀:非'0'或'1'的三位数字; 后缀:4位数字。 流程图 源代码 import java.awt.*; import java.awt.event.*; public class PhoneNumber extends Frame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L;

private final String[] st = {"Name","Local","Prefix","Suffix"}; static int c_person=0; TextField t_name,t_local,t_prefix,t_suffix; RecordDialog d_record; MessageDialog d_message; person a[]=new person[100]; public PhoneNumber() { super("电话号码"); this.setSize(250,250); this.setLocation(300,240); Panel panel1 = new Panel(new GridLayout(4, 1)); for (int i = 0; i < st.length; i++) panel1.add(new Label(st[i],0)); Panel panel2 = new Panel(new GridLayout(4, 1)); t_name =new TextField("",20); t_local =new TextField(""); t_prefix=new TextField(""); t_suffix=new TextField(""); panel2.add(t_name); panel2.add(t_local); panel2.add(t_prefix); panel2.add(t_suffix); Panel panel3 = new Panel(new FlowLayout()); Button b_save = new Button("Save"); Button b_record= new Button("Record"); panel3.add(b_save); panel3.add(b_record); this.setLayout(new BorderLayout()); this.add("West", panel1); this.add("East", panel2); this.add("South", panel3); addWindowListener(new WindowCloser()); b_save.addActionListener(this); b_record.addActionListener(this); d_record=new RecordDialog(this); d_message=new MessageDialog(this); this.setVisible(true);

软件测试实验报告

桂林航天工业学院 课程设计报告 课程名称:软件测试 专业:软件技术 学号:201102520xxx 姓名: 指导教师:

实验一黑盒测试 一.实验目的 (1)能熟练应用黑盒测试技术进行测试用例设计; (2)对测试用例进行优化设计; 二.实验内容 1.三角形问题的边界值分析测试用例 在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。 R1 = { : 边为a,b,c的等边三角形} R2 = { : 边为a,b,c的等腰三角形} R3 = { : 边为a,b,c的一般三角形} R4 = { : 边为a,b,c不能组成三角形} 2. 找零钱最佳组合 假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1) 四种。请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。 三、程序代码

1.三角形问题程序。 #include int main(void){ int a,b,c;//定义三个整数a,b,c printf("请输入1到100的三个整数:"); scanf("%d%d%d",&a,&b,&c); if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(b>=1&&b<=100))//判断取值范围 { if((a+b>c)&&(a+c>b)&&(b+c>a))//判断是否构成三角形 { if(a==b&&b==c) printf("等边三角形\n"); else if(a==b||a==c||b==c) printf("等腰三角形\n"); else printf("一般三角形\n"); } else printf("不能组成三角形\n"); } else

软件测试实验报告

本科实验报告 课程名称:软件测试技术 实验项目:软件测试技术试验实验地点:实验楼211 专业班级:软件工程学号: 学生姓名:戴超 指导教师:兰方鹏 2015年10月7 日

太原理工大学学生实验报告

一、实验目的和要求 (1)熟练掌握白盒测试方法中的逻辑覆盖和路径覆盖方法。 (2)通过实验掌握逻辑覆盖测试的测试用例设计,掌握程序流图的绘制。 (3)运用所学理论,完成实验研究的基本训练过程。 二、实验内容和原理 测试以下程序段 void dowork(int x,int y,int z) { (1)int k=0,j=0; (2)if((x>0)&&(z<10)) (3){ (4)k=x*y-1; (5)j=sqrt(k); (6)} (7)if((x==4)||(y>5)) (8)j=x*y+10; (9)j=j%3; (10)} 三、主要仪器设备

一、实验目的和要求 (1)熟练掌握黑盒测试方法中的等价类测试方法和边界值测试方法。 (2)通过实验掌握如何应用黑盒测试用例。 (3)运用所学理论,完成实验研究的基本训练过程。 二、实验内容和原理 (1)用你熟悉的语言编写一个判断三角形问题的程序。 要求:读入代表三角形边长的三个整数,判断它们能否组成三角形。如果能够,则输出三角形是等边、等腰或者一般三角形的识别信息;如果不能构成三角形,则输出相应提示信息。 (2)使用等价类方法和边界值方法设计测试用例。 三、主要仪器设备 四、操作方法与实验步骤 (1)先用等价类和边界值方法设计测试用例,然后用百合法进行检验和补充。 (2)判断三角形问题的程序流程图和程序流图如图1和图2所示。用你熟悉的语言编写源程序。 (3)使用等价类方法设计测试用例,并填写表2 和表3。

武汉理工大学算法分析实验报告

学生实验报告书 实验课程名称算法设计与分析开课学院计算机科学与技术学院 指导教师姓名李晓红 学生姓名 学生专业班级软件工程zy1302班2015-- 2016学年第一学期

实验课程名称:算法设计与分析 同组者实验日期2015年10月20日第一部分:实验分析与设计 一.实验内容描述(问题域描述) 1、利用分治法,写一个快速排序的递归算法,并利用任何一种语言,在计算机上实现,同时 进行时间复杂性分析; 2、要求用递归的方法实现。 二.实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 本次的解法使用的是“三向切分的快速排序”,它是快速排序的一种优化版本。不仅利用了分治法和递归实现,而且对于存在大量重复元素的数组,它的效率比快速排序基本版高得多。 它从左到右遍历数组一次,维护一个指针lt使得a[lo..lt-1]中的元素都小于v,一个指针gt 使得a[gt+1..hi]中的元素都大于v,一个指针i使得a[lt..i-1]中的元素都等于v,a[i..gt]中的元素都还未确定,如下图所示: public class Quick3way { public static void sort(Comparable[] a, int lo, int hi) { if (lo >= hi) return; int lt = lo, i = lo + 1, gt = hi; Comparable pivot = a[lo];

第二部分:实验调试与结果分析 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 1、调试方法描述: 对程序入口进行断点,随着程序的运行,一步一步的调试,得到运行轨迹; 2、实验数据: "R", "B", "W", "W", "R", "W", "B", "R", "R", "W", "B", "R"; 3、实验现象: 4、实验过程中发现的问题: (1)边界问题: 在设计快速排序的代码时要非常小心,因为其中包含非常关键的边界问题,例如: 什么时候跳出while循环,递归什么时候结束,是对指针的左半部分还是右半部分 排序等等; (2)程序的调试跳转: 在调试过程中要时刻记住程序是对那一部分进行排序,当完成了这部分的排序后, 会跳到哪里又去对另外的那一部分进行排序,这些都是要了然于心的,这样才能准 确的定位程序。 二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 1、实验结果:

软件测试技术综合实验报告

沈阳理工大学职业技术学院 《软件测试技术》 综合实验报告 题目:对《图书出借管理系统》 _ 软件的测试用例设计 系别:信息工程系 专业:软件技术 班级学号: 学生姓名: 成绩: 指导教师: 2011年 1月 1日

目录 引言 (2) 1 系统分析 (3) 1.1 开发目的 (3) 1.2 需求分析 (3) 1.3 可行性分析 (4) 1.3.1 技术可行性分析 (4) 1.3.2 系统操作可行性分析 (4) 1.4 开发工具 (5) 1.4.1 SQL Server简介 (5) 1.4.2 Visual https://www.sodocs.net/doc/717357001.html, 2005 (5) 1.5 开发及运行环境 (6) 2 系统设计........................................................ V I 2.1 设计目标及系统总体功能结构................................ V I 2.2 系统功能模块设计......................................... V II 2.2.1 登陆模块............................................ V II 2.2.2 图书出借管理模块.................................... V II 2.3 系统流程图............................................... V II 3 数据库设计..................................................... V II 3.1 概念结构设计............................................ V III 3.2 数据库详细设计.......................................... V III 3.2.1 创建数据库......................................... V III 3.2.2 连接数据库........................................... I X 3.2.3 创建数据表........................................... I X 4 系统详细设计与实现............................................... X 4.1 主程序窗体设计............................................. X 4.2 系统登陆界面设计.......................................... X I 5 系统测试...................................................... X III 5.1 测试环境................................................ X III 5.2 测试用例设计与执行记录................................... X IV 5.2.1 登陆模块............................................ X IV 5.2.2 图书出借管理模块.................................... X IV 5.3 测试可行性分析............................................ X V 结论............................................................. X XII 体会............................................................ X XIII

武汉理工大学编译原理实验报告

武汉理工大学 学生实验报告书 实验课程名称编译原理课程实验 开课学院计算机科学与技术学院指导老师姓名饶文碧 学生姓名徐强国 学生专业班级软件 1602 2018 —2019 学年第1 学期

实验课程名称:编译原理

依次输入关键字,自定义标识符 BBBJKJL KJKJ4234,整数 3432,特 殊符号和其他符号:. {} []。 二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)输出为:

三、实验小结、建议及体会 通过这次的词法分析实验,我遇到了不少问题。对于输入字符串的直接处理,首先是分类情况的不完整(起初忽略了对关键字的判断),造成输出结果与预想有很大偏差。总结下:作为编译的第一步,词法分析将高级语言一步步分解,然后转化为自己的语言,这是一个严谨有十分有趣的过程。

核心代码: struct word //存储关键字,特殊符号 { int code; char T[max]; }; word important[5]; //结构体变量存储关键字 word num; //结构体变量存储数字 word identifier; //结构体变量存储标识符 word special_symbol[7]; //结构体变量存储特殊符号 int function(word* a, word b, word c, word* d, char* input, int k) { char getword[max]; int j = 0; if (input[j] == ' ') // 判断空格 { k = k + j + 1; function(a, b, c, d, input + j + 1, k); } else if (input[j] == '=' || input[j] == '+' || input[j] == ',' || input[j] == '(' || input[j] == ')') //判断特殊符号 { if (input[j] == '*') { getword[j] = input[j]; j = j + 1; if (input[j] == '*') { } else { } else { } getword[j] = input[j]; cout << '(' << d[3].code << ',' << d[3].T << ')' << endl; j = j - 1; cout << '(' << d[2].code << ',' << d[2].T << ')' << endl; getword[j] = input[j]; for (int i = 0; i < 7; i++) { if (i == 3) continue;

武汉理工大学----数值分析实验报告

学院:理学院 班级:电信科0901 姓名:王伟 学号:0120914420118 1、计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为34 3 V R π= 则何种函数的条件数为 2 3'4343 p R V R R C V R ππ=== (*)(*)3(*)r p r r V C R R εεε∴≈= 又(*)1r V ε= 故度量半径R 时允许的相对误差限为1 (*)10.333 r R ε=?≈ 2、求方程2 5610x x -+=的两个根,使它至少具有4 27.982=)。 解:25610x x -+=, 故方程的根应为1,228x =故 1282827.98255.982x =≈+= 1x ∴具有5位有效数字 211 280.0178632827.98255.982 x =-= ≈ =≈+ 2x 具有5位有效数字 3、当1,1,2x =-时,()0,3,4f x =-,求()f x 的二次插值多项式。 解:

0120121200102021101201220211,1,2, ()0,()3,()4;()()1 ()(1)(2)()()2()()1 ()(1)(2) ()()6 ()()1 ()(1)(1) ()()3 x x x f x f x f x x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x ==-===-=--==-+-----==------= =-+-- 则二次拉格朗日插值多项式为 2 20 ()()k k k L x y l x ==∑ 0223()4() 14 (1)(2)(1)(1)23 537623 l x l x x x x x x x =-+=---+ -+= +- 4、给出()ln f x x =的数值表 用线性插值及二次插值计算的近似值。 解:由表格知, 01234012340.4,0.5,0.6,0.7,0.8;()0.916291,()0.693147()0.510826,()0.356675()0.223144 x x x x x f x f x f x f x f x ======-=-=-=-=- 若采用线性插值法计算ln 0.54即(0.54)f , 则0.50.540.6<< 2 112 1 221 11122()10(0.6)()10(0.5)()()()()() x x l x x x x x x l x x x x L x f x l x f x l x -==----= =---=+ 6.93147( 0.6) 5.10826 (x x =--- 1(0.54)0.62021860.620219L ∴=-≈-

软件测试技术实验报告

软件测试技术实验报告本页仅作为文档页封面,使用时可以删除 This document is for reference only-rar21year.March

《软件测试技术》 实验报告 河北工业大学计算机科学与软件学院 2017年9月

软件说明 电话号码问题 某城市电话号码由三部分组成。它们的名称和内容分别是:地区码:空白或三位数字; 前缀:非'0'或'1'的三位数字; 后缀:4位数字。 流程图 源代码 import .*; import class PhoneNumber extends Frame implements ActionListener{ /**

* */ private static final long serialVersionUID = 1L; private final String[] st = {"Name","Local","Prefix","Suffix"}; static int c_person=0; TextField t_name,t_local,t_prefix,t_suffix; RecordDialog d_record; MessageDialog d_message; person a[]=new person[100]; public PhoneNumber() { super("电话号码"); (250,250); (300,240); Panel panel1 = new Panel(new GridLayout(4, 1)); for (int i = 0; i < ; i++) (new Label(st[i],0)); Panel panel2 = new Panel(new GridLayout(4, 1)); t_name =new TextField("",20); t_local =new TextField(""); t_prefix=new TextField(""); t_suffix=new TextField(""); (t_name); (t_local); (t_prefix);

相关主题