软件测试第03课-软件生命周期的讨论.ppt_第1页
软件测试第03课-软件生命周期的讨论.ppt_第2页
软件测试第03课-软件生命周期的讨论.ppt_第3页
软件测试第03课-软件生命周期的讨论.ppt_第4页
软件测试第03课-软件生命周期的讨论.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

软件测试 软件生命周期的讨论 2020 2 13 讨论软件开发生命周期讨论项目团队中的不同角色软件开发模型一个例子 小试牛刀 内容 2020 2 13 复习 软件生命周期的具体过程 2020 2 13 比尔盖子是一名建筑工人 起初只干一些比较简单的建筑工作凭个人技术和经验 不需要特别设计 一般都可以顺利完成此时就如同编写早期比较小的程序 软件开发过程 2020 2 13 由于工作业绩不错有一天他被通知 需要由他负责建造一间非常美丽而完整的房间工作变得复杂许多就像不断发展的软件一样 需要的功能越来越多 越来越复杂 软件开发过程 2020 2 13 软件复杂性图形用户界面客户 服务器结构分布式应用数据通信超大型关系型数据库 软件开发过程 2020 2 13 比尔首先想到这个任务需要更多的人手帮他一起来做于是他马上组成了自己真正的工作团队 项目团队中的角色 2020 2 13 需求分析师 项目经理 设计人员 软件架构师 项目团队 识别项目需求 能够正确管理客户的期望值 制定阶段性目标和项目总体控制计划 对项目进行全局管理和掌控 使项目达到预期的目标 得到客户的满意 角色职责 架构师需要参与项目开发的全部过程 包括需求分析 架构设计 系统实现 集成 测试和部署各个阶段 负责在整个项目中对技术活动和技术说明进行指导和协调 包括确认需求 系统分解 技术选型和制定技术规格说明 需求分析人员的工作是收集需求和分析需求 并与最终用户 产品经理保持联系 完成系统总体结构 功能模块设计 接口设计 数据库设计等方面的概要和详细设计 使开发人员遵循设计规范完成编码 编码 测试 项目团队中的角色 测试人员 开发人员 2020 2 13 例子 1 微软EXCHANGE2000SERVER的开发 项目经理 25人开发人员 140人测试人员 350人2 WINDOWS2000 项目经理 250人开发人员 1700人测试人员 3200人 项目人员构成比例 2020 2 13 软件开发过程 这次不能盲目开工 我们需要首先好好设计一下 构想分析设计构造评估 软件的制作过程也非常相似 2020 2 13 软件开发过程 软件开发 可行性研究与计划 需求分析 设计 开发 评估 测试 维护 建造房屋 构想 分析 设计 构造 评估 维护 2020 2 13 软件开发生命周期 软件生命周期 SDLC 的六个阶段 问题的定义及规划 软件设计 程序编码 软件测试 运行维护 需求分析 软件开发方与需求方共同讨论 主要确定软件的开发目标及其可行性 对软件需要实现的各个功能进行详细分析 对整个软件系统进行设计 如系统框架设计 数据库设计等等 软件设计一般分为总体设计和详细设计 好的软件设计将为软件程序编写打下良好的基础 在程序编码中必须要制定统一 符合标准的编写规范 以保证程序的可读性 易维护性 提高程序的运行效率 在软件设计完成后要经过严密的测试 以发现软件在整个设计过程中存在的问题并加以纠正 整个测试过程分单元测试 集成测试以及系统测试三个阶段进行 软件维护是软件生命周期中持续时间最长的阶段 在软件开发完成并投入使用后 由于多方面的原因 软件不能继续适应用户的要求 要延续软件的使用寿命 就必须对软件进行维护 软件的维护包括纠错性维护和改进性维护两个方面 2020 2 13 微软软件开发生命周期 软件生命周期 SDLC 的四个阶段 规划阶段 测试阶段 也叫稳定化阶段 产品发送 出品阶段 开发阶段 主要里程碑阶段 拟定基于客户数据的目标描述 基于目标描述的规格 特性说明和基于规格说明和特性优先级制定的进度表 规划阶段中最重要的事情是让整个产品组的成员对共同的目标形成共同的认同 微软的任何一个产品组在这个阶段都将根据特性将项目划分成若干个子项目 每一个子项目的完成就对应于一个里程碑 2 3个里程碑 测试人员对软件做各种各样的测试 其中开发和测试工作是始终并存进行的 测试人员发现Bug 开发人员解决Bug 测试人员再检测这个Bug是不是解决了 产品有了稳定的版本就进入最后的阶段 产品发送 出品阶段 2020 2 13 微软经典团队角色 产品规划产品管理程序经理开发人员测试人员可用性测试员Beta测试人员 本地化项目管理 用户教育 售后支持等 2020 2 13 以你之前做过的项目为例 说说你的项目中缺少软件开发流程的哪些环节 2020 2 13 软件开发过程模型 软件开发基本都需要经历软件开发过程中的几个步骤但这几个步骤具体如何实施 根据具体项目不同 也有所区别制作具体软件时 开发步骤的具体实施方法称为软件开发过程模型 软件开发过程模型 瀑布模型 螺旋模型 2020 2 13 瀑布模型 案例物流系统 瀑布模型也称为 线性顺序模型 将软件开发过程中每个阶段都清楚定义了起止点 并产生明确的交付成果以传递给下一阶段每个阶段之间通过文档进行沟通每个阶段都必需完成全部规定的任务 文档 后才能够进入下一个阶段 可行性研究与计划 需求分析 设计 开发 测试 维护 可行性研究报告 需求说明书 设计文档 程序 测试报告 2020 2 13 可行性研究与计划阶段 确定项目目的了解系统中客户的期望确定系统的规模论证项目可行性技术可行性经济可行性操作可行性社会可行性 2020 2 13 需求分析阶段 需求是产品的根源 需求工作的优劣对产品影响最大获取需求与用户交谈 向用户提问题 向用户群体发调查问卷参观用户的工作流程 观察用户的操作与同行 专家交谈 听取他们的意见分析已经存在的同类软件产品 提取需求从行业标准 规则中提取需求从Internet上搜查相关资料可能遇到的问题用户说不清楚需求误解需求分析需求功能需求记录在客户需求说明书中 2020 2 13 需求分析阶段 文档介绍 产品功能性需求 产品介绍 产品应当遵循的标准和规范 其他需求 需求说明书 产品非功能性需求 2020 2 13 需求分析阶段 2020 2 13 设计阶段 设计阶段的主要目的是根据用户的需要制定标准 划分并分配任务 设计GUI标准 设计数据库 设计过程模块 设计编码标准 构建原型 分配任务和监督任务 设计阶段涉及的活动 2020 2 13 开发阶段 开发阶段 对在原型创建阶段构建的用户界面进行最后的修改 构建数据库 通过添加代码使其具备功能 2020 2 13 评估 测试阶段 本阶段测试每个单元的功能 测试阶段涉及的活动 单元测试 数据验证测试 安全性测试 强度测试 集成测试 2020 2 13 维护阶段 本阶段为客户提供故障诊断支持网络电话上门本阶段还包括应用程序要求的任何软件升级版本补丁 2020 2 13 软件开发过程 比尔通过类似软件瀑布模型的方式成功了完成自己的建筑项目 2020 2 13 软件开发过程 这次将完成一栋更加复杂的建筑因为有了以前的经验 比尔感到很有信心就像我们的软件开始越来越庞大 由于成绩不错 比尔再次被通知 2020 2 13 软件开发过程 这次需要更多人 更复杂的分析 设计和建造过程 但在完成之前各种问题开始出现 2020 2 13 软件开发过程 之前设计时犯下一个比较小的错误 在建造时才被发现 已经变成了一个严重的错误必须停工回到设计阶段重新设计 重新建造在已经将房间格局建造得差不多时 用户又突然提出更改某处的要求 导致工程再次从设计开始虽然很努力工作 但还是工程超时房屋不能满足用户需要 2020 2 13 软件开发过程 工程失败的原因前期错误往往只有到了项目后期才能够被发现开始阶段的小错误被逐级放大 可能导致项目最终报废开发进度往往会被意外发生的问题所打乱 需要进行返工或其他一些额外的开发周期 造成项目延期或费用超支缺乏灵活性 不能适应用户需求的改变返回上一级的开发需要十分高昂的代价以上同样也是采用瀑布模型的软件项目的失败原因 2020 2 13 软件开发过程 瀑布模型适合开发规模比较小需求非常明确且很少更改瀑布模型是早期软件设计的主要手段 已经不太适合现在的项目需求不清晰 不稳定的项目如何完成呢 2020 2 13 原型模型 2020 2 13 原型模型 原型模型的优点快速建模 减少由于需求调研不充分 需求表述不明确带来的开发风险在需求阶段可以通过多次修改原型 得到明确的客户需求原型可以作为DEMO 可以理解成为演示模型原型模型的缺点不宜利用原型系统作为最终产品 采用原型模型开发系统 用户和开发者必须达成一致 原型被建造仅仅是用户用来定义需求 之后便部分或全部抛弃 最终的软件是要充分考虑了质量和可维护性等方面之后才被开发 2020 2 13 螺旋模型 需求分析 系统设计 开发 测试和维护 最终产品 风险分析 开始 2020 2 13 螺旋模型 每一圈是一个阶段 每个阶段就像一个小的瀑布模型 都要经历需求 分析 设计开发和测试在每个阶段中添加了风险分析的步骤每一圈都会产生一个可以发布的结果 作为这个产品最终产品的一个子集每个发布的结果都会马上反馈给客户 听取客户意见 从而尽早发现避免软件中的风险 2020 2 13 螺旋模型 螺旋模型的优点风险分析可使一些极端困难的问题和可能导致费用过高的问题被更改或取消用户评价为需求的变更带来柔性螺旋和瀑布的最大的差别就在于风险的暴露时间上螺旋模型的缺点需要开发人员具有相当丰富的风险评估经验和专门知识要求用户参与阶段评价 对用户来说比较困难 不易取得好的效果 2020 2 13 RUP模型 RUP rationalunifiedprocess 是有Rational公司开发并维护 与一系列软件开发工具紧密集成 以用例驱动 以体系结构为核心 迭代及增量的软件过程模型 2020 2 13 RUP模型 2020 2 13 RUP模型 迭代模型的优点针对大型的复杂的系统 逐步完善 降低了实施复杂度用户可在开发早期提出变更并进行修复 从而有效控制变更风险和代价可在早期增强用户的信心迭代模型的缺点要有专业的架构是 当模块间耦合度高时不适用已经确定的功能不允许做变更 不现实 2020 2 13 敏捷模型 敏捷开发是以人为核心 迭代 循序渐进的开发方法 在敏捷开发中 软件项目的构建被切分为多个子项目 各子项目的输出都经过测试 具备可集成和可运行的特征 2020 2 13 敏捷模型 敏捷模型的五个价值观 沟通简单反馈勇气谦逊 2020 2 13 总结 软件项目组中的人员分工软件开发过程可行性研究与计划需求分析设计开发测试维护软件开发模型 2020 2 13 小试牛刀 案例分析 对程序的描述 一个程序从一个输入对话框中读取三个整数值

温馨提示

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

评论

0/150

提交评论