第5章 软件实现

发布于 2021-04-06  106 次阅读


软件测试的目的

为了寻找错误而运行程序的过程。
目标:
(1)预防错误:几乎不可实现。
(2)尽力发现错误

软件测试方法和测试策略

需要花费大量的人力、时间、成本。
目标:最少的测试数据、时间、人力,最大可能发现更多的错误。
方法:白盒测试、黑盒测试、因果图法。
测试策略:单元、集成、确认、系统、验收测试。

5.3 测试设计和管理

  • 做好测试的设计工作——即指定测试计划。如:测试策略、测试方案、测试用例(真实测试数据)的设计;
  • 有效的管理好测试。如:测试用例、测试调配、测试缺陷跟踪管理等;
  • 否则,将会导致测试工作效率低下,甚至导致整个软件开发的低效率——项目拖欠

    软件测试是有风险的行为

    file

    1. 软件故障率曲线——错误曲线
      file
    2. 软件测试配置
      编写软件测试计划、配置相应的软件测试环境、设计测试用例、编写测试文档等。
  • 软件测试计划
    目标、范围、方法、策略、资源、组织和进度等。

    软件测试计划报告正文

    file

    软件测试计划报告正文

    file
    测试文档:测试计划、测试说明、测试报告

    1. 测试用例的设计(关键内容)
      作用:发现软件缺陷而精心设计的少量测试数据,预防或减少潜在的错误发生。
      file
      file

      5.4 软件测试过程

      尽早进行测试。需求阶段接入,贯穿软件开发全过程。
      file

      5.4.1 软件测试的基本准则

      测试经验:

    2. 所有的测试都应该追溯到原始的用户需求
    3. 尽早地、不断地进行测试软件
    4. 不可能做穷尽测试
    5. 软件测试不等于程序测试
    6. 应该独立的第三方测试机构来构造测试
    7. 设计完善的测试用例,并长期保留测试用例,直至软件寿命终止
    8. 软件测试只能表明缺陷的存在,而不能证明产品没有缺陷——理解软件的测试目标
      8 注意测试中的群集现象
    9. 及时更新测试,并进行回归测试(must)
    10. 有计划、有组织。

      5.4.2 软件测试步骤、信息流

    11. 软件测试的步骤(测试策略)
      file
    12. 测试阶段的信息流
      file
      (1)软件配置:文档(需求说明树、设计说明书)+源程序+可执行程序;
      (2)测试配置:测试计划和测试方案。
      file

      5.4.3 软件测试组织与人员

      file

      5.5 软件测试的基本方法

      file

      1.黑盒测试(Black Box Testing)

      file

      2.白盒测试(White Box Testing)

      file
      file

      测试要点(必须牢记)

      file

      软件测试策略

      file
      file

      5.6.1 测试策略

      file

      5.6.2 单元测试

      最小单元——模块。单元测试和编码属于软件过程的同一阶段。
      file
      file
      测试重点详解;
      1.模块接口
      2.局部数据结构
      3.重要的执行通路————独立路径的选择
      4.出错处理同路

    13. 边界条件
      边界测试
      a[30]:
      a<0;
      a[0]~a[29];
      a>30;

      5.6.3 集成测试(组装测试)

      是测试和组装软件的系统化技术。
      file

      5.6.4 确认测试(有效性测试)

      验证软件的功能和性能及其特征是否与客户的真实需求一致
      确认测试的工作
      file
      黑盒法(功能)
      结果:
      (1)与用户一致
      (2)功能和性能与用户需求有差距
      协商解决缺陷或错误策略,不盲目修改
      file

      5.6.5 系统测试与验收测试

    14. 系统测试
      黑盒
    15. 系统测试的5个设计层次及测试内容
  • 用户层
  • 应用层
  • 功能层
  • 子系统层
  • 协议层
    3.常见的系统测试方法
    file
    file
    file

    1. 验收测试
      交付后,用户验收
      验证测试是由最终用户确定的
      Alpha:开发者指导用户。(受控)
      Beta测试:“真实”

      5.7 白盒测试

      验证技术,单元、集成测试。
      穷举路径测试法。

      5.7.1 逻辑覆盖法

      以程序内部逻辑结构为基础

    2. 语句覆盖
      每条可执行语句至少执行一次
      缺点:
      file
    3. 判定方法(分支覆盖)
    4. 条件覆盖
      每个条件可能取值至少执行一次
    5. 判定/条件覆盖
    6. 条件组合覆盖
    7. 路径覆盖
      覆盖被测程序中所有可能的路径
      file

      5.7.2 基本路径测试法

      白盒测试技术。
      使用基本路径测试的步骤
      file
      判定节点:有两条出口的节点
      环形复杂度=判定框+1;
      file

      黑盒测试

      着重测试软件的更能需求。
      与白盒测试互补。
      file

      5.8.1 等价类型分

      file

      5.8.2 边界值分析

      file

      错误推测法(经验测试法)

      5.8.4 状态测试法(用于面向对象系统)

      file

      5.9 回归测试

      file

    8. 回归测试的目的
      file
    9. 回归测试的4种方法
  • 再测试全部用例
  • 基于风险的测试
  • 基于操作(场景)的测试用例
  • 仅测试修改过的部分

    5.10 软件调试(debug)

    调试作为成功测试的后果出现的。

  • 排除错误的过程
  • 通过错误现象,找出错误原因并排除错误。
    发现和纠正一个错误很难。

    软件调试步骤与过程

    调试不是测试,但总是发生在测试之后。
    难度表现在:
    1)紧耦合程序结构加剧这种情况。
    2)有可能只使暂时消失。
    3)“偏差”,舍入误差造成的
    x+0.001 2位 +0.0001 3位 +0.00001 4位
    4)不易跟踪的人为错误引起的
    5)定时问题
    6)很难重新产出完全一样的输入条件
    7)时有时无
    8)分布在许多任务中

    5.10.1 软件调试的目的和原则

    目的:调试也叫纠错
    调试的原则:
    查错原则
    修改错误的原则————重现错误,排除错误
    注意:要进行回归测试

    5.10.2 软件调试的途径

    推进程序内部的错误位置及产生的原因。
    方法:
    1.试探法————蛮干法(强行排错)

  • 通过打印内部值
  • 程序内部设置打印语句
  • 自动调试工具(Debug)
    1. 回溯法
      当调试小程序时这种方法是最有效的。
      随着程序规模扩大,应该回苏路径数目也越来越大。
    2. 原因排除法
      (1)对分查找法
      (2)归纳法
      (3)演绎法
      补充概念
    3. 软件可靠性
    4. 软件的可用性

      5.11 小结

      实现包括编码和测试两个阶段
      程序的质量基本取决于软件设计的质量
      可读性、改进程序的可维护性
      测试方法比较~:
      白盒测试 黑盒测试
      测试VS调试


擦肩而过的概率