软件测试:软件错误与软件质量保证

一、 软件错误类型分析

(一)程序正确性的差异
  1. 程序编写得无语法错误
  2. 程序执行中未发现明显的运行错误
  3. 程序中无不适当的语句
  4. 程序运行时,能通过典型的有效测试数据,而得到正确的预期结果
  5. 程序运行时,能通过典型的无效测试数据,而得到正确的结果
  6. 程序运行时,能通过任何可能的数据,并给出正确的结果
(二)软件错误的分类
  1. 软件需求错误
  2. 功能和性能错误
  3. 软件结构错误
  4. 数据错误
  5. 软件实现和编码错误
  6. 软件集成错误
  7. 软件系统结构错误
  8. 测试定义与测试执行错误
软件错误分类统计.png
(三)软件错误后果
  1. 较小错误:对输出结果有非实质性影像。
  2. 中等错误:对系统运行有局部的影响。
  3. 较严重错误:系统的行为由于错误的干扰而出现明显不合情理的现象。
  4. 严重错误:系统运行不可跟踪,一时不能掌握其规律,时好时坏。
  5. 非常严重错误:系统运行中突然停机,其原因不明,且无法软启动。
  6. 最严重错误:运行被测软件导致环境遭到破坏,或是造成事故。

二、 程序中隐藏错误数量估计

(一)撒播模型(Seeding Models)
(二)回归模型

三、 软件质量因素和质量特性

(一)把握软件质量
  1. 软件需求是衡量软件质量的基础
  2. 规定了的标准是软件开发必须遵循的准则
  3. 软件通常有着一些不做明文规定的隐含需求
软件质量因素.png
(二)质量因素与质量特性的关系

质量因素可以分解成一些独立的质量特性(Quality Characteristics)。


质量因素与质量特性的关系.png

四、 软件质量保证的任务

(一)软件质量保证(SQA-Software quality assurance)
  1. 采用技术手段
  2. 组织正式技术评审
  3. 软件测试
  4. 推行软件工程标准
  5. 对软件的变更进行控制
  6. 对软件质量进行度量
  7. 对软件质量情况及时记录和报告

软件评审(Review)是软件质量保证的一个重要手段。


贯穿开发过程中的评审.png

开发过程中错误模型.png

未经软件评审的错误扩展.png

经过软件评审的错误扩展.png

五、 程序排错

(一)排错工作概述
  1. 什么是程序排错
    测试是一种检验。测试以后进行的这些工作称为排错。


    排错过程.png
  2. 排错中遇到的困难
  • 心里因素
  • 改正一个错误时,有时可能引进两个或多个更多的错误
  • 错误本身一些特点也增加了排错的困难
(二)排错方法
  1. 内存信息转储(core dumps)
  2. 跟踪
  3. 打印语句
  4. 使用排错程序
(三)排错策略
  1. 试错法(Trial and error)
  2. 回溯法(Backtracking)
  3. 向前追踪(Forwardtracking)
  4. 二分查找(Binary-Search)逼近法
  5. 归纳法(Induction)
归纳法排错过程.png
  1. 演绎法(Deduction)
演绎法排错过程.png

你可能感兴趣的:(软件测试:软件错误与软件质量保证)