数据结构错误或外部数据库访问错误。
性能错误。
5.初始化和终止错误。
白盒测试在测试工程的早期阶段进行,而黑盒测试主要用于测试过程的后期。
6.1.2数据库测试
在c#的应用程序设计中,数据库起着重要的作用。数据库为应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。在使用了数据库的应用系统中,一般别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于程序设计问题等引起的,针对这两种情况,可分别进行测试。
6.2测试目标
测试是发现错误,这不只是从技术角度测试下定义。软件测试中最为重要的是,实际工作中人们的心理学和经济学问题。测试要达到以下目标:
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案实际可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今位置尚未发现的错误的测试。
6.2本程序的测试方法
本系统的测试进行了单元测试、组装测试、确认测试和系统测试,每一步都是在前一步的基础上进行的。
(1)单元测试
单元测试是指程序中的一个模块或一个子程序,是程序运行的最小单元,或是程序最小的独立编译单位,单元测试也称模块测试。每当一个页面完成或一个功能的实现都会进行一个小的测试,这样就使最后测试整个程序更容易。
例如对“登录”模块进行测试:
获得用户登录名和密码。业务员信息中查找所有成员登录名和密码,核对是否有给定的用户登录名和密码,若给定的登录名和密码不存在,同显示错误信息“无效的用户和密码,请重新输入!”
进行单元测试可以采用黑盒测试用例。将软件看作黑盒子,在完全不考虑程序的内部结构和特性的情况下,测试软件的外部特性。根据软件的需求规格说明书设计测试用例,从程序的输入和输出特性测试是否满足设定的功能。
(2)确认测试
确认测试是进一步检查软件是否符合软件需求规格说明书的全部需求,因此又称为合格性测试,主要检查系统功能,根据需求分析阶段确定下来的标准,对软件进行测试,招目的是看软件系统能否满足用户的需求。
(3)系统测试(fang系统实践开头)
系统测试也将整个软件作为测试对象,将信息系统的所有组成部分包括软硬件,用户及环境等综合在一起进行测试,以保证系统的各组成部分协调进行。经测试,未发现本软件有异常情况,能正常进行。系统软硬件环境如下:
①硬件环境:
CPU:奔腾1.7以上
内存:1G
显卡:集成
②软件环境:
操作系统:Windows 2000/2003/XP;
数据库:Microsoft SQL Server 2005;
平台:Microsoft Visual Studio 2005;
第7章 系统改进方案
7.1目前系统存在的问题
1. 本系统能够进行新书入库,办理借阅证,可以添加读者,但是却不能实现直接添加和删除管理员,要想添加和删除管理员只能手动的在数据库中添加或删除。
2. 现在信息化时代,随着科学的进步,扫描和打印已经日趋大众化,但是本系统却不能实现这两个功能,这也是本系统需要改进的地方,本系统在借书和还书的时候只能手动的填写借阅证号,因此这两个功能的添加迫在眉睫。
4. 报表的功能不齐全,只能进行简单的报表。
7.2系统改进方案及展望
本系统虽然存在着上述种种不足,但是本系统在简单的基础上加了几个快捷的方式,是读者不用浪费太长的时间就能够进行借书、还书、查询相关信息。而且还能显示当时在线的管理员,显示当前的时间。而且在进行借阅证办理成功时调出一个模块显示办理的借阅证的信息,防止出现差错而不知道,方便了读者。
7.2.1快捷方式的实现
在主菜单中添加一个按钮,当点击这个按钮时进入快捷界面,实现的代码如下:
void CMainDlg::OnButtonBegin()
{
CBeginDlg m_dlg;
m_dlg.m_struser=m_user;
OnOK();
m_dlg.DoModal();
}
7.2.2动态显示时间的实现
在模块中添加一个文本框,给这个文本框定义一个变量,然后在初始化时添加如下一段代码,就可以实现,非常简单。
BOOL CBeginDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetTimer(BEGINTIMER,1000,NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CBeginDlg::OnTimer(UINT nIDEvent)
{
CTime curTime=CTime::GetCurrentTime();
m_strTimer=curTime.Format("%y-%m-%d %H:%M:%S");
UpdateData(FALSE);
CDialog::OnTimer(nIDEvent);
}
7.2.3显示办理的借阅证的信息的实现
此功能的信息,是在成功办理借阅证后没有直接调用OnClose()这个函数,而是调用了另一个模块,而这个模块就是显示所办理借阅证的信息,具体实现代码如下:
strSQL.Format("select * from Proof_Info");
m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
if(m_pset->GetRecordCount()==0)
{
MessageBox("数据库中还没有一份借阅证信息,将办理第一份借阅证","办理借阅证");
}
m_pset->AddNew();
m_pset->SetFieldNull(&(m_pset->m_Proof_ID),FALSE);
m_pset->m_Proof_ID=m_strProofID;
m_pset->SetFieldNull(&(m_pset->m_Name),FALSE);
m_pset->m_Name=m_strName;
m_pset->SetFieldNull(&(m_pset->m_Sex),FALSE);
m_pset->m_Sex=m_strSex;
CTime m_strBirthTime(m_year,m_month,m_day,10,5,6,-1);
m_pset->SetFieldNull(&(m_pset->m_Birth_Time),FALSE);
m_pset->m_Birth_Time=m_strBirthTime;
m_pset->SetFieldNull(&(m_pset->m_Address),FALSE);
m_pset->m_Address=m_strAddress;
m_pset->SetFieldNull(&(m_pset->m_ID_Number),FALSE);
m_pset->m_ID_Number=m_strID;
m_pset->SetFieldNull(&(m_pset->m_Tel_Number),FALSE);
m_pset->m_Tel_Number=m_strTel;
m_pset->SetFieldNull(&(m_pset->m_Now_Borrow_Amount),FALSE);
m_pset->m_Now_Borrow_Amount=0;
m_pset->Update();
m_pset->Requery();
m_pset->Close();
m_database.Close();
MessageBox("办理借阅证成功!","办理借阅证");
CPersonInfoDlg m_dlg;
m_dlg.m_strProofID=m_strProofID;
m_dlg.DoModal();
第8章 开发总结
经过一段时间的开发设计和调试,我基本实现了在系统设计时所设计的所有功能,设计出了一个功能比较完善的代理商管理信息系统。在开发的过程中,我查阅了大量的资料,与同学特别是本小组的成员进行交流,向老师请教,学到了不少课本上学不到的知识。通过这次开发,我充分感受到了开发的艰辛,很多看起来简单的问题实际动手起来却不是那么回事,往往有这样或那样的错误,需要我一步一步地去解决,虽然在出现问题是感觉很头痛,特别是查找不出问题的原因时,然而更多的是实现功能后所享受到的喜悦。
通过这次文档设计,使我极大的提高了自己的动手能力,提高了自己解决问题和分析问题的能力,系统基本完成,本系统有以下几个特点:方便、可靠、操作简单、使用高效、稳定性、安全性、可扩展性良好。
结 论
长达近一学期的文档设计终于在紧张、忙碌中接近了尾声.由于在掌握和运用ASP.NET(C#)语言上未达到极佳的水平,所以编写的程序肯定村存在许多不足之处。但这次文档设计锻炼了我独立思考问题、分析问题、解决问题的能力,我在很大程度上提高了自己的动手能力,为今后的学习和工作打下了良好的基础。这次编写的企业办公管理—资源及信息管理系统,基本能够满足用户的需求。
本系统运行稳定,界面友好,但是由于文档设计时间有限,所以该系统还有许多不尽如人意的地方,比如所提供的帮助信息较少,出错处理不够全面等问题。这些都有待进一步改善。
这3个多月的设计和开发过程,使我受益匪浅,系统的学习了运用ASP.NET(C#)语言,在Microsoft Visual Studio 2005平台上实现自动化方面的知识,复习了Microsoft SQL Server 2005数据库原理教程和软件工程的知识,参阅了大量的资料和书籍,经过不断的努力才使系统的设计得以完成。
本文给出了一种基于B/S设计模式的三层架构的Web应用系统框架模型,通过对框架模型主要层次的功能分析和相关开发技术的比较,特别三层的讨论,提供了一种实现多层Web应用系统开发的解决方案。为了充分说明不同层次、不同组件在Web应用系统中的功能、角色和相互关系,本文详细说明了一个企业办公管理系统—资源及信息管理系统的设计开发过程,并对其中的一些关键技术的实现进行了阐述。
今后我将继续研究设计模式,通过读开源论坛的源代码,密切关注国内外的最新技术动态等来提高自己的编程和设计思想。
总之,文档设计的主要目的是通过自己亲自动手,动脑,获得自学的才能,而且必须学会创新,懂得如何去思考,如何去解决问题。只有具备了创新和自我完善的能力才能创造出更优秀的软件产品。
参 考 文 献
[1] 万科 《Visual C#.NET程序设计基础与上机指导》清华大学出版社 2007
[2] 李振刚 《基于.NET的三层架构教学平台的设计与实现》 天津大学 2005
[3] 王远斌 《基于.NET的企业级分布式系统多层架构的研究》与应用 重庆大学 2005.
[4] 翟延冬 《基于三层架构高技术项目管理系统的开发与应用》 吉林大学 2006.
[5] 童爱红 《Visual C#.NET应用教程》清华大学出版社,北京交通大学出版社 2004
[6] 冯志刚 《面向中小企业数据库应用方案的设计与实现》天津工业大学 2002
[7] 项文波 《Web Service架构信息处理技术的研究》南京理工大学 2002.