软件质量保证与测试期末复习提纲

第一章 软件质量和软件测试概述

1. ISO/IEC 25010中定义的软件产品质量模型包括下列的八个质量特性(掌握)

功能适应性、性能效率、兼容性、易用性、可靠性、安全性、可维护性、可移植性

2. 软件错误、缺陷和失效(掌握)

错误:所有人都会犯错误,发生错误的原因有很多种

缺陷:bug,因为程序有误,在软件运行时出现不正常操作,导致系统宕机、忽然终端或数据丢失等问题

失效:如果执行了存在缺陷的代码,就有可能导致失效,但不一定在所有情况下都是这样。

3. 软件缺陷的主要类型(掌握)

软件未实现产品说明书要求的功能,即该有的功能没有

软件出现产品说明书指明不该出现的错误

软件实现了产品说明书未说明的功能,即出现不该有的功能

软件未实现产品说明书未明确提及但应实现的目标,即该有的隐含功能没有

软件难以理解,不好用,运行速度慢,或软件测试人员、最终用户认为软件不好

4. 测试和调试(掌握)

项目测试调试
目的证明程序存在缺陷定位并解决程序缺陷
条件与结果是否已知条件和预期结果已知,实际结果未知内部条件未知,结果未知
有无计划有计划,设计测试用例无计划,不受时间缺陷
执行有无规程执行有规程执行往往靠灵感
执行主题测试人员执行开发人员执行

5. 动态测试和静态测试(掌握)

  • 静态测试
    • 是指不运行被测体本身,对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
    • 静态测试包括:对于程序测试,主要是测试代码是否符合相应的标准和规范。
  • 动态测试
    • 是指通过运行被测体,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。

6. 测试阶段及级别:组件测试、集成测试、系统测试及验收测试(掌握)

  • 组件测试
    • 是指对软件中的最小可测试组件进行检查和验证。
    • 桩模块是指模拟被测模块所调用的模块。
    • 驱动模块是指模拟被测模块的上级模块。
    • 驱动模块用来接收测试数据,启动被测模块并输出结果。
  • 集成测试
    • 是组件测试的下一阶段,是指将通过测试的组件模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。
    • 集成测试就是用来检查各个组件模块结合到一起能否协同配合,正常运行。
  • 系统测试
    • 指的是将整个软件系统看作一个整体进行测试,包括对功能、性能以及软件所运行的软硬件环境进行测试。
    • 系统测试的主要依据是《系统需求规格说明书》文档
  • 验收测试
    • 指的是在系统测试的后期,以用户测试为主,或有测色hi人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
    • 验收测试又分为α测试与β测试,其中,α测试指的是由用户、测试人员、开发人员等共同参与的内部测试,而β测试指的是内测后的公测,即完全交给最终用户测试。

第二章 软件质量和软件测试概述

1. ISO/IEC/IEEE 12207 过程组(了解)

书上22

2. CMM(了解)

书上28

3. CMM软件过程成熟度等级(了解)

书上29

  1. 初始级
  2. 可重复级
  3. 已定义级
  4. 已管理级
  5. 优化级

4. CMMI(掌握)

书上31

第三章 软件全面质量管理

1. 全面质量管理(Total Quality Management,TQM)概念(理解)

书上39

2. PDCA循环(理解)

书上41

3. 六西格玛(6 Sigma,6σ)(理解)

书上45

4. 六西格玛(6σ)管理简介-人员组织结构(了解)

书上47

第四章 软件质量保证

1. 软件质量保证活动(掌握)

书上62

2. 软件质量保证过程(了解)

书上65

第五章 软件测试基础

1. 软件测试的目的(理解)

  • 测试是为了发现程序中的错误而执行程序的过程
  • 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
  • 成功的测试是发现了至今为止尚未发现的错误的测试
  • 测试并不仅仅是为了找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。
  • 测试分析能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。
  • 没有发现错误的测试也是有价值的,完整的测试是评定软件测试的一种方法。
  • 根据测试目的的不同,还有回归测试、压力测试、性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能打得到的处理能力和是否达到预期的处理能力等。

