软件测试 - 复习与总结

5/15/2022

# 测试方法

  • 软件测试的目的
    • 尽可能发现并排除软件中潜藏的错误,提高软件的可靠性

# 静态 - 动态

  • 静态测试
    • 静态测试就是不运行软件,静态地检查程序代码、界面、文档中可能错误的过程。
  • 动态测试
    • 实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的一个过程。

# 白盒

  • 逻辑覆盖

    • 语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖
    1. 语句覆盖:顾名思义就是针对代码语句,设计出来的用例要保证程序中的每一个语句至少被执行一次。(最弱覆盖)
    2. 判定覆盖:判断语句中的每个条件表达式所有可能结果至少出现一次。
    3. 条件覆盖:条件覆盖要求设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次,不考判断语句的计算结果(不考虑组合情况)
    4. 判定-条件覆盖:设计测试用例时,使得判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次。
    5. 条件组合覆盖:设计测试用例时,使得每个判断语句中条件结果的所有可能组合至少出现一次。
  • 基本路径

    • 设计测试用例时,覆盖程序中所有可能的执行路径
    • 优点:这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。
    • 缺点:于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。路径覆盖 虽然是一种比较强的覆盖,但未必考虑判断语句中条件表达式结果的组合,并不能代替条件覆盖和条件组合覆盖
  • 程序插桩(额 好像是应用?没搜明白)

# 黑盒

  • 等价划分
  • 边界值
  • 判定表
  • 因果
  • 场景

# 概述

# 缺陷

# 测试

  • 定义
  • 目的
  • 原则
    • 二八原则
    1. 80%的错误是由20%的模块引起的
    2. 80%的测试成本花在20%的软件模块中
    3. 80%的测试时间花在20%的软件模块中
  • 分类
    • 阶段
    • 执行
    • 代码
    • 人工
    • 目的
      1. 功能测试
      2. 性能测试
      3. 界面UI测试
      4. 健壮性
    • 其它
      1. 冒烟 版本
      2. 随机
  • 基本流程
    • 需求分析
    • 测试计划
    • 设计测试用例
    • 执行
    • 评估(总结)

# 测试过程

# 单元

  • JUnit

# 集成

  • Postman接口测试
  • JMeter接口测试

# 系统

  • 功能测试
  • 性能测试

# 验收

# 测试模型

# 开发过程

# 测试流程

  • 生命周期
    • 问题定义->需求分析->软件设计->软件开发->软件测试->软件维护->淘汰
  • 基本流程

# 过程模型

  • 启动 -> 计划 -> 测试 -> 执行 -> 收尾

# 测试管理

# 启动

# 计划

  • 5w1h
  • 风险预估
  • 测试需求分析

# 设计

# 执行

  • bug 回归测试

# 收尾