文档详情

五章软件测试.ppt

发布:2017-03-24约9.57千字共75页下载文档
文本预览下载声明
第五章 软件测试 §5.1 基本概念 软件开发过程必须伴有质量保证活动。 软件测试是软件质量保证的关键元素,代表了规约、设计和编码的最终检查。 软件产品最大的成本是检测软件错误、修正软件错误的成本。 在整个软件开发中,测试工作量一般占30%~40%,甚至≥50%。 在人命关天的软件(如飞机控制、核反应堆等)测试所花费的时间往往是其它软件工程活动时间之和的三到五倍 例:?Windows95有1000万行代码 ?Windows2000有5000万行代码, 3000多个工程师,几百个小团队。 Exchange2000和 Windows2000开发人员结构 软件测试背景 软件是人编的—所以不完美 实例: 1994-1995,迪斯尼的狮子王系统不支持问题 Intel的pentium处理器 1994年浮点除法缺陷 200年8月28日,1.13MHZ处理器一个可能导致运行程序被挂起的执行指令问题 1999年12月3日,美国航天局火星极地登陆飞船失踪 1991年爱国者导弹防御系统系统时钟错误积累造成跟踪系统失去精确度 千年虫,世界各地解决2000年错误超过数亿美元 软件测试的问题 软件缺陷是什么? 谁执行测试? 开发者? 单独的测试人员? 两方面人员? 测试什么? 每个部分都测试? 测试软件中高风险部分? 什么时候测试? 怎样测试? 测试应进行到什么程度? 软件缺陷是什么 描述软件失败的术语 缺点(defect) 谬误(fault) 问题(problt) 错误(error) 难以说清的软件缺陷 古谚: “一片树叶飘落在森林中没有人听见, 谁能说它发出了声音?” 三个盲人和一头大象:你能够为质量下定义吗? 质量管理领域权威人物J.M.Juran将质量定义为: “决定产品性能和‘满意程度’的特征”, 测试注重于产品的满意度。 测试应针对这样一种情况: 软件产品在一些特定的范围内不能满足客户的合理要求。 通过测试过程可以评定质量风险(可能的错误),了解被测试系统中存在的错误模式(观察到的错误症状)。 软件测试的目标 (1)预防错误: 几乎不可实现 (2)发现错误 5.1.1 测试的目的与地位 G.J.Myers在软件测试技巧中认为: 1.测试是为了寻找错误而运行程序的过程。 2.一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试。 3.一个成功的测试是揭示了迄今为止尚未发现的错误的测试。 E.W.Dijkstra 指出: “程序测试能证明错误的存在,但不能证明错误不存在.” 测试的目的是发现程序中的 错误,是为了证明程序有错, 而 不是证明程序无错. 测试设计中需要考虑的22种测试类型 黑盒测试 白盒测试 单元测试 累计综合测试 集成测试 功能测试 系统测试 端到端测试 健全测试 衰竭测试 接受测试 质量控制技术 软件质量问题 以软件测试为中心的软件质量保障技术 软件 静态测试技术 质量 软件度量技术 控制 动态测试技术 技术 配置管理技术 修改控制与管理技术 软件测试是保证软件质量,提高 软件可靠性的关键 5.1.2 测试原则 (1)所有的测试都应追溯到用户需求 最严重的错误(从用户角度)是那些导致软件无法满足需求的错误。 程序中的问题根源可能在开发前 期的各阶段解决、纠正错误也必须追 溯到前期工作。 测试与开发前期工作的关系 软件生存期各阶段间需保持的正确性 软件开发面临的实际问题 软件开发面临的实际问题 软件开发面临的实际问题 软件开发面临的实际问题 软件开发面临的实际问题 软件开发面临的实际问题 测试原则 (2)概要设计时应完成测试计划, 详细的测试用例定义可在设计 模型确定后开始,所有测试可 在任何代码被产生之前进行计 划和设计。 软件测试不等于程序测试 软件测试应贯穿于软件定义与开发的整个期间; 据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占 64%,属于程序编写的错误仅占 36%。程序编写的许多错误是“先天的”。 测试阶段工作步骤 单元测试:检验每个模块能否单独工作 集成测试:检验概要设计中模块接口设计问题 确认测试:以需求规格说明书为检验尺度 系统测试:综合检验 测试可视为分析、设计、编码三个阶 段的最终复审,以保证软件质量. 测试原则 (3)pareto原则:测试发现的错误中80%很 可能起源于20%的模块中。 应孤立这些疑点模块重点
显示全部
相似文档