




免费预览已结束,剩余48页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件质量管理与测试技术 Ch 1软件测试概述 towangteng 本章教学目标 掌握软件的含义掌握几种常用的软件开发过程模型掌握软件缺陷的基本概念掌握软件质量的内涵 理解McCall软件质量度量模型掌握软件测试的基本概念理解软件测试过程模型了解软件测试分类 第一章软件测试概述 1 1软件 软件危机和软件工程1 2软件缺陷与软件故障1 3软件质量与质量模型1 4软件测试 1 1软件 软件危机和软件工程 1 1 1软件的基本概念1 1 2软件开发的基本过程1 1 3软件过程模型 1 1 1软件的基本概念 能够完成预定功能和性能的 可执行的指令 计算机程序 使得程序能够适当地操作信息的数据结构 描述程序的操作和使用的文档 软件 程序 数据 库 文档 服务 软件产品的组成 客户需求 CustomerRequirements市场需求文档 MRD MarketingRequirementDocument 软件规格说明书 Specifications技术设计文档 TechnicalDesignDocs测试文档 TestDocuments在线帮助 Onlinehelp产品发布注释 ReleaseNotes ReadMe产品软件包 Releasepackages 软件产品的其他组成 帮助文件Helpfiles示例Samplesandexamplestoillustratepoints产品支持文档Productsupportinformation错误信息Errormessages安装手册Setupandinstallationinstructions用户手册Usermanual s 产品标签Labelandstickers产品广告或宣传材料Adsandmarketingmaterial 软件的分类 按照功能划分系统软件 应用软件按照技术架构划分单机版 C S结构 B S结构按照用户划分产品软件 项目软件按照开发的规模划分小型 中型 大型 请为下列软件按照不同角度进行分类 Windows2000 Word2007 QQ 搜狐网站 学院毕业论文管理平台 1 1 2软件开发的基本过程 确定软件产品的功能需求 性能需求和运行环境约束 编制SRS 软件系统的确认测试准则 根据SRS建立软件系统的结构 算法 数据结构和各程序模块之间的接口信息 规定设计约束 为编写源代码提供必要的说明 将设计转换成计算机可读的形式 对设计 编程进行验证和用户需求确认的过程 维持软件运行 修改软件缺陷 增强已有功能 增加新功能 升级等 在程序员开始编写代码之前有哪些任务要完成 了解客户的要求 编写软件需求规格说明书 建立详细的进度表 构建软件的整体框架 并进行详细设计 制定测试计划等 1 1 3软件开发过程模型 软件开发过程模型是从项目需求定义直至软件经使用后废弃为止 跨越整个生存期的系统开发 运作和维护所实施的全部过程 活动和任务的结构框架 瀑布模型原型模型螺旋模型增量模型XP模型测试驱动开发 瀑布模型 WaterfallModel 瀑布模型强调阶段的划分及其顺序性 各阶段工作及其文档的完备性 是一种严格线性的 按阶段顺序的 逐步细化的开发模式 现在的软件项目大部分需求都不稳定 往往需要反复的确认和验证 因此瀑布模型不适合需求经常变化的项目 在瀑布模型中 测试仅仅是编码后的一个阶段 原型模型 PrototypingModel 图原型模型 特点 快 帮助用户理解需求 优点 使用户能感受到实际的系统 开发者能快速构造出系统框架 缺点 缺乏对系统的全面认识 系统分析粗略 为了使原型很快工作 没有考虑软件的总体质量和长期可维护性 适用场合 用户事先难以说明需求的较小的应用系统 用户无信息系统使用经验 需求分析人员技能不足 螺旋模型 SpiralModel 优点 1 规避风险 2 及时获取客户反馈 3 避免一次性集成大量代码 4 在每次迭代中收集过程中产生的各种度量数据 螺旋过程模型依据前一个版本的结果构造新的版本 这个不断重复迭代的过程形成了一个螺旋上升的路径 符合典型软件项目的发展特点 增量模型 IncrementModel 将软件产品作为一系列的增量构件来分析 设计 编码 集成和测试 第一个增量构件往往实现构件的基本需求 提供最核心的功能 增量模型分批地逐步向用户提交产品 每次提交一个满足用户需求子集的可运行的产品 适用场合 不确定因素很多 需求不稳定的情况 资金无法一次到位 XP eXtremeProgramming模型 XP是一种近螺旋式的开发方法 它将复杂的开发过程分解为一个相对比较简单的小周期 通过积极的交流 反馈及其他一系列的方法 开发人员和客户可以非常清楚开发进度 变化 待解决的问题和潜在的困难等 并根据实际情况及时地调整开发过程 计划 设计 编码 测试适合于Internet服务模式的软件开发 KentBeck XP 内容 Testing TDD Test DrivenDevelopment测试驱动开发 核心思想 通过测试定义所要开发的功能的接口 然后实现功能的开发过程 软件开发与测试生命周期 软件开发生命周期 软件测试生命周期 1 2软件缺陷与软件故障 1 什么是软件缺陷和软件故障 2 软件缺陷和软件故障案例 在上个世纪70年代 程序员为了节约非常宝贵的内存资源和硬盘空间 在存储日期时 只保留年份的后两位 如 1980 被存为 80 当2000年到来的时候 问题就会出现 比如银行存款程序在计算利息时 应该用现在的日期 2000年1月1日 减去当时存款的日期 比如 1989年1月1日 结果应该是21年 如果利息是3 银行要付给顾客每100元 大约86元利息 如果程序没有纠正年份只存储两位的问题 其存款年数就变为 89年 变成顾客反要付银行1288元的巨额利息 就是为了这样一个简单的设计缺陷 全世界付出几十亿美元 千年虫 Y2K 奔腾芯片缺陷 4195835 3145727 3145727 4195835 0计算机使用的是带有浮点除法错误的英特尔奔腾CPU 缺陷被刻录在计算机芯片中 在生产过程中反复制造 造成4 5亿美元损失 2000年另外一个缺陷发生在1 13MHzPentiumIII一条执行指令可能导致运行程序被挂起 现在 英特尔在web站点上报告已经发现的问题 其他一些例子 冲击波 计算机病毒 利用微软MessengerService的缺陷火星登陆事故 系统测试衔接问题爱国者导弹防御系统 系统时钟误差积累迪斯尼的圣诞节礼物 软件兼容性问题Windows2000中文输入法漏洞 微软远程服务的安全漏洞金山词霸2003出现的错误 安装测试问题奥运门票系统瘫痪 压力测试问题 一些与软件缺陷有关的造成人命损失的例子 2003年 软件问题造成美国东北部及加拿大停电 导致5000万人受影响 3人丧生2000年 美国海军飞机坠落 导致4人丧生 控制软件问题 1997年韩国空难 导致225人丧生 雷达控制软件问题 1995年美国航空公司一架客机在哥伦比亚卡利机场降落时撞向一座山 导致159人丧生 导航软件问题 一些与软件缺陷有关的造成经济损失的例子 2004年 北美银行由于一个新安装的软件的缺陷 使得数以百万计的客户受到影响 该缺陷的修复花费了整整两个星期 造成的损失数以亿计 2003年 软件问题造成美国东北部及加拿大停电 造成的各项损失约为60亿美元 2003年 美国一个专门为学生提供贷款的公司由于软件出错 错误计算80万宗学生贷款利率 导致了800万美元的利率损失 2002年 软件质量问题在美国每年造成595亿美元的损失 其中软件公司方面的损失为212亿美元 用户的损失为383亿美元 谈一谈你所知道的与软件缺陷相关的例子 问题在哪里 没有进行足够测试缺乏测试平台不正确的测试环境缺少集成测试缺少性能测试缺少压力测试缺少可靠性测试 3 软件缺陷的定义 软件缺陷软件缺陷 即软件中不符合用户需求的问题 即存在于软件之中的那些不希望或不可接受的偏差 这些偏差导致软件产生质量问题 1 软件未达到产品说明书中已经标明的功能 2 软件出现了产品说明书中指明不会出现的错误 3 软件未达到产品说明书中虽未指出但应达到的目标 4 软件功能超出了产品说明书中指明的范围 5 软件测试人员认为软件难以理解 不易使用 或者最终用户认为该软件使用效果不良 20世纪70年代 某程序员Jim负责开发本公司的工资系统 在存储日期时 只保留年份的后两位 从而节省了存储空间 Jim的设计有错吗 如果软件的产品说明书和设计目标从未声明产品要在2000年以后工作 就没有错 软件测试员应对此进行测试并找出软件缺陷 然后测试小组决定是否修复 4 软件缺陷的主要类型 完全没有实现的功能基本实现了用户需要的功能 但运行时会出现一些功能或性能上的问题设计不合理 存在缺陷实际结果和预期结果不一致运行出错 包括运行中断 系统崩溃 界面混乱数据结果不正确 精度不够存取时间过长 界面不美观实现了用户不需要的功能 5 产生软件缺陷的原因 软件需求规格说明书开发人员和用户之间的沟通存在较大困难 完全靠想象去描述系统的实现结果是不现实的 需求变化的不一致 对规格说明书不够重视 整个团队沟通不够 设计方案易变 沟通不足代码软件的复杂性 说明文档不足 进度压力 普通的低级错误 6 修复软件缺陷的代价 随着时间的推移 软件修复费用呈几何级数增长 1 3软件质量与质量模型 1 质量的内涵 质量 产品或服务所满足明示或暗示需求能力的特性和特征的集合 ISO8402 质量 系统 部件或过程满足明确需求 IEEE 质量 满足或超出认定的一组需求 并使用经过认可的评测方法和标准来评估 还使用认定的流程来生产 RUP理论 质量不是简单地满足用户的需求 还包含证明质量达标所使用的评测方法和标准 以及如何实施可管理 可重复使用的流程 以确保由此流程生产的产品已达到预期的质量水平 2 软件质量的内涵 软件质量是与软件产品满足明确或隐含需求的能力有关的特征和特性的总和 GB T16260 1996 其含义有以下4个方面 能满足给定需求的特性 软件需求是衡量软件质量的基础 不符合需求的软件就不具备质量 设计的软件应在功能 性能等方面都符合要求 并能可靠地运行 具有所期望的各种属性的组合程度 软件结构良好 易读 易于理解 并易于修改 维护 能满足用户综合期望的程度 软件系统有友好的用户界面 便于用户使用 软件的组合特性 软件生存周期中各阶段文档齐全 规范 便于配置管理 3 软件质量的构成 软件产品的质量满足使用要求的程度软件开发过程的质量能否满足开发所带来的成本 时间和风险等要求应用领域或业务上质量是否得到市场的认可 高品质软件应该是相对的无产品缺陷或只有极少量的缺陷 它能够准时递交给客户 所花费用都在预算内 并且满足客户需求 是可维护的 关于质量好坏的最终评价依赖于用户的反馈 4 软件质量模型 假设你得到了一个按进度 在预算内提交的软件产品 它能够正确和有效的完成指定的功能 它是高质量的软件吗 软件质量是一个多因素的复杂混合 这些因素随着不同的应用和需要它们的用户而变化 软件质量因素也称为软件质量特性 反映了质量的本质 一个软件的质量最终归结到定义软件的质量特性 软件质量模型可以区分质量因素对软件质量影响轻重程度 帮助评估软件的质量和对风险进行识别管理 McCall软件质量模型 ISO IEC软件质量模型 如图所示为ISO IEC9126 1991标准规定的软件质量度量模型 它由3层组成 其中第1层称为质量特性 第2层称为质量子特性 第3层称为度量 新的ISO IEC软件质量模型 如图所示 软件质量包括 内部质量 外部质量 和 使用质量 三部分 内部质量 反映软件产品在规定条件下使用时满足需求的能力的特性 被视为在软件开发过程中产生的中间软件产品的质量 外部质量 软件产品在规定条件下使用时满足需求的程度 被视为在预定的系统环境中运行时可能达到的质量水平 使用质量 在规定的使用环境下软件产品使特定用户在达到规定目标方面的能力 反映的是从用户角度看到的软件产品在适当系统环境下满足其需求的程度 1 4软件测试 1 4 1软件测试的基本概念1 4 2软件测试的原则1 4 3软件测试过程模型1 4 4软件测试的分类1 4 5软件测试流程 1 4 1软件测试的基本概念 1 软件测试的定义 由人工或自动方法来执行或评价系统或系统部件的过程 以验证它是否满足规定的需求 或识别出期望的结果和实际结果之间有无差别 国家标准GB T11457 1995软件工程术语 使用人工或自动手段来运行或测试某个系统的过程 其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别 IEEE ANSI 2 软件测试的含义 软件测试 就是出于正常合理的目的 在特定的时间和环境 用事先制定的标准衡量一种软件产品或特性是否符合预期 软件测试的主要作用 发现软件中隐藏的缺陷为软件质量的评价提供数据支持为软件开发过程的改进提供帮助对软件工程项目进行验证与确认 软件测试花费与损失的关系 测试是一个经济学的概念 下图可以看出测试投入与产出的关系 3 软件测试的目的 为了寻找错误 并尽可能地为修正错误提供更多的信息为了证明软件有错误 而不证明软件没有错误软件测试的目的是以最少的人力 物力和时间找出软件中潜在的各种错误和缺陷 通过修正各种错误和缺陷提高软件质量 回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险 4 衡量软件测试的标准 多能够找到尽可能多的 以至于所有的BUG快能够尽可能早地发现最严重的BUG好找到的BUG是关键的 用户最关心的 找到BUG后能够重现找到的BUG 并为修正BUG提供尽可能多的信息省能够用最少的时间 人力和资源发现BUG 测试的过程和数据可以重用 1 4 2软件测试的原则 软件测试的原则尚没有标准的说法 大多是经验之谈 一般有下面几条可作为测试的基本原则 1 所有的测试都应追溯到用户需求 软件测试的原则 2 2 应当把 尽早和不断地测试 作为座右铭 开发过程每前进一步 发现和修复缺陷的平均代价要增长10倍随着开发过程的进展 测试的有效性会不断下降促使开发人员尽早考虑软件的可测试性3 应由独立的第三方来构造测试 4 Pareto原则80 的软件缺陷出现在20 的模块中用户的80 时间都在使用系统中的20 常用功能5 设计测试用例时 应该考虑各种情况 软件测试的原则 3 6 对测试出的结果一定要有一个确认的过程 7 软件测试计划是做好软件测试工作的前提 8 穷举测试是不可能 测试需要终止 9 注意回归测试的关联性 10 重视文档 妥善保存一切测试过程文档 11 并非所有软件缺陷都能修复 没有足够的时间不算真正的软件缺陷修复的风险太大不值得修复 1 4 3软件测试过程模型 软件测试过程模型是对测试过程一种抽象 用于定义软件测试的流程和方法 随着测试过程管理的发展 软件测试专家通过实践总结出了很多很好的测试过程模型 这些模型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 登报遗失租赁合同范本
- 过期妊娠催产素引产护理查房
- 医疗保障贷款合同
- 服务保理合同范本
- 美团电车合同范本
- 兼职配音协议合同范本
- 公务员合同范本
- 光伏售后合同范本
- 地皮转让流转合同范本
- 养鸡棚租赁合同范本
- 风光储储能项目PCS舱、电池舱吊装方案
- 原发性骨质疏松症诊疗指南(2022版)第一部分
- 重庆医科大学附属第一医院改建PET-CT、PET-MR项目环评报告
- 2022水电站计算机监控系统上位机现场验收标准手册
- 政务服务大厅管理规范:安全与应急处置
- 食管癌病人护理查房
- 双重预防机制构建-隐患排查治理(中石化中原油田天然气厂)
- 五牌一图(完整版)
- 二年级下册音乐《每天》教案
- 音乐美学.课件
- 心肺复苏说课比赛课件模板(一等奖)
评论
0/150
提交评论