软件质量与测试

发布于 2020-01-07  125 次阅读


I. 软件测试的目的

•1. 发现系统的错误

•2. 验证系统是否满足需求

3. 为产品放行提供依据

•4. 改进开发流程
•5. 企业回避商业风险

II. 软件测试的基本原则

v 1.所有的软件测试都应追溯到用户需求

v 2.尽早地、不断地进行测试

v 3.严格执行测试计划

v 4.注重测试用例的设计

v 5.程序员应该避免测试自己的程序

v 6.增量测试,由小到大

v 7.注意集群现象(二八定理)

v 8.完全测试是不可能的

v 9.测试维护

III.测试报告

测试报告是对测试的过程和结果的汇总描述

核心内容

  • 测试结果的汇总:是针对所测软件的本身,是给所测软件一个客观真实的评价
  • 测试过程的汇总:是针对过程的改进,回顾测试流程中存在的不足,加以总结和改进

软件测试环境=软件+硬件+网络+历史数据

IV.等价类测试

1.等价类的类型:有效等价类和无效等价类

2.等价类的划分原则:

  • 按双边区间划分
  • 按取值划分
  • 按单边区间划分
  • 按限制条件划分/规则划分

3.等价类测试的类型

  • 弱等价类测试
    • 弱一般等价类测试:单缺陷假设,不讨论异常区域
    • 弱健壮等价类测试:多缺陷假设,不考虑异常区域
  • 强等价类测试
    • 强一般等价类测试:单缺陷假设,要考虑异常区域
    • 强健壮等价类测试:多缺陷假设,要考虑异常区域;即一个全笛卡尔乘积)

V.判定表法

  1. 判定表的组成
  • 条件桩:列出问题的所有条件
  • 动作桩:列出问题规定的可能采取的操作
  • 条件项:列出所有可能的取值
  • 动作项:应采取的动作
  • 规则:贯穿条件项和动作项的一列就是一条规则
  1. 判定表的简化
  • 规则合并

    若两条或多条规则的动作项相同,条件项只有一项不同,则可将该项合并,合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件

  • 规则包含

    无关条件项“-”在逻辑上又可包含其他的条件项取值,

    具有相同动作的规则还可进一步合并。

VI.因果图法

  1. 因果图的关系
  • image-20191230191357351
  • image-20191230191431782
  • image-20191230191444703
  • image-20191230191452448
  1. 因果图的约束符号:
  • image-20191230191524870
  • image-20191230191533515
  • image-20191230191547679
  • image-20191230191558195
  • image-20191230191609267
  • VII.场景法

  1. 组成:
    • 基本流
    • 备选流

VIII.基本路径法

  1. 控制流图
  • 包括
    • 节点:带标号的圆圈表示

    • 控制流线:带箭头的弧或线表示

      image-20191230192506426

  • 判定节点:包含条件的节点被称为<font color=blue>判定节点</font>

  • 区域:由边和节点所限定的范围

  1. 图矩阵
  • <font color=red>控制流图</font>的<font color=red>矩阵</font>表示形式
  • <font color=red>维数</font>等于控制流图的<font color=red>节点数</font>
  • image-20191230193258351
  1. 环形复杂度

    V(G) = P + 1(P判定节点数量)

    V(G) = E - N + 2(E控制流图的边的数量,N是控制流图中的节点数量)

  2. 基本路径集

  • 独立路径组成的集合
  • 基本路径集通常并不唯一
  1. 基本路径测试步骤:

    1.画出程序的控制流图

    2.计算流图G的环路复杂性V(G)

    3.确定只包含独立路径的基本路径集

    4.根据上面的独立路径,设计测试用例,使程序分别沿上面的独立路径执行。

IX.逻辑覆盖法

分为

  • 语句覆盖
    • 每个语句至少被执行一次
  • 判定覆盖
    • 每个判定至少都获得一次"真值"和"假值",或者说每一个分支都至少通过一次
  • 条件覆盖
    • 判定中的每个条件都至少取到一次真值和假值的机会
  • 判断/条件覆盖
    • 每个条件的所有可能结果都至少出现一次,并且每个判定本身所有可能结果都至少出现一次
  • 条件组合覆盖
    • 每个判定中条件结果的所有可能组合至少出现一次

X.软件测试的基本流程

  1. 测试用例的基本要素
  • 用例编号
  • 用例标题
  • 用例级别
  • 预置条件
  • 操作步骤
  • 预期结果
  1. 软件测试用例的基本原则

    (1) 用成熟测试用例设计方法来指导设计

    (2) 测试用例的正确性

    (3) 测试用例的代表性

    (4) 测试结果的可判定性

    (5) 测试结果的可再现性

    (6) 足够详细、准确和清晰的步骤

  2. 测试计划包含的内容:

    1、确定测试的目标、进度、人力、环境、工具等

    2、为达到测试目标采用测试类型

    3、功能性需求

    4、非功能性需求

    5、针对测试需求采用的测试方法

  3. 缺陷报告的概念:

    缺陷报告是描述软件缺陷现象和重现步骤的集合。

  4. 缺陷报告的用途:

  • 记录缺陷
  • 缺陷分类
  • 缺陷跟踪
  1. 缺陷的表现形式不仅体现在功能的失效方面,还体现在其他方面。

    ·符合以下5个规则之一者,均属软件缺陷:

    1. 软件未达到产品说明书中已标明的功能。

    2. 软件出现了产品说明书中指明不会出现的错误。

    3. 软件功能超出了产品说明书指明的范围。

    4. 软件未达到(超出)产品说明书应达到的目标。

    5. 软件测试员认为软件难以理解,不易使用,运行速度慢,或者最终用户认为该软件使用效果不好。

XI.软件测试自动化

  1. loadrunner的组成部分
    • Virtual User Generator(录制回放脚本)
    • Controller(设置场景)
    • Analysis(生成测试报告)
    • Load Generator(加载Vuser)
  2. 自动化测试的适用场景和不适用场景
    • 适合自动化测试的情况
      • 产品型项目
      • 回归测试
      • 多次重复、机械性动作
      • 需要频繁运行测试
    • 不适合自动化测试的情况
      • 定制型项目(一次性)
      • 项目周期很短的项目
      • 业务规则复杂的对象
      • 美观、声音、易用性测试
      • 测试很少运行,如:一个月只运行一次
      • 软件不稳定
  3. loadrunner的脚本技术包含哪些
    • 线性脚本
    • 结构化脚本
    • 共享脚本
    • 数据驱动脚本
    • 关键词驱动脚本

一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。