还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
软件工程实验报告会议管理系统的分析与设计课程设计任务书.doc学生姓名学号班级成绩指导教师计算机科学与技术系2011年6月13日摘要会议是人们为了解决某个共同的问题或出于不同的目的聚集在一起进行讨论、交流的活动,它往往伴随着一定规模的人员流动和消费目前大部分会议的主办方均有意尝试信息化更强的会议活动管理系统进行会议管理的建设,不仅节约__周期、并且费用低廉、同样也可以自定义__样式及风格,并且在线注册环节比自主__的要更为稳定和可靠本次实验利用VisualC#作为__的语言工具,SQLserver作为数据库__工具,__出了一个小型的会议室管理系统关键词会议;数据库;管理系统目录TOC\o1-4\h\z\u1课题描述12可行性研究报告
22.1问题描述
22.2可行性研究的前提2223需求分析
33.1任务概述
33.3数据流图
33.4数据字典44概要设计
64.1定义
64.2任务概述
64.3总体设计65详细设计
75.1编写目的
75.2数据库设计
7775.3前台主要界面
889115.4系统后台主要界面1313141719216软件测试
246.1编写目的
246.2测试内容24总结27____281课题描述当今社会竞争日益激烈,公司会议也不断增多,会议信息量也不断增大,公司经常需要会议进行沟通,解决问题以及制定决策,而现在公司会议管理效率很低,容易出错,所以利用信息化管理会议已经成为公司的急切需要本实验利用ASP.NET技术进行会议管理系统的设计与实现,处理会议信息以及相关项目管理功能,更方便了用户和管理者的使用信息化处理是当今社会不可避免的趋势,单一的手工操作已经不能满足规模日益增大的企业随着计算机技术的发展,以及计算机在企业单位中的应用普及,计算机强大的功能已为人们深刻认识2可行性研究报告
2.1问题描述本会议室管理系统包括各种会议室的信息,用户可以根据需要申请、修改、删除会议室1用户需先注册一个账号,通过注册的账号登陆会议室管理系统进行操作2申请相应的会议室后,如果需要继续使用,可以申请会议室3也可以删除申请的会议室___可以查询会议室、处理用户申请、删除用户以及查看编辑用户结账信息1___登陆会议管理系统,查询会议室的情况(空闲或占用)2___可以处理用户申请,为用户分配会议室3___可以删除用户基本信息4___处理用户结账信息
2.2可行性研究的前提
2.
2.1要求功能对用户管理、对会议室管理、对会议室申请管理性能方便快捷的实现申请、修改、删除各功能输出客户信息、会议室信息、申请信息输入客户信息、会议室信息、申请信息
2.
2.2可行性研究方法目的是用最小的代价在尽可能的时间内确定问题是否能解决1)技术可行性研究本软件利用VisualC#作为__的语言工具,SQLserver作为数据库__工具技术评价在现有的软件和硬件条件可以满足我们的需求,并且通过学习可以使用C#语言实现本系统,本系统管理对象单一,数据变化性频繁,计算并不难,因此采用数据库管理2)经济可行性研究本系统__工具VisualC#2005软件和SQLserver数据库软件本__小组已经拥有,不再需要__,本系统的__成本较低,从经济方面来说,可以__3需求分析
3.1任务概述需求分析是软件定义时期的最后一个阶段它的基本任务是准确的回答:系统必须做什么?需求分析通常提出对系统的功能需求、性能需求、可靠性和可用性需求等多种需求会议室的合理分配,不仅利于公司资源最大程度的利用,而且有利于提高会议质量,解决了因资源竞争产生的一系列问题,避免冲突会议管理是一项需要重视的工作,本软件可以让会议室的利用率进一步提高,___方便管理,避免管理中容易出现的一些错误使用本软件要求用户熟悉Windows操作,并且有一定的软件操作基础预计本软件将会在一些小的会议室租赁公司中得到广泛使用
3.2性能要求1)系统安全、可靠2)功能齐全3)界面清晰大方,操作简单4)易于维护和扩充
3.3数据流图顶层数据流图如图
3.1所示会议管理系统管理员用户会议室记录表用户信息表申请修改删除会议室注册图
3.1 顶层数据流图0层数据流图如图
3.2所示1注册用户2申请会议室3删除申请4修改申请管理员会议室记录用户信息用户账单5查询删除6处理申请7计算费用分配会议室结账填写用户信息图
3.2 0层数据流图
3.4数据字典数据字典是__者与用户相互沟通的有效途径之一它能形象的向用户描述__者的意图,使用户明白数据库可能具有的项目数据字典是各类数据描述的__,它是进行详细的数据收集和数据分析后所获得的主要成果数据字典卡片名字客户信息别名描述客户的个人信息,用于对客户的确认定义客户信息=客户ID+工作单位+__+__位置输入到会议系统___端名字申请会议室客户清单别名描述已申请会议室的客户的记录定义申请会议室客户清单=客户信息的合集位置输入到会议系统___端名字会议室申请信息别名描述客户申请的会议室时间和类型,用于确定客户使用的会议室定义会议室申请信息=申请会议室时间+会议室类型位置传输到会议系统___端名字会议室申请通知信息别名描述客户的会议室信息,根据客户的使用时间和类型确定的定义会议室申请通知信息=客户的申请时间+会议室类型位置传输到会议系统___端名字已租出会议室信息别名描述会议室出租情况的信息定义已租出会议室信息=已处理的会议室申请位置输出到打印机名字客户使用会议室记录别名描述已申请的客户在会议室出租公司的记录定义客户使用会议室记录=客户ID+会议室信息位置输出到会议系统___端名称___表别名描述对___的描述定义___=用户名+__位置输出到会议系统___端4概要设计
4.1定义可行性用最小的代价在尽可能段的时间内确定问题是否能解决,是否值得解决,但并不直接解决问题即在较高层次上以抽象方式进行需求分析和设计技术可行性对要__的项目的功能、性能和限制条件进行分析,确定在现有资源条件下,技术风险有多大,项目是否能实现社会可行性__项目是否会在社会上、__上引起侵权、破坏或其他责任问题系统流程图用图形符号描述组成系统的各个元素以及信息在这些部件之间的流动情况数据流图(DFD)用来描绘软件系统的逻辑模型的工具,它描绘数据在软件系统中流动和被处理的逻辑过程数据源点/终点正方形表示用于反映数据流图与外部实体之间的__数据字典用来定义数据流图中各个元素具体含义,它的一种准确的,无二异性的说明方式,为系统的分析、设计和维护提供了有关元素的详细描述
4.2任务概述本系统旨在__一个实用的会议室管理系统,利用信息化手段辅助管理,达到提升管理效率的目的
4.3总体设计通过详细调查社区管理信息,充分了解了系统的概况,明确___和用户的各种需求,确定本次设计的会议管理系统包括如图
4.1所示的几大功能�会议室管理系统用户�管理员申请会议室�登陆注册修改�删除处理申请查询会议室删除用户信息处理用户结账图
4.1会议管理系统功能模块图5详细设计
5.1编写目的软件详细设计就是在软件总体设计的基础上,考虑如何实现定义的软件系统直到对系统中的每个模块给出了足够详细的过程描述在详细设计以后,程序员仍将根据详细设计的过程编写出实际的程序代码详细设计的目标是确定应该怎样具体实现所需求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序
5.2数据库设计
5.
1.1会议管理系统E-R图E-R图如图
5.1所示��管理员�管理�管理�用户�会议室预订�名称密码公司名编号时间电话会议室类型类型状态价格编号公司名编号密码电话1N1NNM图
5.1E-R图关系模型关系模型的逻辑结构是一组关系模式的__将E-R图转换为关系模式就是要将实体型、实体的属性和实体性之间的__转换为关系模式据以上E-R图以及实体集间1:1__,1:n__,m:n__的转换规则,可以将E-R转换为关系模型关系模型为(其中加下划线的为主码)会议室(会议编号,类型,__,状态)预订(编号,会议室类型,时间,__,公司名称)___(用户名,__)用户(编号,姓名,__,__,公司名称)
5.3前台主要界面
5.
3.1登陆界面首先连接数据库进入登录窗口,登录窗口如图
5.2所示
5.2登录窗口usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingusingusingusingusingusingpublicpartialclass_DefaultPage{protectedvoidPage_Loado__ectsenderEventArgse{}protectedvoidBtnOk_ClickO__ectsenderEventArgse{stringstringifStrYhm==||StrMm=={Response.Writescriptalert请输入用户名或__!;/script;}else{SqlConnectionmycon=newSqlConnectionClass
1.con;mycon.Open;SqlCom__ndmycom=mycon.CreateCom__nd;mycom.Com__ndText=select用户ID__from用户表where用户ID=+StrYhm+and__=+StrMm+;SqlDataReadermyread=mycom.ExecuteReader;boolflag=myread.Read;ifflag{Response.Redirect__in.aspx;}else{Response.Writescriptalert登录失败!;/script;}mycon.Close;mycom.Dispose;}}protectedvoidBtnCan__l_ClickO__ectsenderEventArgse{___Yhm.Text=;___Mm.Text=;}}
5.
3.2用户注册界面用户注册如图
5.3所示
5.3用户注册界面usingSystem;usingSystem.Collections;usingSystem.Configuration;usingSystem.Data;usingusingSystem.Web;usingusingusingusingusingpublicpartialclasszhu__Page{protectedvoidPage_Loado__ectsenderEventArgse{}protectedvoidBtnOk_Clicko__ectsenderEventArgse{SqlConnectionmycon=newSqlConnectionClass
1.con;mycon.Open;SqlCom__ndmycom=mycon.CreateCom__nd;mycom.Com__ndText=insertinto用户表values;Int32flag1=mycom.ExecuteNonQuery;//执行sql语句,并返回获得值ifflag10//如果数据中没有记录或有多条记录则抱错{Response.RedirectDefault.aspx;}else{Label
1.Text=添加失败;}mycon.Close;mycom.Dispose;}protectedvoidBtnCan__l_Clicko__ectsenderEventArgse{___Yhid.Text=;___Dh.Text=;___G__.Text=;___Mm.Text=;}}
5.
3.3用户申请会议室用户申请会议室如图
5.4所示
5.4用户申请会议室usingSystem;usingSystem.Collections;usingSystem.Configuration;usingSystem.Data;usingusingSystem.Web;usingusingusingusingusingpublicpartialclassAddsqPage{protectedvoidPage_Loado__ectsenderEventArgse{}publicvoidBtnOk_Clicko__ectsenderEventArgse{if___yh.Text==||___gs.Text==||___sj.Text==||___lxdh.Text==||___hyslx.Text=={Response.Writescriptalert不能为空!/script;}else{SqlConnectionmycon=newSqlConnectionClass
1.con;mycon.Open;SqlDataAdaptermyadapter=newSqlDataAdapterselect__x编号as编号from预定表mycon;DataSetmyds=newDataSet;myadapter.Fillmydsydb;Int32li1=Convert.ToInt32myds.Tables[ydb].Rows
[0]
[0];Int32li2=li1+2;mycon.Close;SqlConnectionmycon1=newSqlConnectionClass
1.con;mycon
1.Open;SqlCom__ndmycom1=mycon
1.CreateCom__nd;mycom
1.Com__ndText=insertinto预定表编号用户ID公司名时间__会议室类型申请状态values+li2+未处理;Int32flag1=mycom
1.ExecuteNonQuery;mycon
1.Close;SqlConnectionmycon2=newSqlConnectionClass
1.con;mycon
2.Open;SqlCom__ndmycom2=mycon
2.CreateCom__nd;mycom
2.Com__ndText=insertinto结账表编号用户ID公司名时间会议室类型__结账状态values+li2+2000未结账;Int32flag2=mycom
2.ExecuteNonQuery;mycon
2.Close;ifflag10flag20{Response.Writescriptalert添加申请成功!/script;}else{Response.Writescriptalert添加申请成功!/script;}}}publicvoidBtnCan__l_Clicko__ectsenderEventArgse{___yh.Text=;___gs.Text=;___sj.Text=;___hyslx.Text=;___lxdh.Text=;Label
1.Text=Class
1.bh;}}
5.4系统后台主要界面后台登陆后台登陆如图
5.5所示图
5.5后台登陆usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingusingusingusingusingusingpublicpartialclass_DefaultPage{protectedvoidPage_Loado__ectsenderEventArgse{}protectedvoidBtnOk_ClickO__ectsenderEventArgse{stringstringifStrYhm==||StrMm=={Response.Writescriptalert请输入用户名或__!;/script;}else{SqlConnectionmycon=newSqlConnectionClass
1.con;mycon.Open;SqlCom__ndmycom=mycon.CreateCom__nd;mycom.Com__ndText=select___ID__from___表where___ID=+StrYhm+and__=+StrMm+;SqlDataReadermyread=mycom.ExecuteReader;boolflag=myread.Read;ifflag{Response.Redirect__in.aspx;}else{Response.Writescriptalert登录失败!;/script;}mycon.Close;mycom.Dispose;}}protectedvoidBtnCan__l_ClickO__ectsenderEventArgse{___Yhm.Text=;___Mm.Text=;}}
5.
4.2查询会议室查询会议室如图
5.6所示图
5.6查询会议室usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingusingusingusingusingusingpublicpartialclassChaxunPage{publicStringstrstr1str2;protectedvoidPage_Loado__ectsenderEventArgse{if!IsPostBack{bind1;}}protectedvoidBtnOk_Clicko__ectsenderEventArgse{ifstr1==str2=={Response.Writescriptalert请输入数据!/script;}ifstr1!=str2=={str=select会议室ID类型__状态from会议室表where会议室ID=+str1+;bindstr;}ifstr1==str2!={str=select会议室ID类型__状态from会议室表where类型=+str2+;bindstr;}ifstr1!=str2!={str=select会议室ID类型__状态from会议室表where会议室ID=+str1+and类型=+str2+;bindstr;}}protectedvoidBtnCan__l_Clicko__ectsenderEventArgse{___Hysid.Text=;___Hyslx.Text=;}//无输入时绑定publicvoidbind1{SqlConnectionmycon=newSqlConnectionClass
1.con;mycon.Open;//where状态=闲置SqlDataAdaptermyadapter=newSqlDataAdapterselect会议室ID类型__状态from会议室表mycon;DataSetmyds=newDataSet;myadapter.Fillmydsydb;this.GridView
1.DataSour__=myds;this.GridView
1.DataBind;mycon.Close;}//有输入时板顶publicvoidbindStringst{SqlConnectionmycon1=newSqlConnectionClass
1.con;mycon
1.Open;SqlDataAdaptermyadapter1=newSqlDataAdapterstmycon1;DataSetmyds1=newDataSet;myadapter
1.Fillmyds1ydb1;this.GridView
1.DataSour__=myds1;this.GridView
1.DataBind;mycon
1.Close;}publicvoidGridView1_PageIndexChangingo__ectsenderGridViewPageEventArgse{this.GridView
1.PageIndex=e.NewPageIndex;if{bind1;}else{bindstr;}}}
5.
4.3处理用户申请用户申请如图
5.7所示图
5.7用户申请处理申请如图
5.8所示图
5.8处理申请usingSystem;usingSystem.Collections;usingSystem.Configuration;usingSystem.Data;usingusingSystem.Web;usingusingusingusingusingpublicpartialclassModifysqPage{protectedvoidPage_Loado__ectsenderEventArgse{if!IsPostBack{bind;}}publicvoidGridView1_RowEditingo__ectsenderGridViewEditEventArgse{GridView
1.EditIndex=e.NewEditIndex;bind;}publicvoidGridView1_PageIndexChangingo__ectsenderGridViewPageEventArgse{GridView
1.PageIndex=e.NewPageIndex;bind;}publicvoidGridView1_RowCan__lingEdito__ectsenderGridViewCan__lEditEventArgse{GridView
1.EditIndex=-1;bind;}publicvoidbind{SqlConnectionmycon=newSqlConnectionClass
1.con;mycon.Open;SqlDataAdaptermyadapter=newSqlDataAdapterselect编号用户ID公司名时间会议室ID会议室类型申请状态from预定表mycon;DataSetmyds=newDataSet;myadapter.Fillmydsydb;this.GridView
1.DataSour__=myds;this.GridView
1.DataBind;mycon.Close;}protectedvoidGridView1_RowUpdatingo__ectsenderGridViewUpdateEventArgse{SqlConnectionsqlcon=newSqlConnectionClass
1.con;stringsqlstr=update预定表set会议室ID=+TextBoxGridView
1.Rows[e.RowIndex].__lls
[4].Controls
[0].Text.ToString.Trim+申请状态=+TextBoxGridView
1.Rows[e.RowIndex].__lls
[6].Controls
[0].Text.ToString.Trim+where编号=+Convert.ToInt16GridView
1.DataKeys[e.RowIndex].Value.ToString+;SqlCom__ndsqlcom=newSqlCom__ndsqlstrsqlcon;sqlcon.Open;Int32flag1=sqlcom.ExecuteNonQuery;//执行sql语句,并返回获得值sqlcon.Close;SqlConnectionsqlcon1=newSqlConnectionClass
1.con;stringsqlstr1=update结账表set会议室ID=+TextBoxGridView
1.Rows[e.RowIndex].__lls
[4].Controls
[0].Text.ToString.Trim+结账状态=+TextBoxGridView
1.Rows[e.RowIndex].__lls
[6].Controls
[0].Text.ToString.Trim+where编号=+Convert.ToInt16GridView
1.DataKeys[e.RowIndex].Value.ToString+;SqlCom__ndsqlcom1=newSqlCom__ndsqlstr1sqlcon1;sqlcon
1.Open;Int32flag2=sqlcom
1.ExecuteNonQuery;//执行sql语句,并返回获得值sqlcon
1.Close;SqlConnectionsqlcon2=newSqlConnectionClass
1.con;stringsqlstr2=update会议室表set状态=占用where会议室ID=+TextBoxGridView
1.Rows[e.RowIndex].__lls
[4].Controls
[0].Text.ToString.Trim+;SqlCom__ndsqlcom2=newSqlCom__ndsqlstr2sqlcon2;sqlcon
2.Open;Int32flag3=sqlcom
2.ExecuteNonQuery;//执行sql语句,并返回获得值sqlcon
2.Close;ifflag10flag20flag30{Response.Writescriptalert处理成功!/script;}GridView
1.EditIndex=-1;bind;}}
5.
4.4删除用户信息删除用户信息如图
5.9所示图
5.9删除用户信息usingSystem;usingSystem.Collections;usingSystem.Configuration;usingSystem.Data;usingusingSystem.Web;usingusingusingusingusingpublicpartialclassDeleteyhPage{protectedvoidPage_Loado__ectsenderEventArgse{if!Page.IsPostBack{bind;}}publicvoidbind{SqlConnectionmycon=newSqlConnectionClass
1.con;mycon.Open;SqlDataAdaptermyadapter=newSqlDataAdapterselect用户ID公司名__from用户表mycon;DataSetmyds=newDataSet;myadapter.Fillmydsydb;this.GridView
1.DataSour__=myds;this.GridView
1.DataBind;mycon.Close;}publicvoidChangePageo__ectsenderGridViewPageEventArgse{this.GridView
1.PageIndex=e.NewPageIndex;bind;}publicvoiddeleteo__ectsenderGridViewDeleteEventArgse//注意各种__的参数类型{SqlConnectionconn=newSqlConnectionClass
1.con;conn.Open;stringdeleteuser=GridView
1.DataKeys[e.RowIndex].Value.ToString;//获取主键stringcmd=deletefrom用户表where用户ID=+deleteuser+;//SqlCom__ndcmdt=newSqlCom__ndcmdconn;Int32flag1=cmdt.ExecuteNonQuery;//执行sql语句,并返回获得值conn.Close;SqlConnectionconn1=newSqlConnectionClass
1.con;conn
1.Open;stringdeleteuser1=GridView
1.DataKeys[e.RowIndex].Value.ToString;//获取主键stringcmd1=deletefrom预定表where用户ID=+deleteuser1+and申请状态=未处理;//SqlCom__ndcmdt1=newSqlCom__ndcmd1conn1;Int32flag2=cmdt
1.ExecuteNonQuery;//执行sql语句,并返回获得值conn
1.Close;ifflag10flag20{Response.Writescriptalert删除成功!/script;}bind;}}
5.
4.5处理用户结账处理用户结账如图
5.10所示图
5.10处理用户结账usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingusingusingusingusingusingpublicpartialclassJiezhangPage{publicstringyh=;publicstringhh=;publicstringhh1=;protectedvoidPage_Loado__ectsenderEventArgse{if!IsPostBack{bind1;}}publicvoidGridView1_RowEditingo__ectsenderGridViewEditEventArgse{GridView
1.EditIndex=e.NewEditIndex;ifyh=={bind1;}else{bind;}}publicvoidGridView1_PageIndexChangingo__ectsenderGridViewPageEventArgse{GridView
1.PageIndex=e.NewPageIndex;ifyh=={bind1;}else{bind;}}publicvoidGridView1_RowCan__lingEdito__ectsenderGridViewCan__lEditEventArgse{GridView
1.EditIndex=-1;ifyh=={bind1;}else{bind;}}protectedvoidBtnOk_Clicko__ectsenderEventArgse{bind;}protectedvoidBtnCan__l_Clicko__ectsenderEventArgse{___Yh.Text=;}publicvoidbind1{SqlConnectionmycon=newSqlConnectionClass
1.con;mycon.Open;SqlDataAdaptermyadapter=newSqlDataAdapterselect编号用户ID时间会议室ID会议室类型__结账状态from结账表where结账状态=未结账mycon;DataSetmyds=newDataSet;myadapter.Fillmydsydb;this.GridView
1.DataSour__=myds;this.GridView
1.DataBind;mycon.Close;}publicvoidbind{SqlConnectionmycon=newSqlConnectionClass
1.con;mycon.Open;SqlDataAdaptermyadapter=newSqlDataAdapterselect编号用户ID时间会议室ID会议室类型__结账状态from结账表where用户ID=+yh+and结账状态=未结账mycon;DataSetmyds=newDataSet;myadapter.Fillmydsydb;this.GridView
1.DataSour__=myds;this.GridView
1.DataBind;mycon.Close;}protectedvoidGridView1_RowUpdatingo__ectsenderGridViewUpdateEventArgse{SqlConnectionsqlcon=newSqlConnectionClass
1.con;stringsqlstr=update结账表set__=+TextBoxGridView
1.Rows[e.RowIndex].__lls
[5].Controls
[0].Text.ToString.Trim+结账状态=+TextBoxGridView
1.Rows[e.RowIndex].__lls
[6].Controls
[0].Text.ToString.Trim+where编号=+Convert.ToInt16GridView
1.DataKeys[e.RowIndex].Value.ToString+;SqlCom__ndsqlcom=newSqlCom__ndsqlstrsqlcon;sqlcon.Open;Int32flag1=sqlcom.ExecuteNonQuery;//执行sql语句,并返回获得值sqlcon.Close;SqlConnectionsqlcon1=newSqlConnectionClass
1.con;hh=update会议室表set状态=空闲;SqlCom__ndsqlcom1=newSqlCom__ndhhsqlcon1;sqlcon
1.Open;Int32flag2=sqlcom
1.ExecuteNonQuery;//执行sql语句,并返回获得值sqlcon
1.Close;SqlConnectionsqlcon2=newSqlConnectionClass
1.con;hh1=update会议室表set状态=占用where会议室IDisnotnulland会议室IDinselectdistinct会议室IDfrom结账表where结账状态=未结账;SqlCom__ndsqlcom2=newSqlCom__ndhh1sqlcon2;sqlcon
2.Open;Int32flag3=sqlcom
2.ExecuteNonQuery;//执行sql语句,并返回获得值sqlcon
2.Close;ifflag10||flag20||flag30{Response.Writescriptalert处理成功!/script;GridView
1.EditIndex=-1;ifyh=={bind1;}else{bind;}}}}6软件测试
6.1编写目的软件测试是为了发现程序中的问题本系统技术不很成熟,存在不少问题,测试变得非常重要软件测试的过程也是程序运行的过程,程序运行需要数据,为测试设计的数据称测试用例,设计测试用例的原则自然是尽可能暴露错误
6.2测试内容软件测试主要工作内容是验证和确认,下面分别给出其概念验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性即保证软件以正确的方式来做了这个__静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件__期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序
6.3软件测试的分类
(1)关心软件内部结构和具体实现的角度划分,可分为白盒测试和黑盒测试1黑盒测试黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试2白盒测试白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试“白盒”法是穷举路径测试在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据贯穿程序的__路径数是天文数字但即使每条路径都测试了仍然可能有错误第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序第二,穷举路径测试不可能查出程序中因遗漏路径而出错第三,穷举路径测试可能发现不了一些与数据相关的错误
(2)从是否执行程序的角度,可分为静态测试和动态测试
(3)从软件__的过程按阶段划分,可分为单元测试、集成测试、确认测试、验收测试和系统测试1)单元测试单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作其目的在于发现各模块内部可能存在的各种差错单元测试需要从程序的内部结构出发设计测试用例在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应2)集成测试通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统这时需要考虑的问题是在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响;各个子功能组合起来,能否达到预期要求的父功能;全局数据结构是否有问题;单个模块的误差累积起来,是否会放大,从而达到不能接受的程度3)确认测试确认测试又称有效性测试任务是验证软件的功能和性能及其它特性是否与用户的要求一致对软件的功能和性能要求在软件需求规格说明书中已经明确规定它包含的信息就是软件确认测试的基础4)验收测试在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试5)系统测试系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试系统测试的目的在于通过与系统的需求定义作比较发现软件与系统的定义不符合或与之矛盾的地方6)测试用例序号输入预期输出执行结果1输入正确用户名与__进入相应页面符合2输入正确用户名错误__提示__错误符合3输入不存在用户名提示用户名不存在符合4___登录___管理界面符合5用户登录用户界面符合6用户申请会议室操作显示申请界面符合7用户修改申请操作显示修改界面界面符合8___查询会议室显示查询界面符合9___处理用户申请显示处理申请界面符合10___删除用户信息显示显示删除界面符合总结本次实验的软件是为满足会议管理工作人员的需求,提高管理人员的工作效率系统设计主要完成了以下几方面的工作根据系统设计要求,完成系统功能分析、系统功能模块设计,完成数据库需求分析、概念结构设计、逻辑结构设计以及数据库的具体实现,并在此基础上逐步完成系统各个功能模块的设计与实现首先,这次实验让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识;再次,我在实验中碰到了很多的问题,通过查阅相关资料以及上网查询进行解决,通过对本会议管理系统的设计,使我认识到软件__的过程实际上就是描述现实世界的过程,而由现实世界向软件模型的转化过程是其中最核心的过程最后,由于实验时间较短,所以该系统还有许多不尽人意的地方,系统的一些功能还不完善通过本次实验,让我在以后的学习中明白了自己的弱点,掌握那些不足之处,锻炼自己的思维能力,开拓自己的思维,进一步提高自己的编程能力衷心感谢林勇老师在此次实验中对我的指导____
[4]周之英等译,面向对象系统分析与设计[M],清华大学出版社.2000年。