2. 软件测试目标包括哪些内容(理解)

  • 评估工作产品。
  • 验证是否实现了所有指定的需求。
  • 确认测试对象是否完成,并按照用户和其他干系人期望的那样工作。
  • 建立对被测对象质量级别的信心。
  • 预防缺陷。
  • 发现失效和缺陷。
  • 降低软件质量不足所带来的风险。
  • 遵守合同、法律或法规要求或标准和(或)验证测试对象是否符合这些要求或标准。

3. 7条软件测试的基本原则(掌握)

  1. 测试说明缺陷的存在,而不能说明缺陷不存在。
  2. 穷尽测试时不可能的。
  3. 测试的尽早介入可以节省时间和成本。
  4. 缺陷的集群效应。
  5. 杀虫剂悖论。
  6. 测试活动依赖于测试内容和情境。
  7. 不存在缺陷的谬论。

4. 测试过程的主要活动(掌握)

测试过程主要由测试计划和监控、测试分析、测试设计、测试实施、测试执行、测试评估和报告、测试结束等主要的活动组成。

第六章 软件生命周期中的测试

1. 常见的软件测试模型(了解)

  • V模型
  • W模型
  • H模型
  • X模型
  • 前置测试模型

2. V模型的特点、优缺点及适用(掌握)

书上87

3. W模型的特点、优缺点及适用(掌握)

书上88

4. 四个测试级别,每个测试级别指什么、重点测试什么?(掌握)

  1. 组件测试
    • 驱动模块
    • 桩模块
  2. 集成测试
    • 非增量式测试
    • 增量式测试
  3. 系统测试
  4. 验收测试
    • 测试依据
    • 测试对象
    • 典型的缺陷
    • 特定的方法和职责
    • 验收测试形式
    • 验收测试技术

5. 性能测试包括哪些?(掌握)

书上105

  1. 常规性能测试
  2. 压力测试
  3. 负载测试
  4. 可靠性测试
  5. 大数据量测试

6. 压力测试(掌握),负载测试(掌握),对比

  • 压力测试

    压力测试是指持续不断地给被测系统增加压力,直到被测系统被压垮。

  • 负载测试

    负载测试与压力测试十分相似,通常是让被测系统在其能忍受的压力极限范围内(或临界状态下)连续运行,来测试系统的稳定性。其目的是找到系统的处理极限,为系统调优提供依据。

7. 自动化测试(掌握),满足的条件(掌握)

  1. 需求变动不频繁
  2. 项目周期足够长
  3. 自动发测试脚本可重复使用

8. 白盒测试(掌握),黑盒测试(掌握),对比和应用

书上110

比较项黑盒测试白盒测试
测试规划功能的测试结构的测试
优点能确保从用户的角度出发进行测试能对程序内部的特定部位进行覆盖测试
缺点无法测试程序内部特定部位;当规格说明有误时,则不能发现问题。无法检查程序的外部特征;无法对未实现规格说明的程序内部欠缺部分进行测试

第7章 软件静态测试技术

1. 静态测试(理解)

书上114

2. 静态测试技术(理解)

书上115

3. 正式评审过程(了解)

  1. 计划
  2. 评审启动会
  3. 独立评审
  4. 事件交流和分析
  5. 修正和报告
  6. 跟踪

4. 评审角色和职责(了解)

  1. 作者

    作者为被评审工作产品的创建者或修复工作产品评审过程中发现的缺陷。

  2. 管理者

    负责制定评审计划;决定是否需要进行评审;分配人员、预算和时间;监督进行中的成本、效益;当产出不充分时,执行控制决策。

  3. 评审会主持人

    党召开评审会时,主持人保证评审会议的有效进行,需要时再评审的不同观点之间进行协调。主持人通常是评审成功与否的关键人物。

  4. 评审组长

    全面负责评审,决定哪些人员参加评审,并组织何时何地进行评审。

  5. 评审员

    可能是专题相关专家、项目工作人员、对工作产品感兴趣的干系人和(或)具有特定技术或业务背景的人员。在评审中识别工作产品中的潜在缺陷。可能代表测试员、程序员、用户、操作员、业务分析师、易用性专家等不同的角度。

  6. 记录员

