软件质量保证与测试笔记——江湖救急版

软件质量保证与测试笔记——江湖救急版


Powered by DZY
以下部分图片来源于老师课件,仅供学习交流使用,侵权致删!


Ch1 软件质量与测试概念
  1. 软件质量的定义

    软件质量是“反映实体满足明确的和隐含的需求的能力的特性的总和”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。

    1. 满足用户需求

    2. 建立合理的进度、成本与功能的关系

    3. 具备扩展性和灵活性

    4. 能有效的处理例外情况

    5. 保持成本和性能的平衡

  2. 质量保证和质量控制的概念

    质量保证:为了确保软件开发过程和结果符合预期的要求,而建立的一系列规程,以及依照规程和计划采取的一系列活动,以及结果评价。

    质量控制:为了达到产品的品质要求所采取的作业技术和活动。

  3. 软件缺陷的定义

    只要是软件中存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的最终要求

    • 从产品内部看,软件缺陷是产品开发或维护过程中所存在的错误、毛病等各种问题。

    • 从产品外部看,软件缺陷是系统所需要实现的某种功能的失效或者违背。

    • 用户的期望没被满足

    • 软件功能执行时发生错误

    • Defect = bug

    缺陷举例:

    • 性能:运行太慢
    • 不一致性:CTRL+S不是保存,是其他的
    • 缺陷的表现形式有很多种,不仅仅表现为功能失效方面,还体现在其他方面。 例如,
      • 数据结果不精确,精度不够
      • 实际结果和预期结果不一致
      • 用户界面出错、混乱、不美观
      • 运行中断、系统崩溃

在这里插入图片描述

  • 错误:发生在编写程序的过程
  • 故障:是一个或者多个错误的表现
  • 失效:当执行错误代码段导致错误状态并传播到程序输出时,会发生失效
  • 事故:发生故障时不显示任何消息

缺陷什么时候发生

  • 软件没有做规范中说它应该做的事情
  • 软件做了一些规范说它不应该做的事情
  • 软件做了规范中没有提到的事情
  • 软件没有做产品说明书中没有提到但应该做的事情
  • 软件难以理解,难以使用,速度慢…

IBM研究结果表明:缺陷存在逐级放大的趋势

  1. 了解软件测试

    软件测试的定义

    软件测试是为了发现错误而执行程序的过程。是有计划的、成体系的重要步骤(is the essential step which is planned and systematic),是软件质量保证的关键步骤

    为什么测试?

    基于安全性和经济角度,为了发现软件的错误,降低软件的风险

    软件测试是为了发现错误而执行程序的过程。

    一个好的测试能在第一时间发现程序中存在的错误。 一个好的测试是发现了至今尚未发现的错误。

    测试的类型

    • 按照测试生成的来源

      • 黑盒测试/功能性测试
      • 白盒测试/结构性测试
    • 按照生命周期的阶段

      • 单元测试
      • 集成测试
      • 系统测试
    • 按照测试活动的目的

      • 在这里插入图片描述

      • 在这里插入图片描述

    • 按被测对象的特征

      • 在这里插入图片描述

      • 在这里插入图片描述

    • 按测试过程的模型

      • Testing in waterfall model 瀑布模型中的测试

        在这里插入图片描述

        缺点:不能对上一步的模型进行调整

      • Testing in V-model V型试验

        在开发周期的每个阶段显式地指定测试活动

      • Spiral testing 螺旋测试

        应用于软件增量时,每个增量都可能是最终将应用程序交付给客户的原型

      • Agile testing 敏捷测试

        要求团队与客户的良好合作

        用于极限编程

      • Test-driven development (TDD) 测试驱动开发(TDD)

        Requirements specified as tests(规定为试验的要求)

    软件测试在软件开发中的角色

    贯穿整个软件开发周期

    测试规则

    • 尽早测试,经常测试
    • 集成应用程序开发和测试生命周期
    • 使测试方法形式化
    • 制定全面的测试计划
    • 同时使用静态和动态测试
    • 定义你期望的结果
    • 了解应用程序背后的业务原因
    • 使用多个级别和类型的测试
    • 评审和检查工作(静态测试的范围),会降低成本
    • 不要让程序员检查他们自己的工作

    软件测试的重要功能

    • Verification 验证,软件开发过程,比对需求规格说明
    • Validation确认,从用户角度考虑

    测试test和调试debug

    • 测试条件已知,规程可定义,结果可预知
    • 测试可以计划,过程可控;调试不可控
    • 测试是检验,调试是推理过程
    • 测试除了表明程序正确还要验证程序如何处理失败,调试表明正确
    • 测试可不了解设计细节,调试必须了解设计细节
    • 测试可自动化,调试无法自动化

    了解软件测试的基本原则

