《基于MVC设计模式的加班管理系统设计毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于MVC设计模式的加班管理系统设计毕业设计论文.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕业设计题目:基于MVC设计模式的加班管理系统系 别 信息工程系 专业班级 学生姓名 指导教师 指导教师职称 2016年5月20日目 录摘 要3关键词3Abstract:4引 言5一、需求分析6(一)系统目标6(二)功能分析6(三)业务描述71、系统模块图72、业务流程图73、加班申请模块84、加班审批模块9二、系统设计10(一)总体设计101、系统架构设计102、数据库结构设计13(二)详细设计171、登陆模块功能介绍172、员工加班单管理模块183、员工部门信息管理模块19三、编码实现21(一)编码规范211 、命名规则212 、文件组织223 、分隔和缩进23(二)代码算法分析24四、系
2、统测试25(一)软件测试方法分类251、静态测试与动态测试252、黑盒与白盒测试263、单元测试、集成测试、系统测试、验证测试和确认测试26(二)单元测试27(三)测试报告29五、小结30致 谢31参考文献32基于MVC设计模式的加班管理系统摘要:加班管理系统采用B/S模式,SSH框架,Ehcache缓存技术。加班管理系统拥有三种不同身份,组长、组员、项目经理、系统管理员。实现加班申请、加班申请查询、加班审批、登录用户身份管理、菜单管理等功能。采用java分布式缓存技术可以提高程序的运行效率。加班管理系统是一种操纵和管理加班业务的web系统,用于加班申请、加班审批。它对加班工作进行统一的管理和
3、控制,加班申请、审批的高效工作。员工通过加班管理系统提出加班申请,组长和项目经理进行审批工作。加班申请首页,用户可以直接进行加班单的增删改查等操作。员工的加班管理已经越来越引起人们的重视。员工加班管理就是要做到员工的加班申请进行增加,查询,删除,修改,审批等相关操作。系统为了信息安全访问,可以注册多个管理员对数据库进行管理操作,也就是进行访问控制。进行访问控制管理的最终目的是加强对不同身份用户进行管理,防止员工越级对数据库的操作,同时对不同的员工信息可进行增加,查询,删除,修改等相关操作,对不同的部门信息可进行修改等相关操作,对不同的职位信息可进行修改等相关操作,实现对每名员工的基本信息修改改
4、动。关键词:加班 管理 技术 开发 SSH Overtime management system based onMVC design PatternAbstract:Overtime management system uses B/S mode, SSH framework, Ehcache caching technology. Overtime management system has three different identities, team leader, team member, project manager, system administrator. To achi
5、eve overtime application, overtime application query, overtime approval, login user identity management, menu management and other functions. Java distributed caching technology can improve the running efficiency of the program. Overtime management system is a kind of operation and management of web
6、 system, for overtime, overtime approval. It is unified management and control of overtime work, overtime application, approval and efficient work. The staff through overtime management system to work overtime application, leader and project manager for approval work. Overtime application page, the
7、user can directly work single crud operations. Overtime management of employees has been paid more and more attention. Staff overtime management is to do overtime application for staff to increase, query, delete, modify, approval and other related operations. In order to access information security
8、system, it can register many administrators to manage the database, which is to access control. Ultimate aim of access control management is strengthen to different user identity management, prevent employees leapfrog to the database operation, at the same time, the different employee information ca
9、n add, query, delete, modification and other related operations and information of different departments can modify, and other related procedures, of different position information can modify, and other related procedures, to achieve basic information of each employee modify changes.Key words: overt
10、ime management technology development SSH引 言随着计算机及计算机网络的普及和全国各地的网络的日益完善、健全,各种工作的计算机网络化将逐步取代繁重的传统办公模式。加班申请管理作为员工远程进行加班申请提供便利,也有利于领导阶层对员工加班管理,从而减轻管理人员的工作负担,简化加班申请流程,让复杂的加班申请用计算机数据库统筹管理。因此,设计一种加班管理管理系统为员工、组长、项目经理提供一个交互的接口,大大方便了组长、项目经理及管理员的管理人员。加班是员工在公司的一个必有的情况,是提高公司收益的一个重要过程。本设计从加班单的申请、加班单的审核、员工加班单修改、删
11、除、保存记录、查询等进行管理,实现了加班的整个流程的管理工作。系统实现了员工加班申请和项目经理、组长进行加班审批,并增加了部门管理、职务管理、系统菜单管理等功能,能够保证管理员对系统维护、职务、部门的修改,对保证加班申请流程和提高工作效率有非常重要的现实意义。随着网络化的普及,全国各大公司,实现无纸化办公成为未来的趋势。本系统的为结合其他管理系统提供了接口。 在最新的调查中,调查的范围样本量达到全球40个国家,将近450家企业。其中样本量的12%是中国的企业,全球调研报告去年首站发布是在上海,在去年的 10月19号。这个发布受到了一些关注和好评,我们进一步在过去几个月的时间里面把中国参加的企业
12、又做了单独分国别的调查。调查的主要结论,我们发现中国企业迫切需要通过人力资本管理转型推动企业的发展战略。三个关键词:一个是转型、一个是引擎,第三个是目标。转型的目标通过调研,我们发现人力资源的转型主要目标是提升整个组织的适应性和灵活性。领导力建设和企业文化是转型的主要的两个引擎。人力资本管理的效率是促使转型的主要保障,也是转型的目标之一, 所以一个有效的员工信息管理系统可以帮助企业进行有效的推动企业的发展战略,所以研究员工信息管理是对于国内企业的发展是很有必要的。一、需求分析(一)系统目标员工信息的电子化管理是企业管理信息系统的一部分,而正因为这种动态服务,才大大提高企业内部沟通,交流。这种模
13、式已经逐渐替代到过去的手工工作模式以及工作方式。本系统实现了员工加班管理、查询、增加及删除,组长、项目经理审批管理等功能。本系统是企业对自己公司内部员工管理的系统,主要实现如下目标: 组长、项目经理对加班单的审批管理功能。 用户加班单的增删改查等功能。 系统管理员的维护管理功能。(二)功能分析开发软件首先做的是开发过程中最主要的就是系统的需求分析,需求分析同时也是软件生存周期中关键的一步。根据软件工程学中开发软件的要求,对系统全部功能和相关的技术进行具体的分析,分析时采用结构化的分析方法,自顶向下、逐层分解问题。根据用户要求以及实际的具体分析,要求本系统具有以下功能: 管理页面要求美观大方、个
14、性化。 加班单的增加、删除、改动和查询功能。 组长、项目经理审批加班单功能。 组员部门职位管理。 系统、操作流程简单、方便,能够提高工作效率。(三)业务描述1、系统模块图总的系统模块主要包括:员工部门管理、职务管理;员工加班单查看、修改、删除、增加;员工加班单的审批;总的系统功能模块结构图,如图1.1系统模块功能图所示:加班管理系统员工加班单管理员工信息管理员工部门管理加班审批管理加班申请单修改加班单审批加班申请单提交加班申请单删除加班申请单查询加班单审批查询员工职务管理图1.1 系统模块功能图2、业务流程图加班业务流程图,包括加班单的新增、删除、修改、查询;加班单的审批流程,如图1.2所示:
15、加班审批是否选行开始时间加班审批是否通过是否通过加班明细加班审批组员组长项目经理图1.2 业务流程图3、加班申请模块所有用户进入加班申请页面,选项卡方式显示加班申请及查询和加班审批及查询,用户在每个分页面输入要查询的条件,点击搜索,页面列表显示所有符合 查询条件的加班信息。1) 在加班申请及查询页面列表显示加班项目、加班日期、开始时间、结束时间、拒绝理由、状态。2) 在新增申请页面列表显示申请人、加班项目、加班部门、申请时间、开始时间、结束时间、加班类型、加班理由。3) 加班类型分为工作日、周六、周日,状态包括、待审批、被项目经理拒绝、项目经理已审批。4) 在每个页面可以根据状态、所属项目、开
16、始日期、结束日期模糊组合查询;5) 开始日期和结束日期的日期选择控件的第一列为星期四(默认),最后一天为星期三6) 加班时长:数字右对齐。7) 加班申请的新增及修改。8) 新增界面当中有申请人,员工编号,申请状态,申请时间,加班开始及结束时间,加班类型,部门,加班项目,加班理由等字段。9) 修改申请界面和新增界面基本一致。4、加班审批模块首次进入加班审批首页,展示所有用户(自己除外)的待审批的加班单,项目经理查看的组员用户的组长审批通过的加班单。1) 用户以自己身份登入,如果是组长,则可以审批组员的加班申请,如需查询某个组员的加班申请,则可以进行模糊查询。2) 显示申请人的姓名,职务,开始时间
17、,结束时间,和审批状态,加班项目。3) 待审批状态:审批通过会显示“打勾”,审批未通过显示“否”,未审批显示待审批。4) 加班时长列数字右对齐。5) 操作列里选择有审批详情超链接,点击有审批界面弹出。6) 审批界面中有申请详细信息,审批者可以进行通过,拒绝或关闭窗口。7) 开始日期不能大于结束日期,开始日期和结束日期任意一个都可以为空。8) 审批详情界面,拒绝理由文本框为必填项。9) 审批通过,拒绝文本框为“无”;审批拒绝,拒绝文本框为真实拒绝理由。二、系统设计完成了系统的需求分析之后,就进入了系统的设计阶段,在整个系统的开发时期中,设计阶段是最主要的阶段。按软件生存周期的划分,设计任务通常分
18、两个阶段来完成。第一个阶段是总体设计,它的任务是建立软件的总体结构,即软件的系统框架设计和数据库架构。第二个阶段是详细设计,其任务是,以及各组成成分(子系统或模块)之间的相互联系,各个模块的介绍。本系统采取了原型法,先根据需求分析设计出原型,然后在原型的基础上进行不断的测试和改进。在本系统的设计过程中采取了模块化的设计方法,化繁为简。(一)总体设计1、系统框架设计系统的设计与开发过程中严格遵守软件工程的规范,运用MVC软件设计模式Struts2+Spring+Hibernate框架设计开发,减少软件间的耦合度,力求做到系统的稳定性、可重用性和可扩充性。系统开发工具MyEclipse 8.5,开
19、发语言为JAVA,JDK6.5,后台数据库使用Oracle 10g,Tomcat7.5作为系统服务器,前端技术采用Jquery EasyUi实现数据展示。(1) Struts2框架Struts作为MVC2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用。作为最成功的Web框架,Struts自然拥有众多的优点:MVC2模型的使用、功能齐全的标志库(TagLibrary)、开放源代码。而Spring的出现,在某些方面极大的方面了Struts的开发。同时,Hibernate作为对象持久化的框架,能显示的提高软件开发的效率与生产力。这三种流行框架的整合应用,可以发挥它们各自的优势,使软件开
20、发更加的快速与便捷。struts2发布已经很久了,但关于如何使用它的教程及实例并不多。特别是与Spring及Hibernate等流行框架的集成,并不多见。(2) Spring框架Spring Framework1 是一个开源的JavaJava EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一书中的代码,最初由 Rod Johnson 和 Juergen Hoeller等开发。Spri
21、ng 中包含的关键特性,如图2.1所示:图 2.1 Spring模块 核心容器:提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring Context:是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可
22、以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。 Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量。 Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBat
23、is SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。 (3) Hi
24、bernate框架iBatis是一个O/R Mapping解决方案,和流行的Hibernate相比,iBatis最大的特点就是小巧,上手很快。如果你不需要太多复杂的功能,iBatis是能满足你的要求又足够灵活的最简单的解决方案。 使用iBatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而iBatis 则要求开发者编写具体的SQL 语句,如图2.2所示:图2.2 iBatis SQL mappingHibernate等 “全自动”ORM机制而
25、言,iBatis 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,iBatis 的出现显得别具意义。2、数据库结构设计数据库的设计实际上是对项目设计的一个整体规划,因为数据库的设计要从全局的角度考虑,而且数据库的设计要从全局的角度考虑,而且数据库中表的结构都是与程序紧密相关的,如果数据库设计如果没有到位,设计也会受到一定的影响。数据库的设计的E-R图是一个数据库的重要部分,现将数据库中部分重要表格的关系反应如下几个E-R图所示。员工本人的加班单进行增加、删除、查询和修改。E-R图如图2.3所示:图2.3 加班单操作员工密码备
26、注年龄用户名登录名编号部门职务地址管理加班单备注加班单号加班单号结束时间开始时间组长审批组员的加班单,E-R图如图2.4所示:图2.4 加班单审批组长密码备注年龄用户名登录名编号部门职务地址审批加班单备注加班单号加班单号结束时间开始时间项目经理可以管理用户及组长的部门,E-R图如图2.5所示:图2.5 项目经理管理部门项目经理密码备注年龄用户名登录名编号部门职务地址管理部门部门编号部门简介部门项目经理可以管理用户及组长的职务E-R图如图2.6所示:项目经理密码备注年龄用户名登录名编号部门职务地址管理职务职务编号号职务简介职务名称图2. 6管理职务本系统采用Oracle 数据库,系统数据库名为o
27、rcl,数据库orcl中包括4个数据表。各个表的逻辑结构和相关信息如下:1. (User)用户信息表用来存储登录用户的相关信息表,其中有用户登录名,登录密码,以及用户相关个人信息,职务编号,部门编号,结构如表 2-1所示:表2-1 User表字段名数据类型长度主键/外键描述Idnumber19主键员工编号Loginnamevarchar20登录名ldy_str_usernamevarchar50员工用户名ldy_str_pwdvarchar50员工密码ldy_str_namevarchar50员工姓名表2-1 User表 (续)字段名数据类型长度主键/外键描述ldystr_addressvar
28、char50员工地址ldy_str_sexvarchar50员工性别ldy_str_markvarchar50员工备注ldy_str_agevarchar50员工年龄ldy_str_numbervarchar50员工签到号ldy_str_depidvarchar50外键员工部门号jsbidvarchar50外键员工职位号2. 加班单表加班单的相关信息表,其中有所属用户,加班开始时间,加班结束时间,审批状态,加班单号,结构如表 2-2所示:表2-2 加班单表字段名字段类型长度主键/外键备注IDNumber19主键加班单号SdateTimeSimpTime默认加班开始时间EndTimeSimpTi
29、me默认加班结束时间UserIdNumber19外键关联用户表MarkVarchar100加班单备注APP_projecevarchar10外键加班项目StateNumber1审批状态3. 部门信息表 表中有部门编号,部门名称,部门简介等信息,结构如表 2-3所示:表2-3 Department表字段名字段类型长度主键/外键IDNumber19主键DepartmentNamevarchar默认DepartmentMsgSimpTime默认4.部门信息表表中有职务编号,职务名称,职务职责简介等信息,结构如表 2-4所示:表2-4 Position表字段名字段类型长度主键/外键IDNumber19
30、主键PosNamevarchar默认PosMsgvarchar默认(二)详细设计1、登陆模块功能介绍主要包括以下功能:l 为用户进入后台提供一个入口。l 当用户输入正确用户名和密码时,进入加班管理系统首页。l 当用户输入错误的用户名和密码时,仍定位到登陆页面。具体效果如图2-5所示:图 2. 5 登录界面本模块页面显示具体设计与实现见表2-5:表2-5 用户登陆模块功能实现页面表区域名称说明对应文件form1form表单method=”post”、action=” checkLogin.jsp”usernametext用户名pwdtext密码2、员工加班单管理模块 此页面负责显示员工加班单全部
31、信息,同时提供增加、删除、改动、查询的按钮。在该页面上方,提供新增,删除,编辑,查询的按钮。员工加班管理主界面如图2-6所示:图2.6 员工加班管理主页面用户在该页面可以通过员工姓名来检索加班信息。也可以点击更新或删除按钮对员工信息进行改动或删除操作。本页面显示具体设计与实现见表2-6所示:表2-6 员工信息管理主页面功能实现页面表区域名称说明对应文件1员工加班管理主要用于回到系统的主界面list.jsp2加班单审批管理主要用于回到部门管理主界面deplist.jsp3职位信息管理主要用于回到职位管理主界面joblist.jsp5退出主要用于退出系统,定位到登陆页面login.jsp6form
32、1主要用于按姓名查找员工信息7nametext员工姓名中的关键字8、PosCombobox员工部门3、员工部门信息管理模块此模块仅限于项目经理以及系统管理员可以选择此菜单,部门信息管理界面可以输入要增添的员工的各类信息如:员工编号、姓名、选择所属部门、所属职位及员工的增加操作。具体的员工部门录入界面如图2-7所示:图2.7 员工部门信息页面组员部门信息修改功能具体设计与实现见表2-3表4-7 员工信息录入模块实现方法与变量表区域名称说明对应文件form1form表单saveAdd.jspldy_str_nametext员工姓名ldy_str_postext员工职务ldy_str_groupte
33、xt员工部门同时该模块的两个主要功能即用户可以点击查询呢或删除按钮对员工信息进行改动或删除操作。具体的员工部门信息修改弹出窗口界面如图2-8所示:图2.8 员工信息更新页面员工信息更新功能具体设计与实现如表2-8所示:表2-8 员工信息更新模块实现方法与变量表区域名称说明对应文件form1form表单saveUpdate.jspldy_str_nametext员工姓名ldy_str_numbertext员工编号ldy_str_depidselect所属部门jobidselect所属职位submitsubmit提交三、编码实现系统设计完成后,正式进入编码阶段,编码规范对于开发人员来说是非常重要的
34、,有以下几个原因:1. 一个软件的生命周期中,80%的花费在于维护 2. 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 3. 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码 4. 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 5. 为来自不同的项目组或个人提供标准的代码格式。6. 增加易读性。(一)编码规范1 、命名规则 包:命名应该都是名词或名词性词组,全部小写,单词之间用.分开;一般使用本公司组织网站域名的逆序后跟具体的软件内部模块名 。 包命名举例: package com.sun.java; p
35、ackage com.mycompany.db。 类:名词或名词性词组,每个单词首字母大写;一般不使用缩写,除非其缩写更通用和 便于理解,如HTML;当要区别接口和实现类的时候,可以在类的后面加上Impl,例如:interface Container与class ContainerImpl;Exception类用Exception做为类命名的结尾,例如:DataNotFoundException;抽象类用Abstract做为类命名的开头,例如:AbstractBeanDefinition,AbstractBeanFactory;Test类最好能用Test做为类命名的结尾。例如:Containe
36、rTest 。 类命名举例:class Person; class SpringRain 。 接口:同类的命名规则 。 接口命名举例:interface Runner。 方法:动词或动词性词组,首字母小写,第二个及以后的单词首字母大写。 方法命名举例:run(); displayInformation()。 变量:名词或名词性词组,首字母小写,第二个及以后的单词首字母大写。 不提倡使用下画线_和美元符$作为变量开头;单词间可以使用下画线分隔;变量名不宜过长但也应有意义,除非是临时使用(例如只涉及几行代码)后即丢弃的情况,不建议使用单个字母做变量名,常用的临时使用的变量名包括表示整数的i,j,k
37、,m,n和表示字母的c以及表示异常对象的e等。 变量命名举例:int age; int student_age; String studentName;Exception e。 常量:每一个单词都要大写,单词之间用_分开。 常量命名举例:final static MIN_WIDTH = 4;final static DEFAULT_CONTAINER_SIZE = 20; 文件的命名:java源程序文件以.java结尾,编译后的文件以.class结尾。例如:Container.java,Container.class。 2 、文件组织 一个文件由被空行分割而成的段落以及标识每个段落的可选注释共
38、同组成。超过2000行的程序难以阅读,所以一个java程序文件中的代码行数不能超过2000行,除非有特殊原因。每个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。 Java源文件还遵循以下规则,这个规则规定了java程序段落的顺序。 开头注释 包和引入语句 类和接口声明 属性声明 构造方法声明 static语句 普通方法声明 main方法声明 内部类的声明 3 、分隔和缩进 在方法之间 在方法内部代码的逻辑段落小节之间 在方法中声明局部变量之后,具体的Java语句之前 在注释行之前 运算符
39、和运算符之间,如:c = a + b; 在参数列表中的逗号后面,如 void m1(int year,int month) 在if,for,while待语句之后如: if (a b) 在(或=符号后拆行 在,拆行 在一个操作符后拆行 把并发的拆行放到同一级别上的缩进 如果在拆行中再次拆分的时候遇到(,应该新拆出来的行放在更远 可以使用小括号来强行规定运算顺序 使用缩进 (二)代码算法分析在加班单审批界面,职务等级可以看到比自己职务低的用户,例如:项目经理可以看组长的加班申请。前台数据展示数据列表中移除不符合要求的元素。如:项目经理审批组员加班单,必须是组长已经审批通过的加班单for(int i
40、=0;i=positionid1| overtime.getExamine().equals(0) |overtime.getExamine()-member1.getPositionId()=0) datalist.remove(i);i-;else if(overtime.getExamine().equals(-1)&member1.getPositionId()=2&positionid2!=1)datalist.remove(i);i-; 四、系统测试代码编写阶段已经完成,系统基本功能已经实现,为了提高系统的质量保证系统与需要要求一致,进行系统测试是有必要的。系统正常运行过程中,进行
41、信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的软硬件环境等。(一)软件测试方法分类软件测试技术按照不同的划分方法,有不同的分类:静态测试、动态测试;黑盒测试、白盒测试;单元测试、集成测试、回归测试、系统测试、验证测试以及确认测试。1、静态测试与动态测试按照软件测试分析与非分析方法而论,软件测试可以
42、分静态测试和动态测试。1) 静态测试指不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。静态测试包括:代码检查 、静态结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行。2) 动态测试动态测试方法是指计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。动态测试包括:功能确认与接口测试 ,覆盖率分析,性能分析,内存分析。2、黑盒与白盒测试1) 黑盒测试按照软件测试用例的设计方法而论,软件测试分为白盒测试法和黑盒测试法。若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这
43、种测试方法称为黑盒测试(Black-box Testing)方法。 黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。黑盒测试主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。2) 黑盒测试的特点黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。若测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-box Testing)方法。3) 白盒测试白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率