5. 控制流图4个元素(掌握)

  1. 过程块
  2. 决策点
  3. 汇聚点

6. 控制流分析步骤(掌握)

书上137

第8章 软件测试设计技术

1. 等价类划分(掌握)

书上154

  • 有效等价类
  • 无效等价类

2. 边界值分析(掌握)

书上159

  • 二值测试法

    取一个边界值,一个刚好超过边界的值

  • 三值测试法

    取一个不超过边界,一个在边界上,一个超过边界的值

3. 决策表(掌握)

书上162

也叫判定表

  • 条件桩:列出了问题的所有条件。通常认为列出的条件的次序无关紧要,位于表的左上部分
  • 动作桩:列出了问题规定可能采取的操作。这些操作的排列顺序没有约束,位于表的左下角部分。
  • 条件项:列出针对它所列条件的取值,在所有可能情况下的真假值,位于表的右上角部分。
  • 动作项:列出在条件项的各种取值情况下应该采取的动作,位于表的右下角部分。
规则1规则2……规则n
条件桩1
条件桩2条件项
……条件项
条件桩n
动作桩1
动作桩2动作项
……
动作桩n动作项

例子:现有某图书馆应用系统中软件的一张阅读指南决策表,读者对表中问题给予回答,若回答为肯定,标注Y(程序取真值),若回答为否定,标注N(程序取假值)。阅读建议在动作域中列出。

原始决策表

规则1规则2规则3规则4规则5规则6规则7规则8
条件1:感觉疲倦吗?YYYYNNNN
条件2:感兴趣吗?YYNNYYNN
条件3:感觉糊涂吗?YNYNYNYN
动作1:重读
动作2:继续
动作3:跳下一章
动作4:休息

化简后的决策表

规则1~4规则5规则6规7~8
条件1:感觉疲倦吗?YNNN
条件2:感兴趣吗?-YYN
条件3:感觉糊涂吗?-YN-
动作1:重读
动作2:继续
动作3:跳下一章
动作4:休息

4. 基于状态的测试,基于用例的测试,基于用户故事(敏捷开发)的测试。思想,优缺点及应用(理解)

  • 基于状态的测试

    书上166

  • 基于用例的测试

    书上170

  • 基于用户故事(敏捷开发)的测试

    书上172

5. 黑盒测试技术的比较与选择(掌握)

书上174

  • 首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法。
  • 在任何情况下都必须使用边界值分析方法。经验表明,用这种方法设计出的测试用例发现程序错误的能力最强。
  • 如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用判定表法。
  • 如果测试对象输出结果或行为方式不仅要受当前输入数据的影响,同时还要与测试对象的当前运行执行情况或其之前的事件,或之前输入数据有关,则需要采用基于状态的测试方法。
  • 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。

6. 基于经验的测试技术,三种(掌握)

书上178

  1. 错误推测法
  2. 基于检查表测试
  3. 探索性测试

7. 白盒测试技术,有哪些(掌握)

  1. 语句覆盖
  2. 判定覆盖
  3. 条件覆盖
  4. 路径测试
  5. 基本路径测试

8. 语句覆盖、判断覆盖、条件覆盖,应用(掌握)

书上183

9. 基本路径测试,应用(掌握)

书上187

第9章 软件测试管理

1. 测试组织开展测试工作的人员角色,职责(理解)

  • 测试总监负责组织级测试管理工作
  • 测试经理专注于特定软件项目的测试工作,协调资源做好项目测试管理工作。
  • 测试员负责开发测试可交付成果,并完成与动态测试过程相关的过程。
  • (软件)用户是使用软件的人。通常,用户进行验收测试,包括用户验收测试和产品软件的α测试、β测试。

2. TMMi,五个级别(掌握)

  1. 初始级别
  2. 已管理级
  3. 已定义级
  4. 已测量级
  5. 优化级