在这里插入图片描述

在这里插入图片描述

  • 20%的模块有时候有80%的缺陷

  • 尽早测试,经常测试

  • 集成应用程序开发和测试生命周期。

    使测试方法形式化

    制定全面的测试计划

    同时使用静态和动态测试。

  • 定义你期望的结果

    了解应用程序背后的业务原因

    使用多个级别和类型的测试

    评审和检查工作(静态测试的范围),会降低成本

    不要让程序员检查他们自己的工作。

  • 测试通过的规则:

    是否执行了所有测试用例
    功能设计是否完成

    是否有足够的bug

  • 什么是测试用例:

    如果系统按照其规范操作,则用于测试系统的输入和这些输入的预测输出。

  • 测试用例的设计原则:

    避免模糊vague的测试用例

    相似函数应进行抽象和分类classified

    避免复杂的测试用例

    给定测试用例,必须要有预期结果

  1. 了解软件质量

    1. 什么是质量:
      • 用户视角
      • 开发者视角
    2. 质量的评判标准——度量criteria
      • validity有效性
      • generality普遍性
      • interoperability互操作性
    3. 软件质量涉及的活动包括
      • 过程process,质量保证
      • 产品product,质量控制
    4. 质量预防和检测
    5. It’s all about the End­-user
  2. 名词解释

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


Ch2 质量保证 & (质量控制——面向产品)
  1. 软件质量控制(SQC) 概念和方法

    什么是质量控制

    • 质量保证行动提供了一种手段,以控制和衡量项目、过程或设施的特征,以满足既定的要求。

    • 维持产品或服务质量以满足特定需求的操作技术和活动;也使用这些技术和活动

    • 质量控制活动是以工作产品为导向的

      他们测量产品,发现不足之处,并提出改进建议。

      这些活动的直接结果是对产品的更改。

      这些变化可以是单行代码的改变,也可以是产品从设计到重新设计。

      他们评估evaluate产品,发现弱点并提出改进建议。

      测试和评审是QC活动的例子,因为它们通常导致对产品的更改,而不是过程。

      QC活动通常是质量保证(QA)活动的起点。

    质量控制方法

    • Goal question metric approach 目标问题度量法

      • GQM方法是一种系统化的方法,用于将组织的目标裁剪(tailor)并集成到度量目标中,并将其细化为可度量的值。它有助于系统地推导测量计划

      • 在这里插入图片描述

      • GQM过程:
        制定一套公司项目目标

        生成以可量化的方式尽可能完整地定义这些目标的问题

      • 好处:

        实现这个范例最重要的好处是它始终关注您为什么要收集度量

      • 经验法则:

        平均故障密度average fault density是每千行源代码1.9次。

        管理功能的故障密度fault density for management functions 是分发功能故障密度的三倍。

        控制台功能的故障密度fault density for console functions是分发功能故障密度的两倍。

        在分发软件中纠正错误所需的平均工作量是纠正管理功能错误所需工作量的5倍。

  2. SQC 模型和技术

    • Risk management approach 风险管理方法RM

      • 软件风险管理过程分为两个活动:

        1)软件风险评估assessment

        2)软件风险控制

        每个活动都涉及到一些不同的任务

        • 风险评估的不确定性
          • 不确定性是风险概念和风险评估中的一个关键概念
          • 概率分析Probabilistic analysis 是处理风险分析中涉及的不确定性的主要方法
    • 在这里插入图片描述

    • 基于PDCA的扩展——TSQC

      在这里插入图片描述

      • 质量控制模型中的参数不孤立且具有相关性

      • 在质量控制中要对这些参数进行调节达到平衡

      • 参数

        • 产品:所有可交付物

          在这里插入图片描述

        • 过程:所有活动的集合

          在这里插入图片描述

        • 资源:活动的物质基础(人力、技术、设备、时间、资金等)

          在这里插入图片描述

  3. 软件质量保证

    • 什么是质量保证

    在这里插入图片描述

    • 软件质量保证包括:

      审查和审计软件产品和活动,以验证它们是否符合适用的程序和标准。

      向经理和软件项目团队成员提供这些审查和审核的结果

    • 为什么关注质量保证

      法律责任、成本效益、客户需

    • SQA方法:

      在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 软件质量标准

    • 在这里插入图片描述

    • 常用软件质量标准:

      在这里插入图片描述

      在这里插入图片描述

    • CMM的目标

      改进现有的软件开发过程

    • CMM的五个成熟度级别

      在这里插入图片描述

    • CMM的缺点

    在这里插入图片描述

    • CMMI(能力成熟度模型集成)

      它为组织应该做什么提供了明确的定义,以促进行为,从而提高性能,并允许集成不同的组织功能

      在这里插入图片描述

      • 缺点

        在这里插入图片描述


