软件工程期末复习——第十二章

软件工程期末复习——第十二章

一、重要知识点

1. 软件缺陷的定义

一般来说,只有至少满足下列5个规则之一才称发生了一个软件缺陷:

  • 软件未实现产品说明书要求的功能
  • 软件出现了产品说明书指明的不应该出现的错误
  • 软件实现了产品说明书未提到的功能
  • 软件未实现产品说明书虽未明确提及但应该实现的目标
  • 软件难以理解、不易使用、运行缓慢,或者从测试员角度来看最终用户会认为不好。

2. 软件测试的定义(IEEE)

软件测试是使用人工或自动手段来运行或测定某个系统的过程,检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别

3. 黑盒测试含义

完全不考虑程序的内部结构和处理过程,只知道软件产品应该具有的功能,通过测试检验每个功能是否都能正常使用。

4. 白盒测试含义

已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明的规定正常进行。

5. 等价类或等价划分的含义

等价类划分是指分步骤地把海量的测试用例集减得很小,但过程同样有效。一个等价类或者等价划分是指测试相同或者暴露相同软件缺陷的一组测试。在寻找等价划分时,考虑把软件具有相似输入、相似输出、相似操作的分在一组,这些组就是等价划分。

6. 划分等价类关键原则

  • 边界条件:边界条件是指软件运行在计划操作界限的边界的情况。边界情况作为一种特殊情况,容易使得编程结果在边界值上出现问题,也就是说软件容易在边界上产生缺陷。因此,如果要从等价划分中选择包含的数据,那么从边界条件中进行选择可能会找出更多的软件缺陷
  • 次边界条件:普通边界条件是最容易找到的,但是有些边界在软件内部,最终用户几乎看不到,但是软件测试员仍有必要对其进行检查。这样的边界条件被称为次边界条件或者内部边界条件。
  • 默认、空白、空值、零值和无:一定要考虑建立处理默认值、空白、空值、零值或者无输入等条件的等价划分。使用软件时经常会遇到用户输入为空或为空值的情况,好的软件会处理这种情况。
  • 非法、错误、不正确和垃圾数据:此类测试没有实际的规则,只是设法破坏软件,看看软件是否能够应对用户各种各样的使用方法。例如,如果软件要求输入数字,就输入字母;如果要求输入正数,就输入负数…

7. 根据等价类设计测试用例

在确立了等价类之后,建立等价类表,列出所有划分出的等价类。

随后,根据以下原则选择测试用例:

  • 为每一个等价类规定一个唯一编号;
  • 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止
  • 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止

8. 代码覆盖的含义

代码覆盖:测试程序的状态以及程序流程,设法进入和退出每一个模块,执行每一行代码,进入软件的每一条逻辑和决策分支

  • 语句覆盖:使得每一个可执行的语句至少执行一次
  • 分支覆盖:程序中每个判断的取真分支和取假分支至少执行一次
  • 条件覆盖:设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,每个判断中的每个分支至少执行一次,能够同时满足判断覆盖和条件覆盖

9. 集成测试的策略

软件测试策略主要考虑如何把设计测试用例的技术组织成一个系统的、有计划的测试步骤

10. 单元测试含义

单元测试也称模块测试,是针对软件设计的最小单元程序模块进行测试的工作。其目的是发现模块内部的软件缺陷,修改这些缺陷使其代码能够正确运行。

11. 集成测试含义

集成测试也称组装测试,任务是按照一定的策略对单元测试的模块进行组装,并在组装过程中进行模块接口与系统功能测试

12. 软件调试含义

软件调试是在测试发现缺陷后,定位缺陷根源、修复缺陷并验证修复效果的过程,核心是"定位并解决问题",与"发现问题"的测试形成衔接。

二、次重要知识点

1. 软件测试的基本认识

  • 完全测试程序是不可能的;
  • 软件测试是有风险的行为;
  • 测试无法显示潜在的软件缺陷;
  • 找到的软件缺陷越多,就说明软件的缺陷越多;
  • 有时软件缺陷对测试具有免疫力;
  • 并非所有软件缺陷都要修复;
  • 产品说明书经常变化。

2. 软件测试基本原则

  • 所有测试都应该能追溯到用户需求;
  • 应该在测试之前就制定出测试计划;
  • Pareto原理可应用于软件测试;
  • 测试应该从小规模开始,并逐步转向大规模测试;
  • 穷举测试是不可能的;
  • 既要做通过性测试,又要做失效性测试;
  • 为了达到最佳的测试效果,应该由独立的第三方进行测试工作。

3. 判定/条件覆盖的要求

设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,每个判断中的每个分支至少执行一次。

4. 条件组合覆盖的要求

每个判定中各条件的每一种组合至少出现一次。

5. 路径覆盖的要求

使程序中每一条可能的路径都至少执行一次。

6. 静态测试含义

静态测试是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性

7. 动态测试含义

动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。

8. 失效性测试含义

测试软件系统在竞争条件、重复、压迫和重负情况下,是否工作正常。

9. 通过性测试含义

测试软件系统在正常使用情况下,其逻辑是否符合需求

10. 确认测试含义

进行确认测试是为了验证软件的有效性,即验证软件的功能和性能及其他特性是否符合用户要求。其测试过程有用户参加,并且在开发环境下进行测试,采用的测试方法为黑盒测试法。又可细分为Alpha测试和Beta测试:

  • Alpha测试:由用户在开发者的场所进行,且开发者对用户的“指导”下进行测试;开发者负责记录发现的错误和使用中遇到的问题;总之,Alpha测试是在受控的环境中进行的。
  • Beta测试:由软件的最终用户们在一个或多个客户场所进行;开发者通常不在Beta测试的现场,在开发者不能控制的环境中的“真实”应用。用户记录在Beta测试过程中遇到的一切问题,并且定期把这些问题报告给开发者。

11. 系统测试含义

测试软件系统是否能与硬件协调工作,测试与其他软件协调运行的情况。


软件工程期末复习——第十二章
http://example.com/2026/01/12/se11/
作者
谢斐
发布于
2026年1月12日
许可协议