1、中 原 工 学 院软件工程实训任务书学生姓名*学号*专 业*班级*课题名称工资管理系统开发课题来源* 指导教师李志民专业软件工程职称软件工程师课题说明: 工资管理系统是一个数据库应用程序,根据企业的需求,为解决企业账目混乱,数据冗杂,信息处理需消耗人工大量时间计算而且易出错更新慢等问题,采用计算机技术而开发的,集基本工资、奖金、福利、津贴多个种别于一体的信息处理系统。本工资管理系统,集档案管理、考勤管理、调动管理、奖惩管理、假期管理、加班管理管理为一体,提供员工月底结账、清理过期数据、月初更新工资记录等的管理,帮助企业处理日常的金融业务,同时提供丰富的实时查询统计功能。承担的任务:1. 用户登
2、陆、个人信息管理; 2. 主界面设计;3. 工资核算模块设计;工作进度安排:2013-8-52012-8-20:根据指导老师对课题的要求进行程序开发的前期工作, 分析系统的项目需求分析和数据库设计。2013-8-21-2012-9-15:对系统功能进行详细设计,对财务、工资管理功能编码实现,完成模块的编码,整组代码。2013-9-162012-10-12:合并完成整个系统的测试、对系统存在的缺陷进行修改。整理实训报告,提交整个系统的源代码。指导教师签字: 年 月 日学院意见签章: 年 月 日中 原 工 学 院软件工程实训评审表学号*姓名*专业*班级*题目工资管理系统开发指导教师评语成绩(百分制
3、): 年 月 日 指导教师签名:年 月 日工资管理系统的开发摘 要本文介绍了软件工程实践项目工资管理系统的设计及实现过程,分六部分。第一部分概述,讲述与工资系统相关的知识及开发必要性;第二部分需求分析,根据用户的需要列出详细的需求,设计系统需要完成的功能;第三部分概要设计,是更好的实现程序的必要过程。第四部分是系统的详细设计,讲述工资管理系统的编程开发过程;第五部分是测试,记录了预计结果和实际结果。最后一部分结束语,总结实训心得。工资管理系统基于C+语言,主要使用Access数据库技术,采用MFC进行页面开发。关键词:工资管理系统;C+; Access;MFC;目 录第1章 概述11.1软件背
4、景11.2系统的设计目标1第2章 需求分析32.1问题描述32.2技术分析32.3功能分析42.4系统环境需求4第3章 概要设计53.1模块设计53.1.1系统模块设计53.1.2 模块功能划分53.2数据库概要设计53.2.1实体关系53.2.2数据表分析63.2.3数据字典73.2.4 E-R图8第4章 详细设计114.1数据库详细设计114.2系统详细设计124.3登录设计134.3.1功能模块图144.3.2界面设计144.4人事管理设计154.4.1功能模块图164.4.2界面设计164.5工资管理设计194.5.1功能模块图194.5.2界面设计19第5章 测试21第6章 结束语2
5、4附录A:主要源代码26第1章 概述1.1软件背景 随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的管理工具,不断改善企业的服务质量,提高工作效率。无论是行政职能,还是生产运作的管理要求的不断提高,在很大程度上使企业不得不改变传统的经营管理方式以适应快速发展的社会主义市场经济,改变企业管理方式、方法已经成为企业发展的先决条件。建设一个科学高效的信息管理系统是解决这一问题的必由之路。工资管理是每一个企事业单位都需要进行的一项工作,开发研制工资管理系统具有较大的现实意义,同时工资管理系统的最大特征是数据处理,它是数据库应用系统的典范,它具有
6、一切数据库应用系统的特征,如数据录入、数据统计和数据报表等。工资管理系统从实际应用的角度出发,以实际使用者为核心,整个平台的设计充分融入了人性化的设计理念,特别注重功能的实用性与操作的简便性。平台智能化管理,一体化操作,让使用者的管理轻松高效,操作简单便捷。1.2系统的设计目标 1.完备的功能克服现在工资管理中存在的人工管理,统计与查询单一、管理效率低下等问题;能科学有效的管理工资,方便地查询和统计人员、工资等情况,对所需要的数据以表格形式显示,以报表形式打印,并为将来进一步扩充和发展工资管理系统奠定基础。根据系统功能的分析,工资管理方面主要有以下几项功能:l 员工基本工资的设定。l 奖金以及
7、福利、津贴的设置。l 实发工资计算公式的调整。l 根据出勤统计结果计算本月各项实际金额。本系统中,计算工资的基本依据是考勤管理系统的统计结果。同时,在统计和查询时需要用到人事管理系统中的员工信息和部门信息。 2.方便的查询系统应该提供准确、及时的决策数据,可按员工号和月份查询,清楚地反映员工各月份工资收入及各类保险,个人所得税情况。 3.简单易用的操作界面系统应该采用人性化设计理念,直观的图形界面模拟手工格式、完善的流程向导、所见即所得的单据录入格式、无需记忆的代码组合,任何人员无需进行专业培训也能灵活操作。4.良好的通用性企业对工资管理系统的需求具有普遍性。本系统应该可以适应中小型企业集团内
8、部管理的需要。5.强大的安全性能系统应该提供严密的流程控制,有效保证制单的正确性,提供严格的分权体系有效防止越权使用。提供数据备份/恢复及断点保护功能及时排除故障并恢复现场数据。第2章 需求分析2.1问题描述传统的信息传递和管理方式不仅效率低,可靠性,安全性和保密性也无法满足要求,而且数据统计时间严重滞后,往往是当领导了解到企业的财务出现问题时,早已产生了严重的后果。即使没有分公司的企业,使用传统的手工方式管理也存在同样的问题:信息化不足,计算机使用率低,大量的日常工作皆是手工处理,导致工作效率低落,企业内部沟通不良等等问题很难克服,工资管理就是其中一部分。所以公司迫切希望解决的问题是:1、缺
9、少一个集成的信息平台和信息系统,而各个业务部门之间缺少信息沟通和数据共享是传统财务办公效率低下主要原因之一;2、不能克服现在工资管理中存在的人工管理,统计与查询单一、管理效率低下等问题;3、不能科学有效的管理工资,方便地查询和统计人员、工资等情况,并作出资金的调拨计划和改变计划;4、不能做到对所需要的数据以表格形式显示,以报表形式打印,并为将来进一步扩充和发展工资管理系统奠定基础。2.2技术分析本系统基于C+面向对象编程语言,使用ODBC,Access数据库技术,采用MFC进行界面设计开发。本系统的设计是在Windows xp中文版操作系统环境下,使用Visual C+ 6.0中文版开发成功的
10、。数据库SQL是其中的重要支持技术,在数据库开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围。Visual C+语言:Visual C+是一种可视化的、面对对象结构化的高级程序设计语言,可用于开发Windows环境下的应用程序。它简单易学、效率高,且功能强大。在Visual C+环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(OD
11、BC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。 B/S结构系统的产生为系统面对无限未知用户提供了可能。当然,与C/S结构相比,B/S结构也存在着系统运行速度较慢,访问系统的用户不可控的弱点。当今社会正处于信息爆炸的时代,数据库技术的应用已遍布各行各业,这给数据库技术的研究和数据库应用程序的开发提供了良好的环境。Visual C+为顺应这一发展需求,开发了ODBC类一以方便用户针对多种流行数据库开发应用客户服务器应用程序。ODBC是一套开放性数据库标准接口,使用它可以构造与数据库无关的客户服务器应用程序。本系统所用的就是在Visual C+中使用O
12、DBC以及ADO技术访问数据库,ADO是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是建立在OLEDB底层技术之上的高级编程接口,由于它兼具有强大的数据处理功能(处理各种不同的数据源、分布式的数据处理等)和极其简单、易用的编程接口,因而受到我们的关注以及选用。2.3功能分析通过调查,要求系统需要具有以下功能:1、 由于操作人员的计算机知识普遍较差,要求有良好的人机界面。2、 由于该系统的使用对象多,要求有较好的权限管理。3、 方便的数据查询,支持多条件查询。4、 按照年月对账务的检索功能。5、 当外界环境(停电、网络病毒)干扰本系统时,系统能自动保护原始数据的安全。6、 数
13、据计算自动完成,尽量减少人工干预。7、 系统退出。2.4系统环境需求开发工具:Microsoft Visual C+ 6.0硬件平台:CPU:1.40GHz。内存:256MB以上。软件平台:操作系统:Windows XP/ Windows 2000。数据库:Microsoft Office Access 2003。分辨率:最佳效果1024768像素。第3章 概要设计3.1模块设计3.1.1系统模块设计1、 系统管理对数据库进行初始化操作,对数据进行备份和恢复。2、 人事管理对员工的考勤、档案、奖惩等进行记录,以方便工资的统计。3、 工资管理对工资数据进行修改、删除、新建、保存,对工资数据单个字
14、段进行全部替换。通过直观、灵活、方便的查询形式对工资数据进行复核查询,并把查询和检索的结果以表格形式直观地显示,同时对查询和检索的结果进行指定的替换和输出。4、 用户管理可以新增、删除用户,更改密码,以保证系统的安全性。5、 综合管理对员工的基本信息进行统计,并记录一些重要事件。3.1.2 模块功能划分1、 登陆模块:实现对用户的信息管理如修改注册等操作;2、 工资管理模块:实现对员工工资结算信息管理;3、 人事管理模块:实现对员工基本信息,奖惩情况,考勤情况,部门调动及假期休息情况的信息管理等操作;4、 综合管理模块:实现对记录员工工资的具体情况以及公司的一些大小事件管理;3.2数据库概要设
15、计3.2.1实体关系 应该在仔细分析调查有关工资管理系统需求的基础上,设计如下面所示的数据项和数据结构。员工工资设置:员工号、基本工资。奖惩补贴扣发:记录编号、日期、员工号、类别、名称、金额及具体说明。月度工资统计:记录员工编号、日期、基本工资、奖金、其它应发明细、其它应发总额、扣发明细、扣发总额和实发金额。所需的外部数据支持如下:人员信息:员工编号、姓名、部门、密码、权限、和当前状态等。部门设置:部门编号、名称等。月度考勤统计:记录号、员工、日期和各类统计信息等。3.2.2数据表分析得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设
16、计打下基础,这些实体包含各种具体的信息,通过相互之间的作用形式数据的流动。 本系统的数据库名称为Payroll-system,包含了ADMIN_INFO、STAFF_INFO和WAGES_INFO共3个表。这些表的设计如下:管理员基本信息管理,如表3.1所示:表3.1管理员基本信息表编号字段名类型长度说明1user文本16用户2psw数字16用户密码3memo文本16备注职工基本信息管理,如表3.2所示:表3.2职工基本信息表编号字段名类型长度说明1Staff_id数字10职工编号2name文本10姓名3age文本10年龄4address文本20地址5status文本20学历6sex文本5性别
17、7phone数字10电话号码8education文本10教育程度9memo文本255备注工资基本信息管理,如表3.3所示表3.3工资基本信息表编号字段名类型长度说明1Bonus_ID数字10奖励金额编号2Bonus_money数字10奖励金额3Wage_id数字10工资编号4Final_total_wage数字10工资总额5Penal_money数字10惩罚金额6dduct_money数字10扣除金额7Total_overtime_allowance数字10加班补贴总额8Basic_wage数字10本月今本工资9Duty_wage数字10本月岗位工资10memo文本255备注其中:扣款工资=缺
18、勤扣款+病事假扣款+迟到早退扣款+公积金+本月借款+水电费+燃气费应领工资=底 薪 + 津 贴 + 加班工资 + 出差补助 + 住房补助-扣款工资养老保险=应领工资8%失业保险=应领工资1%个人所得税= 0900 0 9001400 5% 14002900 10% 2900 15%净领工资=应领工资-养老保险-医疗保险-失业保险-个人所得税3.2.3数据字典数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。主动
19、数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。数据字典是数据库的重要组成部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括: 1、数据库中所有模式对象的信息,如表、视图、簇、及索引等。 2、分配多少空间,当前使用了多少空间等。 3、列的缺省值。 4、约束信息的完整性。 5、用户的名字。 6、用户及角色被授予的权限。 7、用户访问或使用的审计信息。 8、其它产生的数据库信息。用户信息数据字典如表3.2所示:表3.2用户数据字典数据流名:用户信息说明:用做用户登录展示平台的依据
20、数据流来源:用户数据源去向:登录数据流组成:用户名+密码+身份数据元素名:密码类型:varchar长度:15取值范围:0到15 a到z数据文件名:用户信息表组成:用户名+密码+身份组织:按工号从小到大排列数据元素名:用户名类型:varchar长度:10取值范围:0到15 a到z3.2.4 E-R图E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为: 实体型(Entity):具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象
21、和刻画同类实体;在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。如果是弱实体的话,在矩形外面再套实线矩形。 属性(Attribute):实体所具有的某一特性,一个实体可由若干个属性来刻画。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。如果是多值属性的话,再椭圆形外面再套实线椭圆。如果是派生属性则用虚线椭圆表示。 联系(Relationship):联系也称关系,信息世界中反映实体内部或实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在E-R图中用菱形
22、表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。比如老师给学生授课存在授课关系,学生选课存在选课关系。如果是弱实体的联系则在菱形外面再套菱形。 联系可分为以下 3 种类型: (1) 一对一联系(1 1) 例如,一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。 (2) 一对多联系(1 N) 例如,某校教师与课程之间存在一对多的联系“教”,即每位教师可以教多门课程,但是每门课程只能由一位教师来教 (3) 多对多联系(M N) 例如,图1表示学生与课程间的联系(“学 ”)是多对多的,即一个学
23、生可以学多门课程,而每门课程可以有多个学生来学。联系也可能有属性。例如,学生“ 学” 某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于“ 成绩” 既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系“ 学”的属性。E-R方法是“实体-联系方法”(Entity-Relationship Approach)的简称。它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时
24、在无向边旁标上联系的类型。在ER图中有如下四个成分: 矩形框:表示实体,在框中记入实体名。 菱形框:表示联系,在框中记入联系名。 椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。 连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。根据分析设计的结果,有员工、部门、工资、用户、考勤等实体。下面为实体结构。如图3-1所示图3-1 系统E-R图第4章 详细设计4.1数据库详细设
25、计数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。数据库在一个信息管理系统中占有非常重要的地位,数据库结构
26、设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据流程图是描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实际流程通过分析调查有关工资管理需要,并针对一般工资管理系统的功能需求,设计出工资管理系统顶层数据流程图如图4.1所示:图4-1工资管理系统顶层DFD4.2系统详细设计1.系统功能分析 系统设计原则:系统设计其实就是系统建立的过程。根据前期所作的需求分析的结果,
27、对整个系统进行设计,如系统框架、数据库设计等。在系统设真正开始之前,设定系统的设计原则是非常必要的。 本系统设计的原则: (1)实用性原则。最大限度的满足实际工作需求,各业务层、各管理环节数据的处理要符合用户的经营与管理。操作界面尽量美观大方,操作简单。 (2)可扩展性和可维护性原则。为满足未来需求,系统应具备很好的可扩展性和可维护性。软件设计尽量模块化、组件化,使系统可灵活配置,数据库的设计尽可能考虑到未来的需要。 (3)安全可靠性原则。系统与数据库的设计要做到安全可靠,防止非法用户的入侵。数据库的备份策略恰当,以防止灾难性事故的发生。 (4)用户界面设计原则。用户界面做到美观大方、直观明了
28、、条理清楚、易学易用。 (5)数据库设计原则。a、一致性原则:对信息进行有效的统一,在系统的分析与设计过程中,协调好各数据,保证数据的一致性和有效性。b、完整性原则:数据的正确、有效和相容。要防止合法用户使用数据库时向数据库中添加不合规范的数据,数据库中添加数据要有审核和约束机制。c、安全性原则:保护数据,防止用户在使用数据库时候,操作不当造成机密数据的泄露、更改和破坏。d、可伸缩性原则:数据库结构的设计应充分考虑到未来需求和移植的需要,必须具有良好的扩展性、伸缩性和适度的冗余。系统开发的总体任务是实现公司员工工资管理的系统化、规范化和自动化,从而达到公司财务管理效率的目的。系统功能分析是在系
29、统开发总体任务的基础上完成的。本工资管理系统需要完成的功能有:(1)有关工资管理的各种信息的输入,包括员工基本信息、奖惩情况、考勤情况、部门调动及假期休息情况信息的输入等。 (2)有关工资管理的各种信息的查询、修改和维护。(3)在工资基本表中加入相应的固定字段和字段类型,对所有数据实现监控。 2系统功能模块图 根据系统功能分析,画出系统功能模块图如图4-3所示:图4-2 系统总体功能模块图此次编程我主要承担的任务有登录设计、人事管理设计和工资管理设计,其主要设计如下:4.3登录设计该模块实现了“用户登录”的功能,登录时,系统提供了默认用户名和密码;进入登陆界面后,用户可以添加新用户并修改密码,
30、以保证系统的安全性。4.3.1功能模块图图4-3功能模块图4.3.2界面设计1)如图4.4所示,首次登录,系统提供默认用户名admin及密码123456:图4-4登陆界面2)如图4.5所示,进入登陆界面后,请及时更改默认密码:图4-5密码更改界面3) 当操作过程中需要离开时,可以将系统挂起。可以点击工具栏的“锁定”按钮,也可以在菜单栏“系统”选项中选择“离开挂起”,如图4.6所示:图4-6锁定界面4)点击后,出现重新登录界面,输入正确信息登录,如图4.7所示:图4-7重新登录界面4.4人事管理设计该模块为“人事管理模块”,包括“档案管理、考勤管理、调动管理、奖惩管理、假期管理、加班管理”六部分
31、的内容。其中“档案管理”又包括了“新增、详细信息、删除、查找”等内容,主要记录了员工的姓名、年龄、部门等基本信息;“考勤管理”记录了员工的考勤日期及惩罚金额;“调动管理”是对于员工的部门调动的记录;“奖惩管理”记录了员工奖励或惩罚的金额以及日期和经办人;“假期管理”是对于员工休假时工资的记录和管理;“加班管理”记录了员工的加班日期和加班费。4.4.1功能模块图 图4.8人事管理功能模块图4.4.2界面设计 进行基本的员工档案管理、调动管理及日常管理时,选择“人事管理”模块,如图4.16:图4.9人事管理界面 (1)档案管理有添加、查看、删除、查找功能图4.10人事管理之档案管理界面 添加员工要
32、填写必填信息及可选信息:图4.11员工添加界面 进行查找时,提供精确查找及模糊查找,有3个可选条件:图4.12员工查询界面(2)调动管理对员工进行基本的部门调动管理:先选定一条员工记录图4.13人事管理之调动管理界面然后进行调动操作图4.14员工部门调动界面(3)考勤管理对员工进行考勤管理:先选定一条员工记录图4.15人事管理之考勤管理界面添加考勤记录图4.16考勤记录添加界面(4)奖惩管理、假期管理、加班管理的操作与考勤管理类似。4.5工资管理设计该模块为“工资管理”模块,其中包括“员工月底结账、清理过期数据、月初更新工资记录”三部分的内容。“员工月底结账”是对员工的基本工资、奖惩工资、加班
33、补贴、考勤罚金等各项工资的一个总和,计算出员工的月工资总额;“清理过期数据”分别有清理六个月、一年以上、两年以上的工资记录,该功能可减少数据库的内存,以防内存过多而出现差错;“月初更新记录”可以即使更新员工的工资信息,以防工资计算出现差错。4.5.1功能模块图图4.17工资管理之功能模块图4.5.2界面设计进行结账及工资数据清理:图4.18工资管理界面(1)如图4.18所示,结账功能对应本月每位员工的工资记录进行结账操作,可以提前结账,但要注意:结账后不再显示,且提前结账后新添加的数据不再更新图4.18工资管理之结账管理界面(2)月初更新工资记录,注意必须在每月前3天进行,更新成功后提示:(3
34、)如图4.19所示,进行数据清理时,选择清理数据的时间范围,然后确认进行清理:图4.19过期数据清理界面第5章 测试软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。软件测试工程师是指理解产品的功能要求,并对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,写出相应的测试规范和测试用例的专门工作人员。简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。由开发人员来测试自己的
35、代码是一件很不妥当的事情。开发和测试生来就是不同的活动。开发是创造或者建立某种事物的行为,如一个功能模块或整个系统。而测试的重要目的是证实一个模块或者一个系统工作不正常。这两个活动之间有着本质的矛盾。一个人不太可能把两个截然对立的角色都扮演地很好,因此应当限制开发人员在测试中的参与,给他们比较合适的任务是进行最底层的测试单元测试。当一个程序员完成了设计与编写程序的建设性工作后,要一夜之间突然改变他的观点,设法对程序形成一个完全否定的态度,那是非常困难的。所以,大部分程序员都由于不能使自己进入必要的精神状态(不是抱着要揭露出自己程序中错误的态度),就不能有效的测试自己的程序。除了这个心理学问题之
36、外,还有一个重要的问题:程序中可能包含由于程序员对问题的叙述或说明的误解而产生了错误。如果是这种情况,当程序员测试自己的程序时,往往还会带着同样的误解致使问题难以发现。这次对软件测试主要使用的是等价类法:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试
37、的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。无效等价类是指与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。划分等价类的方法:1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0100;2)在输入条件规定了输入值的集合或者规
38、定了必须如何的条件的情况下,可确立一个有效等价类和一个无效等价类;根据个人完成的项目任务主要需要进行的系统测试包含对用户登陆的测试,用户添加测试,用户信息修改测试,员工工资查询测试,员工工资增加测试,记录取消测试,主界面链接测试,测试过程如表5.1所示表5.1测试预测用表序号测试用例标题预测结果预测结果说明1用户登陆通过数据库链接成功2用户添加通过添加信息正确数据库添加成功3用户信息修改通过数据库信息修改成功4工资查询通过数据库链接成功5工资增加通过数据库信息添加正确6取消记录通过删除记录操作成功7主界面链接通过链接代码正确通过对软件功能的逐步测试,测试的的用例如用户登陆的测试,用户添加测试,
39、用户信息修改测试,员工工资查询测试,员工工资增加测试,记录取消测试,主界面链接测试,其结果如表5.2所示:表5.2测试结果表序号测试用例标题测试结果测试结果说明1用户登陆通过数据库链接成功2用户添加通过添加信息正确数据库添加成功3用户信息修改通过数据库信息修改成功4工资查询通过数据库链接成功5工资增加通过数据库信息添加正确6取消记录通过删除记录操作成功7主界面链接通过链接代码正确第6章 结束语为期几个月的实训就要结束了,作为一名大四的学生,我感觉时光荏苒,稍纵即逝!在之前的三年里我学习了计算机理论知识,同时也让我爱上了编程,不管自己底子多么薄弱,我还是选择继续编程下去,于是我就在我现在这家软件
40、公司实训了,并且实训快要结束。可能是大学里把梦想编织的太美好,而当走向社会,发现现实把美好的的梦打碎了,一切在大学里憧憬的未来一时不知道怎样定格。心情黯然了,心中有一种说不出的怨气,但我们终归要回到现实,要回到生活,一切的美好梦想再次从零开始编织,变换角色也就这样开始了。 “纸上得来终觉浅, 绝知此事要躬行。”我想每一个走过来的大学生都会用到这个词,无非就是早晚而已!大学里学的都是一些理论知识,我感觉很重要,这是对的,到了社会,这些是基本的就像我们认识汉字一样,大学生的身份没有得到美好的尊重和回馈这是没有在软件行业创造价值的原因,这怪我们吗,我说这不怪我们,大学里我们学习的不全是技术,还有我们
41、的人文修养,道德素养等,这些不是能用钱来衡量的,我们想了好多,我们学了好多,只是进入社会,就必须挣钱的想法和行为要求跟我们的大学出身不怎么合适,我们要怨恨吗,我想我们不必要。大学有大学的道理,不怪大学;社会有社会的道理,也不怪社会,生活不就是这样吗? 好吧,说过了角色转变,就该说说收获了吧,短短过去几个月的实训,我无论是心态上,还是技术上都上进了好多,我对自己有了新的认识及前进的方向。首先是心态的锻炼,让我适应了这个叫做社会的社会,我们不要急躁,不要傲气,同事的一句不理解很正常,经理的一时疏忽在所难免,再说我们认为的吃亏大多数是不正确的,相信吃亏是福,相信每一次挫折都是锻炼,相信每一次委屈都是
42、成长,这样我们还怕啥,我们还怕不成功吗?然后是责任,进入了社会,进入了公司,工作就是你的使命,任务就是你的责任,你得担得起,要不就不担,能担起多大责任,才决定你职位能有多高。可能我们刚接触到的活不是我们感兴趣的,但请记住,不要抱怨,没有一家公司是会拿着你的兴趣来开公司的,是你还没有发现工作中的兴趣,就像你没有发现美一样,但你有眼睛,何不用慢慢发现来代替无故抱怨呢?可能还会有人说这工作压根不是我想干的,我想你更不应该抱怨了,你走就是了,你走比你抱怨这么多对大家都有益。说到这,就到了最后我要说的兴趣,我感觉兴趣是个成功的引子,挖掘兴趣比挖掘潜力更重要,有兴趣才有动力,动力才能驱使你正确前进。工作中
43、有兴趣才有意义,记得马云说过,工作本身是没有意义的事情,需要你来赋予它意义,兴趣不也是这样吗?参考文献*附录A:主要源代码登录主要代码:void CLoginDlg:OnLoginButton() /登录按钮CRecordset m_recordset(&m_database);CString csSQL;UpdateData(TRUE);csSQL.Format(select * from USER_PWD where USER = %s AND PWD = %s,m_UserName,m_Password);m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,
44、csSQL); /打开记录集if(m_recordset.GetRecordCount() = 0)if(m_nTimes 3) /允许连续重试登录3次MessageBox(登录失败!r请检查用户名或密码是否正确。,注意:,MB_OK);m_nTimes +;elseMessageBox(_你的权限不够,请与管理员联系!,注意:,MB_OK);m_database.Close();CDialog:OnCancel();elseCDialog:OnOK();void CLoginDlg:OnCancelButton() /取消登录按钮CDialog:OnCancel();void CLoginDlg:OnCancel() /重载Esc按钮OnCancelButton();void CLoginDlg:OnOK() /重载Enter按钮OnLoginButton();人事管理主要代码:档案管理:void CPa
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100