Ch3 软件质量度量
  1. Metrics and Software Metrics度量和软件度量

    • Software Metrics Baseline Process基准过程

      在这里插入图片描述

      在这里插入图片描述

    • 度量特征

      在这里插入图片描述

    • 为什么使用测量measure

      在这里插入图片描述

    • 为什么使用度量matric

      • 更准确的、类似的测量
      • 度量不是目标,目标是通过度量、分析和反馈来提高软件开发的质量
    • 什么是软件度量?

      软件度量被定义为一个单元,它可以定量地确定软件过程、产品或项目具有某种属 性的程度。

    • 度量是与软件系统、过程或相关工件相关的任何类型的度量

    • 度量种类:

      • 过程度量

        • 在这里插入图片描述
      • 产品度量product

        • 在这里插入图片描述
      • 项目度量project

        • 在这里插入图片描述
    • 测量种类

      • 在这里插入图片描述
    • 规范化度量

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 将功能复杂性乘以针对每个功能的相应权重, 然后将这些值相加以确定子系统的UFP(未调整功能点)。

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

  2. Software Quality Metrics 软件质量度量

    • 在这里插入图片描述

      在这里插入图片描述

    • 在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 在这里插入图片描述

      在这里插入图片描述


Ch4 黑盒测试(用户角度)
  1. 什么是黑盒测试

    在这里插入图片描述

  2. 在这里插入图片描述

  3. 在这里插入图片描述

  4. 测试用例就是设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果

  5. 测试用例的设计原则特征

    在这里插入图片描述

  6. Equivalence Partitioning 等价类划分

    在这里插入图片描述

  7. 等价类定义

    在这里插入图片描述

  8. 等价类划分方法

    在这里插入图片描述

  9. 在这里插入图片描述

  10. 测试用例设计规则

    • 用尽可能少的测试用例来覆盖所有有效等价类

    • 在这里插入图片描述

    • 设计测试用例时需保证所有有效等价类被覆盖到(1-3)

    • 在单缺陷假设(Single defect hypothesis)中

      • 设计无效等价类的测试用例时,只含一个无效等价类(4-7),其他有效就可以
    • 对于多个变量来测试两个及以上缺陷,8-14更需要

  11. 在这里插入图片描述

    在这里插入图片描述

  12. 例题

    在这里插入图片描述

    • 单缺陷测试用例设计

      在这里插入图片描述

  13. Boundary Value Analysis 边界值分析

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 边界值分析是基于单缺陷假设single fault的

    • 边值分析的简单推广,即考虑健壮性设计,超出有效范围的值略大于最大值(max+)和略小于最小值(min-)的值

    • 加上健壮性的边界值分析

      在这里插入图片描述

    • 例题

      在这里插入图片描述

      如果考虑健壮性

      在这里插入图片描述

      在这里插入图片描述

    • 实际产生测试用例时删除重复的用例组合,保留一个就行

    • 总结

      在这里插入图片描述

      在这里插入图片描述

  14. Decision Tables决策表(健壮性最强,考虑情况最全面)

    • 在这里插入图片描述

    • 决策表阅读指南

      在这里插入图片描述

      合并1-4:以提高测试效率,“-”包含了yes,no的情况

      在这里插入图片描述

      四个框中分别为条件桩,行动桩,条件条目,行动条目

    • 例题

      在这里插入图片描述

      在这里插入图片描述

    • 准则

      在这里插入图片描述

    • 练习

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

  15. Cause-­Effect Graphing因果图

    • 回顾/复习

      • 等价分类法和边界值分析法的缺点是没有检查各种输入条件的组合。
      • 要检查输入条件的组合并非易事,因为即使可以将输入条件分成等价类,但它们的组合情况可能很多,如果没有一个系统的方法是难以设计测试用例的。
      • 借助因果图列出输入数据的各种组合与程序对应动作效果之间的阶段联系,构造判定表,由此设计测试用例是生成测试用例的有效办法。
    • 什么是因果图

      在这里插入图片描述

    • 因果图中使用的表示法

      在这里插入图片描述

      在这里插入图片描述

    • 约束:(原因间、结果间)

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 因果图设计的步骤

      在这里插入图片描述

      在这里插入图片描述

    • 练习

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 缺点

      不易理解

  16. Orthogonal Array Testing 正交实验

    • 在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 多次单因素实验

      在这里插入图片描述

      在这里插入图片描述

    • 正交测试设计

      在这里插入图片描述

    • 正交表

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 例题

      在这里插入图片描述

    • 正交表测试步骤

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      选出的正交表不能保证包含所有测试用例

  17. Scenario Testing常规实验

    • 场景测试

      它是一个软件测试活动,它使用场景用例,或者简单的场景,这些场景基于一个假设的故事来帮助人们思考一个复杂的问题或者测试环境的系统。

    • 理想的场景有五个关键特征

      在这里插入图片描述

      在这里插入图片描述

    • 用例的重要流事件

      在这里插入图片描述

    • 步骤

    在这里插入图片描述


