实现和软件测试阶段复习

实现和软件测试

    • 实现:生命周期中的编码和测试统称为实现
    • 测试:==为发现错误而执行程序==,编码时(单元测试),测试阶段(综合测试)
      • ==测试准则==
      • 预测试
      • 测试
        • ==模块测试==(单元测试):->编码和详细设计 //白盒
        • ==集成测试==: //黑盒
      • ==静态分析==
      • ==动态测试==
        • ==白盒测试:逻辑覆盖(结构测试)==//单元测试,依据详细设计文档
          • ==控制结构测试==
        • ==黑盒测试:(输入输出)(功能测试)==
        • 调试(发现错误后的排除)
      • 软件可靠性:给定==时间间隔==内按照规格说明书的规定成功运行的概率
      • 软件可用性:给定==时间点==按照规格说明书的规定成功运行的概率

实现:生命周期中的编码和测试统称为实现

  1. 选择适宜的程序设计语言
  2. 编码风格 文档,数据说明,语句构造,输入输出,效率(处理机时间和存储器容量)

测试:为发现错误而执行程序,编码时(单元测试),测试阶段(综合测试)

  1. 发现错误
  2. 好的方案是极可能发现未知错误的方案
  3. 成功的测试是发现了未知错误的测试

测试准则

  1. 针对用户需求
  2. 制定测试计划
  3. 80%的错误由%20的模块造成(Pareto原理)
  4. 由小到大
  5. 穷举测试时不现实的,测试只能发现错误,不能证明无错误
  6. 测试最好由第三方进行

预测试

概要设计

详细设计

代码审查

测试

模块测试(单元测试):->编码和详细设计 //白盒

  • 模块接口
  • 局部数据结构
  • 重要执行通路
  • 出错处理通路
  • 边界条件

集成测试: //黑盒

  1. 子系统测试->模块间的接口
  2. 系统测试:->功能测试 //加入硬件与数据库
  • 非渐增:系统整体一同测试

  • 渐增:

    • 自顶向下
    • 自底向上

    回归测试:程序变化后重新对执行已经测试过的测试的子集

验收测试(有效性):用户参与的->需求说明

  • Alpha测试:用户在开发者场所,受开发者指导进行测试
  • Beta测试:用户自行测试,报告问题给开发者,开发者修改

安装测试(平行运行:对比新旧系统)

静态分析

人工的,非形式化的方法分析和测试

  • 桌前检查

动态测试

测试的重点是测试用例

  1. 白盒测试:逻辑覆盖(结构测试)//单元测试,依据详细设计文档

    1. 语句覆盖
    2. 判定覆盖:每个判定的"真",“假”
    3. 条件覆盖:每个条件的可能取值
    4. 判定/条件覆盖:判定的条件可能取值和可能结果
    5. 条件组合覆盖:每种可能的值得组合至少出现一次
    6. 点/边/路径覆盖
    控制结构测试
    1. 基本路路径测试
    2. 条件测试
    3. 循环测试
  2. 黑盒测试:(输入输出)(功能测试)

    1. 等价分类:选取具有代表性的用例:有效/无效
    2. 边值分析:等价类的边缘值测试
    3. 错误推测:经验推测
    4. 因果图法

调试(发现错误后的排除)

方法:蛮干,回溯,原因排除

软件可靠性:给定时间间隔内按照规格说明书的规定成功运行的概率

软件可用性:给定时间点按照规格说明书的规定成功运行的概率

你可能感兴趣的:(软件工程,软件工程)