毕业设计(论文)-基于JavaEE网上银行交易系统.doc_第1页
毕业设计(论文)-基于JavaEE网上银行交易系统.doc_第2页
毕业设计(论文)-基于JavaEE网上银行交易系统.doc_第3页
毕业设计(论文)-基于JavaEE网上银行交易系统.doc_第4页
毕业设计(论文)-基于JavaEE网上银行交易系统.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全套设计加扣 3012250582 湖湖南南软软件件职职业业学学院院 毕业设计毕业设计 毕毕业业选选题题 基于 JavaEE 网上银行交易系统 指指导导教教师师 学学生生姓姓名名 院院系系名名称称 软件工程 专专业业班班级级 Java1304 班 学学生生学学号号 提提交交日日期期 2015 年 12 月 19 日 全套设计加扣 3012250582 i 目目 录录 第一章第一章 项目概述项目概述 1 1 1 1 现系统概述 1 1 2 现系统织机构 2 第二章第二章 系统需求分析系统需求分析 3 3 2 1 需求陈述 3 2 2 USE CASE建模 4 第三章第三章 系统架构设计系统架构设计 5 5 3 1 架构设计目标 5 3 2 系统架构设计 6 第四章第四章 系统详细设计系统详细设计 1 13 3 4 1 系统模块设计 14 4 1 1 登陆 14 4 1 2 注册用户 15 4 2 数据库设计 16 第五章第五章 编码编码 1 17 7 5 1 概述开发工具及编程脚本 17 5 1 1 JSP 技术 18 5 1 2 JAVABEAN技术 19 5 1 3 JDBC 技术 20 全套设计加扣 3012250582 ii 第六章第六章 系统调试与测试系统调试与测试 2 25 5 6 1 程序调试 25 6 2 程序的测试 25 6 2 1 测试的重要性及目的 25 6 2 2 测试的步骤 28 6 2 3 测试的主要内容 29 结束语结束语 3 30 0 参考文献参考文献 3 31 1 致谢致谢 3 32 2 全套设计加扣 3012250582 iii 全套设计加扣 3012250582 1 第一章第一章 项目概述项目概述 1 11 1 现系统概述现系统概述 作为一家城乡并举 联通国际 功能齐备的大型国有商业银行 中国中国银行一 贯秉承以客户为中心的经营理念 坚持审慎稳健经营 可持续发展 立足县域和城市 两大市场 实施差异化竞争策略 着力打造 伴你成长 服务品牌 依托覆盖全国的 分支机构 庞大的电子化网络和多元化的金融产品 致力为广大客户提供优质的金融 服务 与广大客户共创价值 共同成长 截至 2007 年末 全行总资产达到 60501 27 亿元人民币 各项存款 52833 14 亿元人民币 各项贷款 34801 05 亿元人民币 由于现在各大银行的全国联网 异地存款 取款 存钱 在全国任何地方可以及 时查询自己帐户等 甚至在家里 打开电脑 登录自己的网上银行 还可以实现足不 出户 了解自己帐户信息 给人们的生活和社会的经济带来了空前的变化 在这样的一个背景下 为了适应网络的普及以及当今社会发展的需要 本次我利 用毕业之际 设计和模拟网上银行 以备以后作技术上的参考 出于系统的安全性等 因素的考虑 一个系统设计之前 需要进行方案和技术论证 所以不是一朝一夕能解 决的 所以本次设计的系统主要是模拟中国中国银行的网上银行电子交易 为广大的 客户提供查询余额 取款 转账等功能 1 21 2公司组织机构公司组织机构 目前公司实行董事长监管下的总经理负责制 总经理和办公室负责协调技术部门 人事部门和财务部门之间相互合作 整个系统将上述部门连接成一体 共同协作完成 全套设计加扣 3012250582 2 整个银行的运作 系统实施由总经理牵头 各部门主管领导负责 部门业务员配合系 统研发人员来完成 如下图 1 1 所示 图图 1 11 1 公司组织机构图公司组织机构图 中国银行 财 务 科 人 事 科 宣 传 科 办 公 室 工 会 分 行 技 术 科 全套设计加扣 3012250582 3 第二章第二章 系统需求分析系统需求分析 2 12 1 需求陈述需求陈述 通常 需求陈述的内容包括 问题范围 功能需求 性能需求 应用环境及假设 条件等 总之 需求陈述应该阐明 做什么 而不是 怎样做 它应该描述用户的需 求而不是提出解决问题的方法 应该指出哪些是系统必要的性质 哪些是任选的性质 应该避免对设计策略施加过多的约束 也不要描述系统的内部结构 因为这样做将限 制实现的灵活性 对系统性能及系统与外界环境交互协议的描述 是合适的需求 此 外 对采用的软件工程标准 模块构造准则 将来可能做的扩充以及可维护性要求等 方面的描述 也都是适当的需求 下面以中国银行网上银行中的电子交易模块为例说 明如何进行系统需求陈述 本系统需要具有以下功能 1 由于一项新的软件在被使用之前 对于使用者来说是陌生和崭新的 所以要求系 统具有良好的人机界面 2 能够实现转账功能 能成功的对各种信息进行查询及管理 3 查询数据方便 数据的稳定性和可靠性好 系统采用 B S 模式 整个系统最关键的就是数据库系统 一个强大的数据库可以 支持完善一个优秀的软件设计 通过软件系统与数据库系统的连接来实现通过软件界 面观察和处理操作数据 系统任务确定之后 下面的工作就是进行系统分析 面向对象的分析的主要任务是分析问题领域 找出问题解决方案 发现对象 分析 对象的内部构成和外部关系 建立软件系统的对象模型 分析问题领域是软件系统开发的一项基本工作 是项目开发之初必须首先进行的 重要工作 分析问题领域的结果是对问题领域的清晰 精确的定义 明确目标系统将 做什么 分析问题领域的主要任务是 对问题领域进行抽象 提出解决方案 对未来的系统 进行需求分析 确定系统的职责范围 功能需求 性能需求 应用环境及假设条件等 全套设计加扣 3012250582 4 实施面向对象分析的一般步骤如下 1 分析用户需求 建立 Use Case 并通过用例图来描述用户的需求 2 通过建立域模型以识别类与对象 从而识别系统中的各种对象 3 确定对象的内部特征 从而定义出各个属性与服务 以进一步细化类的结构 4 识别对象之间的关系并使用设计模式对类的结构进行优化和改造 5 获得对象之间的行为关系 绘制出各种动态图形 顺序图 协作图 状态图等 全套设计加扣 3012250582 5 第三章第三章 系统架构设计系统架构设计 软件的系统架构是指通过某种特定的技术平台 完成软件系统整体功能的开发过 程 也可以通俗地理解为 总体设计和总体结构布局 一般而言 软件系统架构有两个要素 1 它是一个软件系统从整体到部分的最高层次的划分 2 建造一个系统所做出的最高层次的 以后难以更改的 商业和技术的决定 3 13 1架构设计目标架构设计目标 软件架构设计要达到如下的目标 1 可行性 Feasible 架构具有可行性是架构设计的基石 2 可靠性 Reliable 软件系统对于用户的商业经营和管理来说极为重要 因 此软件系统必须非常可靠 3 安全行 Secure 软件系统所承担的交易的商业价值极高 系统的安全性非 常重要 4 可定制化 Customizable 同样的一套软件 可以根据客户群的不同和市场 需求的变化进行调整 5 可扩展性 Extensible 在新技术出现的时候 一个软件系统应当允许导入新 技术 从而对现有系统进行功能和性能的扩展 6 可维护性 Maintainable 软件系统的维护包括两方面 一是排除现有的错误 二是将新的软件需求反映到现有系统中去 一个易于维护的系统可以有效地降低技术 支持的花费 7 可升级性 Scalable 软件必须能够在用户的使用率 用户的数目增加很快 的情况下 保持合理的性能 只有这样 才能适应用户的市场扩展得可能性 8 客户体验 Customer Experience 软件系统必须易于使用 软件的最终用户 很可能是不具有计算机专业技术的人员 3 23 2 系统架构设计系统架构设计 全套设计加扣 3012250582 6 下面我们将根据架构设计原则和信息系统原理来建立系统的架构设计模型 将信 息系统中比较关心的对象分层 可分为三层 用户界面层 业务层 数据访问层 如 下图 3 2 所示 再把各层中的一些公共部分提出来 权限管理 异常处理 这样得 到包图如图 3 2 1 所示 用用户户界界面面层层 业业务务逻逻辑辑层层 数数据据访访问问层层 ASP NET WEB Forms User Interface Processing Enterprise Services Business Components Bisiness Entities Dal InterfaceDal Factory SQL Server Dal SQL Server DAAB 图图3 23 2 系统体系架构图系统体系架构图 用用户户界界面面业业务务逻逻辑辑 权权限限管管理理 数数据据访访问问 异异常常处处理理 图图3 2 13 2 1 电子交易模块包图电子交易模块包图 全套设计加扣 3012250582 7 1 用户界面包 用户界面包的职责是 1 与用户的交互 接收用户的各种输入以及输出各种提示信息或处理结果 2 对于输入的数据进行数据校验 过滤非法数据 3 向业务处理对象发送处理请求 用户界面包图展开如图 3 3 所示 用用户户界界面面 输入 输出 数据效验 发送业务处理请求 图图 3 33 3 用户界面包展开图用户界面包展开图 用户界面包包含的类见图 2 4 数据效验 业务处理 输入输出元素 业务代理对象 用用户户界界面面类类 输输入入界界面面输输出出界界面面 全套设计加扣 3012250582 8 图图 3 43 4 用户界面类图用户界面类图 2 业务逻辑包 业务逻辑包的职责是 1 实现各种业务处理逻辑或处理算法 2 验证请求者的权限 3 向数据访问对象发送数据持久化操作的请求 4 向用户界面层返回处理结果 业务逻辑包图展开如图 3 5 所示 业业务务逻逻辑辑 实现各种业务处理逻辑或处理算法 验证请求者的权限 向数据访问对象发送数据持久化操作的请求 向用户界面层返回处理结果 图图 3 53 5 业务逻辑包图展开业务逻辑包图展开 业务逻辑包包含的类见图 3 6 业务处理 数据库连接对象 数据库访问对象 业业务务逻逻辑辑类类 业务处理 权限管理对象 业务对象 业业务务代代理理类类 图图 3 63 6 业务逻辑类图业务逻辑类图 全套设计加扣 3012250582 9 3 数据访问包 数据访问层的职责是 1 实现数据的持久化操作 2 实现事务处理 数据访问包图展开如图 2 7 所示 数数据据访访问问 实现数据的持久化操作 实现事务处理 图图 3 73 7 数据访问包图展开数据访问包图展开 数据访问包包含的类见图 3 8 开始事务 提交事务 回滚事务 数数据据库库连连接接类类 读取 写入 数据库连接对象 数数据据库库访访问问类类 图图 3 83 8 数据访问类图数据访问类图 全套设计加扣 3012250582 10 对于每一个业务处理中需要持久化操作的对象都可以对应为一个数据库访问对象 在很多业务处理中需要请求多个数据库访问对象来进行数据的读写操作 而这些操作 又必须在同一个事务中 这时需要用同一个数据库连接对象来进行统一的事务处理 这里的数据库连接类的创建用到了单件 Singleton 模式 保证一个类仅有一个实例 一个客户在同一时刻只能用一个数据库连接对象 4 权限管理包 权限管理的主要职责是 1 验证请求者的请求权限 2 提供请求者的权限列表 权限管理包图展开如图 3 9 所示 权权限限管管理理 验证请求者的请求权限 提供请求者的权限列表 图图 3 93 9 权限管理包图展开权限管理包图展开 权限管理包包含的类见图 3 10 登陆 退出 是否已构建权限列表 构建权限列表 操作员代码 操作员名称 权限列表 操操作作员员类类 验证权限 in 操作员代码 in 权限列表 获取权限列表 in 操作员代码 操作员对象 权权限限管管理理类类 图图 3 103 10 权限管理类图权限管理类图 全套设计加扣 3012250582 11 5 异常处理包 异常处理的职责 1 汇报运行时的详细异常信息 2 记录异常处理日志 异常处理包图展开如图 3 11 所示 异异常常处处理理 汇报运行时的详细异常信息 记录异常处理日志 图图 3 113 11 异常处理包图展开异常处理包图展开 异常处理包包含的类见图 3 12 异异常常处处理理实实现现 异常处理对象 异异常常处处理理类类 异异常常处处理理实实现现异异常常处处理理实实现现异异常常处处理理实实现现异异常常处处理理实实现现异异常常处处理理实实现现异异常常处处理理实实现现 图图 3 123 12 异常处理类图异常处理类图 全套设计加扣 3012250582 12 因为异常处理类型比较多 如 系统异常 数据库异常 业务逻辑异常等 针对 不同类型的异常处理方式也容易变 如 显示错误 记录文本日志 记录数据库日志 等 所以这里使用了桥接 Bridge 模式来实现 使各部分的变化比较独立 将包图展开 得到类图 它是架构的静态结构图 表达了各个类之间的静态联系 中国银行网上银行中的电子交易模块系统架构类图 如下图 3 13 所示 异异常常处处理理实实现现 异常处理对象 异异常常处处理理类类 异异常常处处理理实实现现异异常常处处理理实实现现异异常常处处理理实实现现异异常常处处理理实实现现异异常常处处理理实实现现异异常常处处理理实实现现 登陆 退出 是否已构建权限列表 构建权限列表 操作员代码 操作员名称 权限列表 操操作作员员类类 读取 写入 数据库连接对象 数数据据库库访访问问类类 验证权限 in 操作员代码 in 权限列表 获取权限列表 in 操作员代码 操作员对象 权权限限管管理理类类 输输入入界界面面 输输出出界界面面 数据效验 业务处理 输入输出元素 业务代理对象 用用户户界界面面类类 业务处理 数据库连接对象 数据库访问对象 业业务务逻逻辑辑类类 业务处理 权限管理对象 业务对象 业业务务代代理理类类 开始事务 提交事务 回滚事务 数数据据库库连连接接类类 图图 3 133 13 系统架构类图系统架构类图 全套设计加扣 3012250582 13 第四章第四章 系统详细设计系统详细设计 4 14 1 系统模块设计系统模块设计 包括登陆设计 注册设计以及业务模块设计 4 1 1 登陆登陆 在用户登录界面 在用户名对应的文本框中输入用户名 在密码对应的文本框中 输入密码 如果用户名和密码同时与数据库中的用户名和密码相对应 点击 确定 后进入系统的主界面 如果输入的信息不正确 则给出提示 输入 用户名和密码 处理 校检字符的有效性 用户要登录本系统需要提供用户名和密码 在这里就 是要检验用户是否满足输入的要求 即检验用户名和密码文本框是否为空 若为空 则提示用户输入用户名和密码 检验用户名是否存在或密码是否正确 即是否存在用 户输入的用户名 并且密码是否正确 输出 登录成功 进入用户的系统使用资源页面 不成功则显示错误信息页面 如下图 4 1 1 所示 全套设计加扣 3012250582 14 图图 4 1 14 1 1 登陆界面登陆界面 4 1 2 注册用户注册用户 输入 用户的用户名 姓名 密码 身份证 性别 年龄 生日 处理 添加会员信息 在这里可以添加会员 添加信息有 用户的户名 姓名 密码 身份证 性别 年龄 生日 输出 添加成功 提示成功信息 不成功则显示错误的信息页面 流程图如下 4 1 2 所示 全套设计加扣 3012250582 15 图图 4 1 24 1 2 界面如下图 4 1 3 所示 全套设计加扣 3012250582 16 帐号卡号密码开户时间 用户编号 密码性别 联系电话 图图 4 1 34 1 3 4 24 2 数据库设计数据库设计 关系型数据库是目前应用最广泛的数据库 既然是面向对象系统设计 数据库设 计当然也要是面向对象的 现在要考虑如何对类进行持久化操作 即如何将对象类映 射到关系数据库的二维表 目前可以采用数据库建模工具来实现 象 PowerDesigner Rose 等 4 3 1 ER 图图 帐户实体 E R 图如图所示 图图 4 3 1 账户实体账户实体 E R 图图 操作员实体 E R 图如图所示 帐户实体 操作员实体 全套设计加扣 3012250582 17 第五章第五章 编码编码 5 15 1 概述开发工具及编程脚本概述开发工具及编程脚本 使用 xml html asp xml 以及 MyEclipse 开发工具 5 1 1 JSP 技术技术 JSP 是由 Sun 微系统公司于 1999 年 6 月推出的一项技术 是基于 JavaServlet 以及 整个 Java 体系的 Web 开发技术 利用这一技术可以建立先进 安全和跨平台的动态网 站 JSP 技术在多个方面加速了动态 Web 页面的开发 与微软公司的 ASP 技术相比 JSP 具有如下优点 1 开放的技术 JSP 技术基于平台和服务器的相互独立 技术支持来自广泛的 专门的 各种工具包 有服务器的组件和数据库产品开发商提供 相比之下 ASP 技 术主要依赖 MICROSOFT 支持 2 平台和服务器的独立性 JSP 编写的代码可运行在任何符合 JAVA 语法结构的 环境中 这样 JSP 就能够运行在多种 WEB 服务器上并支持来自多家开发商提供的各种 工具包 3 开放的开发过程 开放的源码 自 1995 年以来 SUN 用开放过程方法同国际 JAVA 组织合作开发和修改 JAVA 技术和规范 4 JSP 标记可扩充性 JSP 技术能够为开发者扩展 JSP 标记 充分利用与 XML 兼 容的标记技术强大的功能 大大减少对脚本语言的依赖 5 JSP 跨平台的可重用性 JSP 组件 EJB JavaBean 或定制的 JSP 标记 都是跨 平台可重用的 5 1 2 JavaBean 技术技术 全套设计加扣 3012250582 18 JSP 作为一个很好的动态网站开发语言得到了越来越广泛的应用 在各类 JSP 应用 程序中 JSP JavaBean 的组合成为了一种事实上最常见的 JSP 程序的标准 JavaBean 是描述 Java 的软件组件模型 有点类似于 Microsoft 的 COM 组件概念 在 Java 模型中 通过 JavaBean 可以无限扩充 Java 程序的功能 通过 JavaBean 的组合可以快速的生成 新的应用程序 对于程序员来说 最好的一点就是 JavaBean 可以实现代码的重复利用 另外对于程序的易维护性等等也有很重大的意义 JavaBean 通过 Java 虚拟机 Java Virtual Machine 可以得到正确的执行 具有平台无关性 一个 JavaBean 有三个部分组成 属性 Property Bean 的属性就是对象的属性 但提供了属性读取和设置的接口支持 例如一个时 钟 Bean 可以有时区和镇铃属性 日历 Bean 可以有年份和月份属性 每个属性通常遵 守简单的方法命名规则 这样可以很方便的找出 Bean 提供的属性 然后查询属性值或 改变属性值 对 Bean 进行操作 方法 Method 全套设计加扣 3012250582 19 由于 Bean 本身是 Java 对象 调用这个对象的方法是与其交互作用的唯一途径 JavaBean 严格遵守面向对象的类设计逻辑 不让外界访问其任何实例字段 没有 Public 字段 这样 方法调用的是接触 Bean 的唯一途径 事件 Event Bean 与其他软件组件交流信息的主要方式是发送和接收事件 这与对象之间通过 消息通信类似 JavaBean 传统的应用在于可视化的领域 如 AWT 下的应用 自从 JSP 诞生后 JavaBean 更多的应用在非可视化领域 在服务器端应用方面表现出来了越来越强的生 命力 利用非可视化 JavaBean 来封装事务逻辑 数据库操作等等 可以很好地实现 业务逻辑和前台程序 如 JSP 的分离 使得系统具有更好的健壮性和灵活性 5 1 3 JDBC 技术技术 JDBC 是 Java 的开发者 Sun 的 JavaSoft 公司制定的 Java 数据库连接 JavaDataBaseConnectivity 技术的简称 是为各种常用数据库提供无缝联接的技术 JDBC 在 Web 和 Internet 应用程序中的作用和 ODBC 在 Windows 系列平台应用程序中 的作用类似 JDBC 有一个非常独特的动态连接结构 它使得系统模块化 使用 JDBC 来完成对数据库的访问包括以下四个主要组件 Java 的应用程序 JDBC 驱动器管理器 驱动器和数据源 简单地说 JDBC 能完成下列三件事 1 同一个数据库建立连接 2 向数据库发送 SQL 语句 3 处理数据库返回的结果 JDBC 是一种可用于执行 SQL 语句的 JavaAPI ApplicationProgrammingInterface 应用程序设计接口 它由一些 Java 语言写的类 界面组成 JDBC 给数据库应用开发人员 数据库前台工具开发人员提供 了一种标准的应用程序设计接口 使开发人员可以用纯 Java 语言编写完整的数据库应 用程序 全套设计加扣 3012250582 20 通过使用 JDBC 开发人员可以很方便地将 SQL 语句传送给几乎任何一种数据库 也就是说 开发人员可以不必写一个程序访问 Sybase 写另一个程序访问 Oracle 再 写一个程序访问 Microsoft 的 SQLServer 用 JDBC 写的程序能够自动地将 SQL 语句传 送给相应的数据库管理系统 DBMS 不但如此 使用 Java 编写的应用程序可以在任 何支持 Java 的平台上运行 不必在不同的平台上编写不同的应用 Java 和 JDBC 的结 合可以让开发人员在开发数据库应用时真正实现 WriteOnce RunEverywhere Java 具有健壮 安全 易用等特性 而且支持自动网上下载 是一种很好的与数 据库线连接而使用的编程语言 它所需要的是 Java 应用如何同各种各样的数据库连接 JDBC 正是实现这种连接的关键 JDBC 扩展了 Java 的能力 如使用 Java 和 JDBCAPI 就可以公布一个 Web 页 页 中带有能访问远端数据库的 Applet 或者企业可以通过 JDBC 让全部的职工 他们可 以使用不同的操作系统 如 Windwos Machintosh 或 UNIX 在 Intranet 上连接到几个 全球数据库上 而这几个全球数据库可以是不相同的 所有的数据库的对象和方法都 在 java sql 里面 所以首先要 import java sql 要想连接数据库 首先要将驱动程序 调入 Class forName sun jdbc odbc JdbcOdbcDriver 这是 JDBC ODBC 的驱动程序 要想连接一个指定的数据库 必须创建 Connection 类的一个实例 String url jdbc odbc Grocery prices Connection con DriverManager getConnection url 注意在此用到的数据库名称是在 ODBC 设置控制面板中输入的数据资源名 URL 语法对于不同类型的数据库会很不一样 语法是这样的 jdbc subprotocol subname 开头都是 JDBC 后面是子协议 然后是 ODBC 名称 若要使用纯 JDBC 驱动程序 必须安装第三方软件提供的驱动程序 一般在数据 库的官方网站上可以找到这里不做讨论 本系统采用 JDBC ODBC 的驱动程序连接数据库 并使用 JavaBean 组件 有效的 避免了代码的重复 具体过程如下 package exam 全套设计加扣 3012250582 21 import java sql public class ExamBean String strDBDriver sun jdbc odbc JdbcOdbcDriver JDBC ODBC 驱动程序 String strDBUrl jdbc odbc exam private Connection conn null private Statement stmt null ResultSet rs null public ExamBean try Class forName strDBDriver catch java lang ClassNotFoundException e System err println exam e getMessage public ResultSet executeQuery String sql rs null try conn DriverManager getConnection strDBDriver 创建数据库连接对象 stmt conn createStatement ResultSet TYPE SCROLL SENSITIVE ResultSet CONCU R UPDATABLE 支持数据回滚 全套设计加扣 3012250582 22 rs stmt executeQuery sql catch SQLException ex System err println aq executeQuery ex getMessage return rs public void executeUpdate String sql stmt null try conn DriverManager getConnection strDBDriver stmt conn createStatement stmt executeUpdate sql stmt close catch SQLException ex System err println aq executeQuery ex getMessage public void closeStmt try stmt close catch SQLException e 全套设计加扣 3012250582 23 e printStackTrace public void closeConn try conn close catch SQLException e e printStackTrace 全套设计加扣 3012250582 24 第六章第六章 系统调试与测试系统调试与测试 6 16 1 程序调试程序调试 在设计系统的过程中 存在一些错误是必然的 对于语句的语法错误 在程序运 行时自动提示 并请求立即纠正 因此 这类错误比较容易发现和纠正 但另一类错 误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误 结果 这类错误隐蔽性强 有时会出现 有时又不出现 因此 对这一类动态发生的 错误的排查是耗时费力的 6 26 2 程序的测试程序的测试 测试包括测试的重要性 测试的步骤 和测试的内容 6 2 1 测试的重要性及目的测试的重要性及目的 实际上 对于软件来讲 不论采用什么技术和什么方法 软件中仍然会有错 采用 新的语言 先进的开发方式 完善的开发过程 可以减少错误的引入 但是不可能完 全杜绝软件中的错误 这些引入的错误需要测试来找出 软件中的错误密度也需要测 试来进行估计 用在测试上的开销要占 30 到 50 如果把维护阶段也考虑在内 讨 论整个软件生存期时 测试的成本比例也许会有所降低 但实际上维护工作相当于二 次开发 乃至多次开发 其中必定还包含有许多测试工作 在实践中 软件测试的困 难常常使人望而却步或敷衍了事 这是由于对测试仍然存在一些不正确的看法和错误 的态度 这包括 全套设计加扣 3012250582 25 1 认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感 2 以发现软件错误为目标的测试是非建设性的 甚至是破坏性的 测试中发现错 位是对责任者工作的一种否定 3 测试工作枯燥无味 不能引起人们的兴趣 4 测试工作是艰苦而细致的工作 5 对自己编写的程序盲目自信 在发现错误后 顾虑别人对自己的开发能力的看 法 这些观点对软件测试工作是极为不利的 必须澄清认识 端正态度 才可能提高 软件产品的质量 2 测试的目的 如果测试的目的是为了尽可能多地找出错误 那么测试就应该直接针对软件比较 复杂的部分或是以前出错比较多的位置 1 软件测试是为了发现错误而执行程序的过程 2 测试是为了证明程序有错 而不是证明程序无错误 3 一个好的测试用例是在于它能发现至今未发现的错误 4 一个成功的测试是发现了至今未发现的错误的测试 这种观点可以提醒人们测试要以查找错误为中心 而不是为了演示软件的正确功 能 但是仅凭字面意思理解这一观点可能会产生误导 认为发现错误是软件测试的唯 一目 查找不出错误的测试就是没有价值的 事实并非如此 首先 测试并不仅仅是为了要找出错误 通过分析错误产生的原因和错误的分布 特征 可以帮助项目管理者发现当前所采用的软件过程的缺陷 以便改进 同时 这 种分析也能帮助我们设计出有针对性地检测方法 改善测试的有效性 其次 没有发 现错误的测试也是有价值的 完整的测试是评定测试质量的一种方法 6 2 2 测试的步骤测试的步骤 全套设计加扣 3012250582 26 与开发过程类似 测试过程也必须分步骤进行 每个步骤在逻辑上是前一个步骤 的继续 大型软件系统通常由若干个子系统组成 每个子系统又由若干个模块组成 因此 大型软件系统的测试基本上由下述几个步骤组成 1 模块测试 在这个测试步骤中所发现的往往是编码和详细设计的错误 2 系统测试 在这个测试步骤中发现的往往是软件设计中的错误 也可能发现需 求说明中的错误 3 验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误 6 2 3 测试的主要内容测试的主要内容 1 单元测试 单元测试集中在检查软件设计的最小单位 模块上 通过测试发现实现该模块的 实际功能与定义该模块的功能说明不符合的情况 以及编码的错误 全套设计加扣 3012250582 27 2 集成测试 集成测试是将模块按照设计要求组装起来同时进行测试 主要目标是发现与接口 有关的问题 如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响 把子 功能组合起来可能不产生预期的主功能 个别看起来是可以接受的误差可能积累到不 能接受的程度 全程数据结构可能有错误等 3 确认测试 确认测试的目的是向未来的用户表明系统能够像预定要求那样工作 经集成测试 后 已经按照设计把所有的模块组装成一个完整的软件系统 接口错误也已经基本排 除了 接着就应该进一步验证软件的有效性 这就是确认测试的任

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论