辅导教师:李晓红 天津大学 计算机科学与技术学院 IBM精品课程系列之 --软件测试 辅导教师:李晓红 天津大学 计算机科学与技术学院
课程提纲 软件测试基础 软件测试计划 测试分析与设计 软件测试的实施 软件测试的执行 软件测试结果分析与评估
第一章 软件测试基础 预备知识 测试的目的 软件测试的原则 软件测试的对象 软件测试的模型 软件测试的分类 软件测试的过程
第一节 预备知识 软件质量保证 BUG 错误的分级 软件测试的概念
软件质量保证(SQA) 软件质量是软件产品满足使用要求的程度。 质量保证是一个活动,它向所有有关的人提 供证据以确立质量功能正在按需求运行的信心。并提供开发出满足使用要求产品的软件过程的能 力证据。
BUG 软件使用过程中所出现的任何一个可疑问题,或者导致软件不能符合设计要求或满足消费者需要的问题都是Bug
错误的分级 严重:系统崩溃或挂起等导致系统不能继续运行 2. 主要:使系统不稳定、或破坏数据、或产生错误结 果,而且是常规操作中经常发生或非常规操作中不可避免的主要问题 次要:系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果等影响有限的问题 轻微:界面拼写错误或用户使用不方便等小问题或 需要完善的问题
软件测试的概念 什么是软件测试? 软件测试是软件开发过程的重要组成部分,在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。 软件测试是为了发现错误而执行程序的过程。
第二节 测试的目的 从用户的角度出发,希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。 从软件开发者的角度出发,验证该软件已正确地实现了用户的要求并且证明软件的功能和性能与需求说明相符合。 为了能够给开发人员或程序经理提供反馈信息,并为风险评估准备所需要信息。 保证整个软件开发过程是高质量的。
第三节 软件测试的原则 尽早和不断的测试。 测试前要认定被测试软件有错。 预先确定被测试软件的测试结果。 测试工作应该由独立的专业的软件测试机构来完成。 测试要以软件需求规格说明书为标准 。 测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。 对测试错误结果一定要有一个确认的过程。 制定严格的测试计划,排除测试的随意性。 回归测试的关联性--修改一个错误而引起更多的错误出现的现象并不少见。 完全测试程序是不可能的。 并非所有软件缺陷都能修复 应当对每一个测试结果做全面检查。
第四节 软件测试的对象 需求规格说明 概要设计规格说明 详细设计规格说明 源程序
第五节 软件测试的模型 V 模型 前置测试模型
软件测试的模型—V模型 V模型中的过程从左到右,描述了基本的开发过程和测试行为 明确标明了测试过程中存在的不同级别 体现了测试阶段和开发过程期间各阶段的对应关系
第六节 软件测试的分类 从代码的特性角度出发的测试方法为覆盖性测试 从用户的使用角度出发的测试方法为使用测试 按是否查看源代码的角度分为白盒测试和黑盒测试 按是否使用工具分为手工测试和自动测试 按代码是否执行分为静态测试和动态测试 按测试阶段分为单元测试,集成测试,系统测试和验收测试
软件测试技术
第七节 软件测试的过程 传统软件测试过程 Rational 软件测试过程 软件测试流程 RUP软件测试周期
传统的软件测试过程 传统的软件测试流程一般是先在软件开发过程中进行少量的单元测试,然后在整个软件开发结束阶段,集中进行大量的测试,包括功能和性能的集成测试和系统测试
Rational软件测试过程 IBM Rational 软件自动化测试技术核心的三个最佳成功经验是:尽早测试、连续测试、自动化测试
尽早测试 软件的整个测试生命周期与软件的开发生命周期基本平齐的过程 把原来的整个软件开发生命周期分成多个迭代周期,在每个迭代周期都进行测试 将整个软件的测试按阶段划分成开发人员测试和系统测试两个阶段
连续测试 连续测试是从迭代式软件开发模型得来的 每个迭代周期都会进行软件测试 整个软件测试是通过每个迭代周期不断的 增量测试和回归测试实现 整个软件测试是通过每个迭代周期不断的 增量测试和回归测试实现 成功经验: 控制开发风险 减低测试成本 保证项目进度
自动化测试 成功经验: 利用软件测试工具提供完整的软件测试流程的支持和各种测试的自动化实现 通过一套完整的软件测试工具在实现测试管理流程的基础上,同时涵盖了功能测试、性能测试和可靠性测试的自动化测试需求
软件测试流程 需求分析 制定测试策略 创建测试计划/设计 实施测试 执行测试 测试记录 分析结果 缺陷跟踪 完毕 测试总结
RUP软件测试 迭代化的软件测试流程 执行测试既是新测试的执行,又是使用先前测试的回归测试