1、陕西理工学院毕业设计 毕业论文设计题 目 基于B/S模式的仓库管理系统的设计与实现 学生姓名 李进宝 学号 1109064045 所在院(系) 数计学院 专业班级 信息与计算科学1102班 指导教师 赵晖 完成地点 陕西理工学院 2015 年 5 月 25日基于B/S模式的仓库管理系统的设计与实现作者:李进宝(陕西理工学院数学与计算机科学学院信息与计算科学专业信计1102班,陕西 汉中 723000)指导教师:赵晖摘要随着时代的快速发展,基于信息化处理的管理越来越受到各企业的重视,仓库管理系统则是典型的信息管理系统(MIS)同时也是许多企业必不可少的一部分,企业通过使用信息化管理系统管理水平和
2、管理效率都得到了很大的提高,传统的运输方式显然已经落后于信息化的发展要求,它终将被全新的方式取代。我们了解,国际互联网的全球化热潮使人类社会进入了一个新的信息时代,因此通过计算机来获取物流信息已是信息时代到来必然要发生的结果。仓库入库首先需要登记仓库的一些基本信息,很大程度上提高了以前仓库人员工作效率低、工作时间久的特征。大大减少了以往入货、出库繁琐的流程,杂乱,周期久的弊端。基于仓库管理系统的半自动化,极大程度上节省了企业的时间,节约了企业的开支。对物质管理的实时性和准确性也有了很大的保障。本系统在设计和开发阶段用到了网上的相关资料,并总结了近年来仓库管理系统建设的发展过程和这些仓库系统的主
3、要特点,在本次的系统设计与实现中中采用的SQL Server2005作为后台数据库,利用了Visual studio2010作为本系统的开发平台。采用的主要技术有:C#, HTML ,Asp.Net ,SERVLET ,JS , CSS 。本系统的主要功能模块主要有以下几类,管理员模块:库存警报,数据报表,库存盘点,库存产品,仓库管理,单据管理,系统通知,用户管理,密码修改。员工模块:入库管理,库存查询,库存警报,修改密码等。关键字仓库管理;C#;SQL Server;Asp.Net;HtmlThe Design and Implement of The Warehouse Managemen
4、t System Based on B/S Model li jinbao(Grade11,Class2,Information and computing science Major, Mathematics and Computing Science Dept, Shaanxi University of Technology, Hanzhong 723000,Shaanxi)Tutor: ZhaohuiAbstract: With the rapid development of the times, based on the management information process
5、ing more and more attention by all companies, warehouse management system is a typical management information system (MIS) is also an essential part of many companies, enterprises through the use of information technology management system management level and efficiency have been greatly improved,
6、the traditional mode of transport has clearly lagged behind the development of information technology requirements, which will eventually be replaced by a whole new way. We understand that the globalization of the Internet boom human society has entered a new age of information, and therefore to get
7、 the logistics information via computer is the result of the arrival of the information age is bound to happen. Warehouse storage first need to register some basic information warehouse, greatly improved the previous low warehouse staff productivity, the characteristics of long working hours. Greatl
8、y reduced in the past into the cargo, a library tedious process, messy, long cycle disadvantages. Based on semi-automated warehouse management system, to a great extent on the companys time-saving, saving business expenses. Timeliness and accuracy of the material management has also been a great sup
9、port.The system used in the design and development stage of the relevant information online, and summarizes the main features of the development process in recent years, warehouse management system construction and the warehouse system, SQL Server2005 in this system design and implementation used as
10、 background database using the Visual studio2010 as the system development platform. The main technique used are: C #, HTML, Asp.Net, SERVLET, JS, CSS. The main function modules of the system are the following categories, the administrator module: Stock Alert, data reporting, inventory, inventory, w
11、arehouse management, document management, system notifications, user management, password changes. Staff modules: warehouse management, inventory inquiries, inventory alarm, change passwords.Key Words: Material Management; C# ; SQL Server; Asp.Net; Html 目录1 引言31.1 仓库管理系统研究背景及应用31.2 本文研究目标及意义31.3 本文主
12、要完成工作32 系统的需求分析32.1 总体需求分析42.2 可行性分析42.2.1 技术可行性42.2.2 操作可行性42.3 开发及运行环境52.3.1 开发环境52.3.2 运行环境52.4 开发模式/架构52.5 系统功能分析52.5.1 登录功能52.5.2 人员管理子模块52.5.3 系统通知管理子模块52.5.4 仓库基本信息管理子模块52.5.5 仓库管理员模块的设计52.5.6 出入库管理员62.5.7 退出登录功能63 系统总体设计63.1 项目规划73.2 E-R图74 系统详细设计104.1 数据库表104.2 数据表104.3 视图模块135 系统实现155.1 界面
13、设计实现155.1.1 登录界面的实现155.1.2 系统首页设计的实现165.2 功能模块的实现175.2.1 管理员模块的实现175.2.2 出入库模块功能图236 系统测试266.1 界面测试266.2 功能测试266.3 需求测试276.4 性能测试276.5仓库管理系统的测试27结束语29致谢29参考文献291 引言1.1 仓库管理系统研究背景及应用仓库管理在一般的工业、商业企业生产管理环节中起着重要的作用,需要对仓库基本的信息进行管理、仓库的流通和仓库的数量也需要进行实时监控。仓库入库首先要登记仓库的一些基本信息,包括仓库的名称、型号、单位、种类、数量、单价等;仓库出库时也需要对仓
14、库进行登记,包括仓库的名称、型号、哪个仓库、出库数量、出库时间等;根据仓库的入库、出库过程的综合,得到不同的仓库余额信息,方便进行后续工作和进行随时查看。因此仓库管理系统需要记录仓库的状态、信息等全部过程。通过仓库管理系统,不但在经济上有很大的收益,在管理上也有看的出的好处,它不但可以节省劳力,而且还节约时间使企业跟的上时代的步伐,从而适应现代企业的需求,如今信息化时代已近占领了所有的市场,大部分的企业都实现了信息化管理。就目前而言,许多企业都停留在以工作流方式的工作模式,所以研究如何使系统界面做最少的改动,符合大众审美观,给人以舒服的感觉,如何采用最方便有效的查询是我们应该研究的重点,同时必
15、须提供完善的衔接模块使得物流管理系统能够有条不紊的完成仓库管理的一系列操作,从而提高企业整体的办公效率和领导的决策能力。仓库管理系统具有广泛的应用,它的使用群体可以是会使用电脑的每个人,只要简简单单的操作即可完成工作,应用领域至多方多面,出入库,仓储,管理等等,使得各个操作即在瞬间完成2。1.2 研究目标及意义 进入21世纪,现在主要以通信,计算机,大数据,自动管理等技术占领,对于一些小的企业来说,以前的一些办公流程早已近被淘汰。现在的信息社会,谁掌握的信息量多,谁信息处理的速度快就会立于不败之地,仓库管理是信息管理的主要的一个环节。不管是仓库的库存管理,还是仓库的出入库管理,都实现了自动化,
16、不在用以前的人工模式进行管理。通过系统的管理不仅安全,方便最主要的是节省了时间,节省了花费。所以不管是现在还是将来半自动化或者是全自动化肯定会取代人工,这也是时代发展的需求。1.3 主要完成工作本设计主要完成物流管理系统的设计。在用户使用过程中,系统会根据用户所输入的密码辨别其身份赋予其能操作和使用的功能的权限。其中包含的功能模块作用分别为:1、实现管理员管理。2、实现入库员工管理。3、实现出库员工管理。4、实现报表导出功能。5、实现增、删、改、查功能。6、实现重新登录功能。7、设置系统退出功能。2 系统的需求分析需求分析是指在构建一个全新的或变换一个现存的电脑系统时描述新系统的范围、目的、定
17、义和功能时所做的所有准备。需求分析是软件工程中的一个重要的过程。在需求分析中,系统分析师和软件工程师确定顾客的需求。只有在确定了这些需求后软件工程师才能根据这些需求来完成相应的功能的实现。软件需求是指用户对期望的软件系统不管是在功能上、行为、性能还是在设计约束等方面的期望。通过对相应问题和需求的分析,来为相应的设计需求完成功能,将用户需求完整化,精确化,最终形成需求说明,这一系列的活动就构建成软件需求周期。需求分析是介于系统分析和软件设计阶段两者之间重要的一个模块。一方面,需求分析以项目规划和系统规格说明作为基本出发点,并从软件角度对它们进行更改和调整;另一方面,需求分析又是软件设计、实现、测
18、试到维护的主要基础。好的分析有利于避免或尽早检测出早期错误,从而使软件生产力提高,开发成本降低,软件质量改进。2.1 总体需求分析本系统是运用于仓库管理的自动系统。随着全球的信息化快速发展,传统的仓库管理已经落后于信息化的发展,必将被计算机管理方式。构建内部企业信息网,实现仓库管理自动化已经成为一种迫切的要求。本系统实现了对仓库的无纸制化操作。仓库流通公司主要业务有:货物的入库、出库、调库、借出、借入、调拨、报损、盘点等多种操作,准确控制存储物料的数量,以保证稳定的物流,支持正常的生产,支持多仓库操作,货物的批量出入库、调库、盘点、货位管理等。系统实现的功能,就是这一系列过程,此为工作流。其余
19、就为基本信息的管理,以及安全管理。2.2 可行性分析本系统的开发是为了解决传统手工操作效率低时间久、有效地解决货物的积压、超储、过期、短缺、报表的管理等常见的弊病。对于一般的业务较强,没有什么弊端。下面通过系统的技术可行性、操作可行性、社会可行性来分析系统是否可以投入应用。2.2.1 技术可行性在本次的系统开发中,使用C#语言开发。用C#语言开发可以跨平台也可以跨语言,所以在这次的开发中选用了Visual Studio2010作为开发工具,并与强大的SQL Server数据库相结合,它是一种简洁,易学,易用且功能强大的数据库。本系统主要是向SQL Server数据库进行增、删、改、查等多次的重
20、复性的操作。本系统的设计思路简明明了,所以只要了解这方面技术的人一看即懂,日后维护方便。2.2.2 操作可行性本系统设计界面简洁明了,所有功能都简单实用。快捷操作带有图标,让人可以看见图就能知道意思。系统中带有入库管理员、出库管理员、系统管理员三种身份登录。管理员可以可以查看所有的信息和管理出库员和入库员,入库员负责仓库的入库管理,出库员负责仓库的出库管理。2.2.3 社会可行性本系统的设计对社会没有有害的方面,设计不存在侵权和妨碍等问题。本系统针对小型企业设计,其中大部分功能能够满足很多中型企业的需求。2.3 开发及运行环境2.3.1 开发环境(1) 操作系统:Windows 7采用本系统是
21、因为目前windows xp 在2014年已经逐渐被淘汰,而windows 7应用范围广。(2) 数据库:SQL Server 2005相比其他数据库如Oracle等费用高,本系统的设计应用到的数据库SQL server 2005 都能满足其需求,并且SQL server 2005免费,相对于Oracle数据库节省了开发成本。(3) 开发平台:Visual Studio2010Visual Studio2010的开发功能很符合本系统的开发要求,并且很多公司都用它开发项目。而2010版也是其中最经典的一个版本。2.3.2 运行环境(1) 服务器:IIS在测试阶段,系统只要运行就会在本机的IIS上
22、建立,但是在应用阶段,需要运行在单独的一个服务器上。(2) 浏览器:在IE8运行,Google浏览器也适合谷歌和IE8是现在比较大众化的浏览器,并且本系统能够适应其浏览器。2.4 开发模式/架构本系统采用通用的三层架构的方式开发的次项目.实现了系统的功能操作,开发流程如下:(1) 客户端向服务器发起请求。(2) 服务器根据不同的请求进行处理。(3) 服务器把相应返回给客户端,客户端通过相应的方式接受后呈现给客户。2.5 系统功能分析由于仓库管理系统比较宽泛,本系统是针对一个小型汽车修理厂的仓库流通设计的仓库管理系统,使企业的日常管理更加科学,使日常交易信息有效化,高效化。2.5.1 登录功能本
23、系统将要实现管理员、出库管理员、入库管理员功能。接受用户输入的登录名,密码和验证码,然后判断是否登录成功,如果不成功则留在登录页面,否则进入系统。2.5.2 人员管理子功能实现了管理员管理,入库人员管理,出库人员管理。2.5.3 系统通知管理子功能实现了管理员发布重要通知,管理员下的用户可以查看。2.5.4 仓库基本信息管理子功能实现仓库的预警和查询等信息。仓库的预警是很多仓库管理系统不具备的功能,本系统通过统计仓库中的物资数量达到该物资的下限条件就对本物资进行预警。2.5.5 仓库管理员功能的设计管理员主要管理货物的入库、出库、调库、借出、借入、调拨、报损、盘点等多种操作流程。2.5.6 出
24、入库管理员出库管理员主要负责货物的出库,入库管理员主要负责货物的入库。2.5.7 退出登录功能实现用户安全退出。设置该功能的作用是用户可以安全退出到登录界面,销毁当前登录人的信息,确保个人信息的安全,从而使下个用户可以登录。应为本系统涉及三种模式登录,而且登录界面是相同的,所以退出功能不仅可以跳转到登录界面,而且可以释放当前的信息,使本次的登录的信息释放掉,从而保护了个人的安全性。3 系统总体设计系统设计工作是自顶向下的一个设计过程。首先必须设计系统的总体结构,然后再逐层深入,最后对系统的每一个模块进行设计。总体设计建立在系统分析上的一个过程,对整个系统的规划(子系统)、机器设备(包括软、硬设
25、备)的配置、数据的存储规律以及整个系统的实现进行合理的安排和分析。1. 系统设计的概念 系统设计是开发管理信息系统的第二阶段,也可称为物理设计。系统设计经常化分两个阶段进行,首先是总体设计,主要是设计系统的概貌和轮廓,并通过向用户和上层单位作详细报告通过认可,在系统设计的基础上进行下一个阶段详细设计,这两部分工作是相辅相成的,需要交叉进性。 系统设计则是开发人员要进行的下一步工作,他们将系统设计阶段所得到的目标系统的逻辑模型转换为目标系统的物理模型,该阶段取得的工作成果系统设计说明书,而系统说明书则是下一个阶段所要做的工作的依据4。3.1 项目规划本系统将实现如下功能:管理员:个人信息管理:查
26、看、修改个人信息、修改密码库存预警:查看仓库中的仓库的库存状态和数量。数据报表:将所有的仓库用报表的形式呈现出来,方便导出查看。库存盘点:查看各个仓库最近的出库数、入库数、调拨、借出、归还统计库存产品:显示产品信息,可以添加产品,搜索产品,修改等操作。还可以添加大类。仓库管理:对仓库进行增删改查。单据管理:对特定的产品进行查看具体的信息及状态,操作人等。系统通知:发布消息。用户管理:对用户进行管理。入库管理员:个人信息管理:查看、修改个人信息、修改密码库存警报:查看自己对应的仓库的仓库状态。库存查询:查询自己的库存物品,以及修改等操作。入库管理:对相应的仓库进行自己库存的入库管理。系统通知:查
27、看最近的通知信息。出库管理员:个人信息管理:查看、修改个人信息、修改密码库存警报:查看自己对应的仓库的仓库状态。库存查询:查询自己的库存物品,以及修改等操作。出库管理:对相应的仓库进行自己库存的出库管理。系统通知:查看最近的通知信息。 下边是本系统功能结构图和系统流程图:(如图3.1和3.2)。图3.1 系统功能结构图系统流程图:(如图3.2)图3.2 系统流程图3.2 E-R图图3.3 E-R图4 系统详细设计4.1 数据库表本系统数据库采用SQL Server 2005数据库,系统数据库名称为al_bysj。数据库共包括10张表,和4个视图。(1)、数据表树型结构图包括了本系统所有数据表。
28、如图3.3所示:图3.3 数据库表4.2 数据表(1) dbo.AllGood(产品小类表)。此表的作用用于保存所用的仓库的的产品。 dbo.aList表(如表4.1)表4.1 dbo.aList(产品小类表)列名数据类型长度是否主外键描述IDInt 主键自动编号GoodsNumvarchar(50)50 外键产品编号GoodsNamevarchar(50)50外键 产品名称NowNumInt外键现在数量TopNumInt最多数量AlignGoodCInt所属仓库AlignKeepsInt操作类型EndNumAlignTypeIntInt所剩数量 所属类型(2) dbo. BigClass(产
29、品大类表表)。此表用于保存所有的产品大类,每一个小的产品都属于这个大类中的某一个。dbo. BigClass表(如表4.2)表4.2 dbo. BigClass(产品大类表)列名数据类型长度是否主键描述IDInt是自动编号GoodsNameVarchar(50)50大类产品名称(3) dbo.GetGoods(入库表)。此表用于产品入库后保存在此表中 dbo. GetGoods表(如表4.3)表4.3 dbo. GetGoods (入库表)列名数据类型长度是否主外键描述IDInt主键自动编号GoodsIDInt外键产品编号InputTimedatetime入库时间ActionTypeInt产品
30、类型(4) dbo. GoodList (库存产品表)。此表时仓库中现有的产品,同时也是仓库中的现在有的产品。 dbo. GoodList表(如表4.4) 表4.4 dbo. GoodList (库存产品表)列名数据类型长度是否主(外)键描述IDInt主键自动编号AlignGoodsInt外键所属产品类型GoodCostvarchar(50)50产品单价GoodNumInt产品数量GoodMakeVarchar(50)50操作人GoodsBZVarchar(50)50备注MakeTimedatetime操作时间InputTimedatetime入库时间GoodTimeInt时间类型(5) db
31、o. GoodPapers (单据表)。此表用于保存每个产品的单据信息,如是谁需求次产品,对此产品操作的时间和状态等。dbo. GoodPapers表(如表4.5) 表4.5 dbo. GoodPapers (单据表)列表数据类型长度是否主外键描述IDInt主键自动编号GoodsIDInt产品编号GoodsNumInt产品数量GetUserVarchar(50)50需求人InputUserVarchar(50)需求人GetTimedatetime操作时间PaperTypeInt操作类型(6) dbo. KeepNum (仓库表)。此表用于显示仓库管理系统中有哪些仓库,管理哪些产品。dbo. K
32、eepNum表(如表4.6)表4.6 dbo. KeepNum (仓库表)列名数据类型长度是否主(外)键描述IDInt主键自动编号GoodClassInt产品大类KeepNamevarchar(50)仓库名称(7) dbo. PaperType (操作类型表)。此表用于保存对仓库的操作类型,和其他的表是结合起来用的。 dbo. PaperType表(如表4.7)表4.7 dbo. PaperType (操作类型表)列名数据类型长度是否主键描述IDInt主键自动编号PaperTypevarchar(50)50操作类型(8) dbo. RecordList (系统日志表)。此表用于记录产品的每次使
33、用的情况,用于记录。 dbo. RecordList表(如表4.8) 表4.8 dbo. RecordList (系统日志表)列名数据类型长度是否主外键描述IDInt主键自动编号UserNamevarchar(50)50用户名称GoodIDInt产品编号GoodNumInt产品数量TypesIDInt账号类型RecordTimedatetime注册日期(9) dbo. SystemTest (系统通知表)。此表用于管理员给用户发布一些通知。 dbo. SystemTest表(如表4.9) 表4.9 dbo. SystemTest系统通知表)列名数据类型长度是否主键描述IDInt主键自动编号Ta
34、tileVarchar(20)20标题CountsText内容InputTimedatetime发布日期TestTypeInt文章类型(10) dbo. UserList (仓储人员表)。此表也是管理用户表,用于账户的添加和开户操作。 dbo. UserList表(如表4.10)。表4.10 dbo. UserList (仓储人员表)列名数据类型长度是否主键描述IDInt主键自动编号UserNameVarchar(50)50仓储人名称PassWordVarchar(50)50密码UserTypeInt用户类型AlignTypeInt操作权限ControlsInt操作仓库GoodsTypeInt
35、操作商品类4.3 视图模块此视图将产品表和操作类型表、单据表、仓库表通过ID联系在了一起,目的是可以进行综合式的查询和显示,通过仓库可以查相应的产品,通过产品可以知道他的状态等。(1) dbo. View_Dao此视图是由仓库表和所有产品表通过ID键关联起来的,这样做的目的是每个仓库中都用自己的产品。不同的产品属于不同的仓库。(2). dbo. View_GoodMsg此视图通过单据表、产品类表、操作类型表、所用产品表组成。只选取了每个表中的一些字段进行关联。其目的是供单据表中使用。(3). dbo. View_Pape此视图是由系统日志表、产品表、操作类型表组成,同样也是选取了各个表中一些字
36、段,这张视图的作用在显示不同产品的使用情况。(4). dbo. View_Sum5 系统实现5.1 界面设计实现5.1.1 登录界面的实现此页面可以进行管理员和出入库管理人员双向登录,如果验证成功,进入各自系统。否则,留在登录页面。图5.1 登录界面5.1.2 系统首页设计的实现此页面是进入系统的主页面,用户可以选择自己需要的操作。管理员登录成功的主界面与出入库员登录成功的主界面有所不同。 管理员登录成功后主界面:图5.2 管理员登录界面 出入库员登录成功后主界面:图5.3 出入库人员登录界面5.2 功能模块的实现5.2.1 管理员模块的实现5.2.1.1 库存警报此操作管理员和出入库的管理员
37、都能查看。此功能可以查看出产品的编号、名称、数量、数量上限、数量下限、现存数量、所属仓库。它的作用在于通过查看产品的数量来看产品是否已经缺货和残品仓库中最多存入多少。图5.4 库存警报界面5.2.1.2 数据报表此操作只能由管理员进行登陆后修改。此表的作用用于记录所有的产品的操作记录,可以进行查询操作,最主要的是能够进行导出PDF和EXCEL格式的文件进行查看。图5.5数据报表界面5.2.1.3 库存盘点此操管理员登陆后修改。此功能用于进行对各个仓库进行查看近几月的汇总情况,主要是产品的出入库,调拨和借出归还等信息。图5.6库存盘点界面5.2.1.4 库存产品此操作由管理员登陆后查看。查看所用
38、的产品,可以进行修改、搜索、添加产品和添加大类。图5.7 库存产品界面5.2.1.5 仓库管理此操作由管理员登陆进行管理。此功能主要是进行对仓库的添加和修改的操作。图5.8 仓库管理界面5.2.1.6 单据管理此操作由管理员登陆后查看。此操作查看商品的状态。图5.9 单据管理界面5.2.1.7 系统通知此操作由管理员发布通知。通过管理员发布一些通知供用户看。 图5.10 系统通知界面5.2.1.8 用户管理此操作由管理员管理用户,用于进行对用户的增、删、改、查。图5.11 用户管理界面5.2.2 出入库模块功能图5.2.2.1 系统通知管理员发布通知,用户查看。图5.11系统通知界面5.2.2
39、.2 入库管理此操作由入库管理员登陆后操作。 用于对入库商品信息的添加。图5.12入库管理界面5.2.2.3 库存查询此操作由出入库管理员登陆后查询。查看库存中的产品。 图5.13库存查询界面5.2.2.4修改密码此操作由出入库管理员登陆后操作。 图5.14密码修改界面5.2.2.5出库管理此操作出库员登陆后操作。用于保存出库产品的信息。图5.15出库管理界面6 系统测试在所有的编程都结束之后我们接下来要进行系统的测试,系统测试是做软件开发的必不可少的一个环节,通过测试系统的各部分达到系统能过稳定的运行。不管是什么公司只要是做软件开发的都离不开系统测试这个环节。我们不仅仅要测试系统的稳定性还要
40、测试系统中所有有可能出现的情况。还要测试系统中的字体的书写。通过软件测试来达到我们系统的稳定运行13。依据上面所说的测试对象,我们把测试划分为以下几个方面来进行测试。单元测试:单元测试是对软件基本组成单元进行的测试,所发现的往往是编码和详细设计中的错误;集成测试:集成测试是将已分别通过测试的单元按设计要求组合起来再进行测试,发现的往往是软件设计中的错误,也可能发现需求中的错误;确认测试:确认测试是检查所开发的软件是否满足需求规格说明书中所确定的功能和性能的需求,发现的是需求分析阶段的错误;6.1 单元测试单元测试集中检测软件设计的最小单元模块。一个最小的单元应该是有明确的功能、性能定义、接口定
41、义,而且可以清晰地与其他单位区分开。在编写出源程序代码并通过编译程序的语法检查后,用详细设计说明书作指南,对重要的执行通路进行测试,以便发现模块内部的错误。可以应用人工测试和计算机测试两种测试方法来进行单元测试。通常,单元测试主要使用白盒测试技术,而且多个模块可以并行地进行测试。 单元测试需从5个方面对模块进行测试:1. 模块接口首先应该对通过模块接口的数据流进行测试,如果数据不能正确地进出,所有其他测试都是不切实际的。1) 在对模块接口进行测试时主要检查下述几个方面:2) 参数的数目、次序、属性或单位系统与变元是否一致;3) 是否修改了只作输入用的变元;4) 全局变量的定义和用法在各个模块中
42、是否一致2. 局部数据结构 局部数据结构是模块常见的错误来源。常见的错误如下:1) 不正确或不一致的数据说明;2) 错误的初始化或没有赋处值;3) 变量名的拼写或缩写错误;4) 数据类型不相容5) 上溢、下溢和地址异常3. 重要的执行通路由于通常不可能进行穷尽测试,因此,在进行单元测试时,关键是选择最有代表性、最可能发现错误的执行通路。应该设计测试方案用来发现由于错误的计算、不正确的比较或不适当的控制流而造成的错误13。4. 出错处理通路好的设计应该能预见出现错误的条件,并且设置适当的处理错误的通路,以便在真的出现错误时执行相应的出错处理通路或结束处理。当评价出错处理通路时,应该着重测试下述一
43、些可能发生的错误13:1) 对错误的描述是难以理解的;2) 记下的错误与实际遇到的错误不同;3) 在对错误进行处理之前,错误条件已经引起系统干预; 4) 对错误的处理不正确;5) 描述错误的信息难以确定造成错误的位置。5. 边界条件边界测试是单元测试中最后且最重要的一步。软件常常在它的边界上失效,例如,处理n元数组的第n个元素时,或做到i次循环中的第i次重复时,往往会发生错误。使用刚好小于、刚好等于和刚好大于最大值或最小值的数据结构、控制量和数据值的测试方案,非常可能发现软件中的错误。6.2 集成测试集成测试是测试和组装软件的系统化技术,在装配的过程中对组装的模块进行测试,主要目标是发现与接口有关的问题。它包括子系统测试和系统测试两个过程。测试的技术有两种:1. 非渐增式测试技术:是先分别测试每个模块