Ch5 白盒测试
  1. 什么是白盒测试

    在这里插入图片描述

  2. 分类

    在这里插入图片描述

  3. 主要用于单元测试

  4. 白盒测试需要遵循的原则

    在这里插入图片描述

  5. 为什么不能进行穷举测试

    在这里插入图片描述

  6. 四代白盒测试

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  7. 逻辑覆盖

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    • 语句覆盖 Statement coverage

      在这里插入图片描述

    • 决定/判定覆盖 Decision / decision coverage

      在这里插入图片描述

    • 条件覆盖 Conditional coverage

      在这里插入图片描述

      在这里插入图片描述

    • 条件/决定覆盖 Condition / decision override

      在这里插入图片描述

      在这里插入图片描述

    • 条件组合覆盖 Conditional combination coverage

      在这里插入图片描述

      在这里插入图片描述

    • 路径覆盖 Path coverage

      在这里插入图片描述

      在这里插入图片描述

  8. N-S图

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  9. 控制流程图

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  10. 例题

    在这里插入图片描述

    在这里插入图片描述

  11. 例题

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  12. 基础路径测试

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  13. 例题

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  14. 总结

    在这里插入图片描述

  15. 循环测试

    • 简单循环

    在这里插入图片描述

    • 嵌套循环
      在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

  16. 数据流测试(不是重点)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 突变测试(了解,不是重点)

    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 白盒测试与黑盒测试的比较

    在这里插入图片描述


Ch6 单元测试
  1. 什么是单元测试

    • 按阶段进行测试是一种基本的测试策略,单元测试是执行过程中的第一阶段。

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 单元测试的分类

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  2. 单元测试的策略

    在这里插入图片描述

    在这里插入图片描述

    • 自顶向下的单元测试

      测试顶级首先,单元由顶层调用存根,然后测试第二层次,作为驱动模块的单元测试顺序

    • 自底向上的单元测试

      首先对底层模块进行测试,为其设置驱动模块,然后对上层模块进行测试,将已测试模块依次作为存根进行测试

    • 隔离测试(最方便,减少了对其他单元的依赖)

      不考虑模块之间的关系,设计每个模块的子模块和驱动模块

  3. 单元测试分析

    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 单元测试准则

在这里插入图片描述

在这里插入图片描述

  1. 怎样使用Junit

在这里插入图片描述


Ch7 集成测试
  1. 多个单元测试出来以后,再进行集成测试
  2. 集成测试介绍
  3. 集成测试策略
  4. 集成测试分析
  5. 集成测试用例设计
  6. 集成测试流程
  7. 集成测试环境
  8. 集成测试原则

Ch8 系统测试
  1. 系统测试概念

    在这里插入图片描述

    在这里插入图片描述

  2. 系统测试方法

    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 系统测试过程
    在这里插入图片描述

在这里插入图片描述


Ch9 性能测试
  1. 什么是性能

  2. 并发用户数
    在这里插入图片描述

    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 并发用户平均
  • 登录会话数
  • 平均登录会话长度
  • 检查周期长度
  • 峰值并发用户
  1. 例题

在这里插入图片描述

  1. 吞吐量

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 休眠时间 Dormancy time
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 什么是性能测试

    压力测试是在强负载下的测试

  2. 性能测试有哪些类型

  3. 如何进行性能测试?


Ch11 测试管理
  1. 测试指标/度量

  2. 缺陷管理

在这里插入图片描述

在这里插入图片描述

  1. 软件测试生命周期

  2. 具备自动化软件测试的基本知识
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  3. 自动化测试工具

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值