北 华 航 天 工 业 学 院
软件工程
-------单元测试报告
报告题目:图书借阅系统单元测试
作者所在系部:计算机科学与工程系
作者所在专业:计算机应用技术
作者所在班级:11512
作 者 姓 名 :王邵南
指导教师姓名:李杰
完 成 时 间 :20##-11-23
目录
1引言... 2
1.1编写目的... 2
1.2背景... 2
1.3定义... 2
1.4参考资料... 2
2测试概要... 2
3测试结果及发现... 3
3.1测试1. 3
3.2测试2. 3
3.3 测试结果... 3
4对软件功能的结论... 4
4.1功能... 4
4.2界面源代码... 4
4.3界面... 11
4.1能力... 14
5分析摘要... 14
5.1缺陷和限制... 14
5.2评价... 15
6测试资源消耗... 15
1引言
1.1编写目的
根据测试计划报告,对软件进行测试,详细记录测试过程,以对软件的质量进行评价,为软件设计人员提供BUG依据,故做产生测试分析报告。
1.2背景
根据学校的希望能够充分利用现代科技来提高图书馆理的效率,在原有的办公室系统基础上进行扩展,将一些可以用计算机来管理的都进行计算机化,使得图书管理人员更加方便,工作效率也更加的高。
1.3定义
ASP:是一种未经编译的开放性的应用软件,利用HTML和ActiveX强有力的功能创建强壮的,功能强大的,与平台无关的Web应用系统
1.4参考资料
1.软件测试与Junit实践王东刚编著 人民邮电出版社
2.人事管理系统项目开发计划软件开发小组
3.用户操作手册(初稿)软件开发小组
4.软件工程导论----第四版张海藩编著 清华大学出版社
2测试概要
系统登录测试如下表所示:
表 4-1
![](https://upload2.fanwen118.com/wk001/2755187/2755187_table_1.png)
步骤及操作:运行系统,转到登陆界面,输入管理员姓名及密码,测试登陆功能。
允许偏差:不允许任何偏差
条件:用户即可,包括管理员.
3测试结果及发现
3.1测试1
名称:系统操作登陆注册用户测试
目的: 测试系统操作界面。
内容: 账号口令输入、合理性检查、合法性检查,系统操作界面显示控制。
3.2测试2
名称:图书信息管理界面测试
目的: 测试图书管理系统操作功能。
内容:图书管理界面显示控制。
3.3 测试结果
系统登录测试结果如下表所示:
表 4-1
![](https://upload2.fanwen118.com/wk001/2755187/2755187_table_2.png)
4对软件功能的结论
4.1功能
为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求,必须使用适当方法与用户沟通,根据该类型中小型图书馆的管理实际情况,系统应当包括管理员登陆,图书出借管理系统两大功能模块,具体描述为一下几个方面:
(1) 管理员登陆管理功能:管理员帐号、密码的验证,管理员对已有数据的操作。
(2) 图书出借管理功能:包括借阅图书、归还图书、借阅查询、续借等。
(3) 系统运行在windows平台上,要求有一个较好的图形用户界面,操作要求简单。
4.2界面源代码
#include
#include
#include
#include
using namespace std;
void add_zhuce() //实现注册用户
{
string name,code,code1;
fstream outfile5("D:\\dd.txt",ios::out|ios::app); //以写方式打开文件
if(! outfile5)
cout<<"打开文件失败!"< else { cout<<"☆********★请注册用户★********☆\n"; cout<<"请输入您的用户名:"; cin>>name; fstream infile6("D:\\dd.txt",ios::in); //以读方式打开文件 if(! infile6) { cout<<"打开文件失败!"< return; } string a[100][2]; //定义一个string类型的二维数组,用来保存从文本内读取的信息 int line=0; memset(a,0,sizeof(a)); //将数组清空 while(!infile6.eof()) //文件不为空的条件设置 { infile6>>a[line][0]>>a[line][1]; //文件流读取数据 line++; } for(int i=0;i { if(a[i][0]==name) { cout<<"此用户已存在!谢谢使用本系统注册用户界面!欢迎下次使用!"< exit(0); } } outfile5< cout<<"请输入您的密码:"; cin>>code; cout<<"请再次输入您的密码:"; cin>>code1; if(code!=code1) { cout<<"您两次输入的密码不一致!谢谢使用本系统注册用户界面!欢迎下次使用!"< exit(0); } else outfile5< } cout<<"谢谢使用本系统注册用户界面!您已注册成功!"< outfile5.close(); } void welcome() //验证用户登陆,登陆成功显示欢迎信息 { string name,code; int mark=0; fstream infile("D:\\dd.txt",ios::in); if(!infile) { cerr<<"打开文件错误"< return; } int line=0; string a[100][100]; memset(a,0,sizeof(a)); //将数组清空 while(!infile.eof()) //文件不为空的条件设置 { infile>>a[line][0]>>a[line][1]; //文件流读取数据 line++; } cout<<"\t\t☆********★用户名☆********★:"; cin>>name; int m=-1; for(int i=0;i { if(a[i][0]==name) { m=i; mark=i; break; } } if(m==-1) { cout<<"\t\t☆********★该用户不存在,请注册用户☆********★"< add_zhuce(); } cout<<"\t\t☆********★密码☆********★:"; cin>>code; for(int j=0;j<2;j++) { if(a[mark][1]==code) { cout<<"成功登入☆********★"< break; } else { cout<<"密码错误,请重新输入☆********★"< cout<<"\t\t☆********★密码☆********★:"; cin>>code; } } } void Readerinfo() { int b; cout< cout< cout<<"\t\t ★********读者信息管理*********★"< cout<<"\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆ 1. 添加读者信息 ☆\n"; cout<<"\t\t ☆ 2. 修改读者信息 ☆\n"; cout<<"\t\t ☆ 3. 删除读者信息 ☆\n"; cout<<"\t\t ☆ 0. 退出 ☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"请输入您选择的数字<0-3>:"; cin>>b; switch(b) { case 1: break; case 2: break; case 3: break; case 0: break; default: cout<<"输入数字错误!"< } } void Bookinfo() { int a; cout< cout< cout<<"\t\t ★********图书信息管理*********★"< cout<<"\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆ 1. 删除图书信息 ☆\n"; cout<<"\t\t ☆ 2. 增加图书信息 ☆\n"; cout<<"\t\t ☆ 3. 修改图书信息 ☆\n"; cout<<"\t\t ☆ 4. 查询图书信息 ☆\n"; cout<<"\t\t ☆ 0. 退出 ☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"请输入您选择的数字<0-4>:"; cin>>a; switch(a) { case 1:break; case 2:break; case 3:break; case 4:break; case 0:break; default: cout<<"输入数字错误!"< } } void ReadBook() { int c; cout< cout< cout<<"\t\t ★********图书借阅管理*********★"< cout<<"\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆ 1. 图书借阅 ☆\n"; cout<<"\t\t ☆ 2. 图书归还 ☆\n"; cout<<"\t\t ☆ 0. 退出 ☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"请输入您选择的数字<0-2>:"; cin>>c; switch(c) { case 1: break; case 2: break; case 0: break; default: cout<<"输入数字错误!"< } } void InfoSum() { int c; cout< cout< cout<<"\t\t ★********图书信息统计*********★"< cout<<"\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆ 1. 图书总量统计 ☆\n"; cout<<"\t\t ☆ 2. 按图书类别统计 ☆\n"; cout<<"\t\t ☆ 3. 图书借阅排行 ☆\n"; cout<<"\t\t ☆ 4. 读者借阅排行 ☆\n"; cout<<"\t\t ☆ 0. 退出 ☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"请输入您选择的数字<0-4>:"; cin>>c; switch(c) { case 1: break; case 2: break; case 3: break; case 4: break; case 0: break; default: cout<<"输入数字错误!"< } } void System_maintenance() { int c; cout< cout< cout<<"\t\t ★********图书信息系统维护*********★"< cout<<"\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆ 1. 读者类别设置 ☆\n"; cout<<"\t\t ☆ 2. 图书类别设置 ☆\n"; cout<<"\t\t ☆ 3. 用户管理 ☆\n"; cout<<"\t\t ☆ 4. 罚金标准设置 ☆\n"; cout<<"\t\t ☆ 0. 退出 ☆\n"; cout<<"\t\t ★ ★\n"; cout<<"\t\t ☆********★**************★********☆\n"; cout<<"请输入您选择的数字<0-4>:"; cin>>c; switch(c) { case 1: break; case 2: break; case 3: break; case 4: break; case 0: break; default: cout<<"输入数字错误!"< } } void Please() { welcome(); //验证用户登陆,登陆成功显示欢迎信息 int chiose; cout<<"\n\n"; while(1) { cout<<"\t\t ★**★**☆欢迎使用图书信息管理系统☆**★**★"< cout<<"\n"; cout<<"\t\t☆************★**********☆***********★************☆\n"; cout<<"\t\t★ ★\n"; cout<<"\t\t☆ ☆\n"; cout<<"\t\t★ 1.读者信息管理 2.图书信息管理 ★\n"; cout<<"\t\t☆ 3.图书借阅管理 4.信息统计 ☆\n"; cout<<"\t\t★ 5.系统维护 0.退出系统 ★\n"; cout<<"\t\t☆ ☆\n"; cout<<"\t\t★ ★\n"; cout<<"\t\t☆★☆★☆★**************☆***************★☆★☆★☆\n"; cout<<"请输入您选择的数字<0-4>:"; cin>>chiose; switch(chiose) { case 1: Readerinfo(); break; case 2: Bookinfo(); break; case 3: ReadBook(); break; case 4: InfoSum(); break; case 5: System_maintenance(); break; case 0: cout<<"\t\t☆★☆★☆★☆欢迎下次使用本系统☆★☆★☆★☆"< default: cout<<"输入数字错误!"< } } } void main()//主函数 { system("color 3F"); int w; cout<<"\t\t☆********★**********☆***********★********☆\n"; cout<<"\t\t★ ★\n"; cout<<"\t\t☆ ☆\n"; cout<<"\t\t★ 1.用户登录 ★\n"; cout<<"\t\t☆ 2.用户注册 ☆\n"; cout<<"\t\t★ 0.退出系统 ★\n"; cout<<"\t\t☆ ☆\n"; cout<<"\t\t★ ★\n"; cout<<"\t\t☆★☆★☆★**********☆***********★☆★☆★☆\n"; while(1) { cout<<"请输入数字<0-2>:"; cin>>w; switch(w) { case 1:Please(); break; case 2:add_zhuce(); break; case 0:exit(0); default: cout<<"输入数字错误!"< } } } 如图4-3-1 用户登录注册界面 如图 4-3-2 图书信息管理系统主界面 如图 4-3-3 读者信息管理界面 如图 4-3-4 图书信息管理界面 如图 4-3-5 图书借阅管理界面 如图 4-3-6 图书信息统计界面 如图 4-3-7 图书信息系统维护界面 如图 4-3-8 退出图书管理系统界面 一个更完美的图书管理系统,应提供更为便捷与强大的信息查询功能,如相应的网络操作及服务,由于开发时间和计算机数目有限,该系统并未提供这一功能,对信息的保护,手段仅限于设置用户级别,以及提供数据文件的备份,比较简单,不能防止恶意的破坏,安全性能有待进一步完善。 本软件到达预定目标,可以交付使用。 1. 系统运行环境:Windows XP系统 2. 系统开发平台: Visual Studio 2010 3. 数据库管理系统软件: Microsoft SQL Server 2005 4. 系统测试用时:一天 5. 系统测试人员:软件小组人员4.3界面
4.1能力
5分析摘要
5.1缺陷和限制
5.2评价
6测试资源消耗