本资料汇集了西南科技大学软件工程课程中关于软件测试的关键知识点与习题解析,旨在帮助学生系统地掌握软件测试理论和实践技能,为考试做好充分准备。
### 西南科技大学软件测试复习资料知识点概览
#### 一、软件测试基础
##### 1.1 定义与目的
- **定义**:
- IEEE定义:通过手动或自动化的方式运行或测试某个程序的过程,旨在检测其是否符合预定的需求,并找出预期结果与实际结果之间的差异。
- 2002年定义:同样通过手动或自动化的方式运行或测试被测试件的过程,目的是验证其是否满足预定的需求,并识别预期效果与实际成果之间的差异,以帮助识别软件的正确性、完整性和质量。
- **目的**:尽快尽早地找出被测试软件中存在的缺陷,促使设计工程师和程序员尽快解决这些问题,并评估软件的整体质量水平。
##### 1.1.3 测试原则
- **可追溯性**:所有测试活动都应当能够追溯到用户需求。
- **尽早开展防御性测试**:测试活动应该尽可能早地进行,以提高软件质量和降低质量成本。
- **投入产出原则**:测试不应无限期进行,而应在适当的时机终止。
- **回归测试**:在修复了已知的缺陷后,应对软件可能受影响的部分进行回归测试,以确保修复不会引入新的缺陷。
- **8020原则**:系统中大约80%的缺陷通常来自于20%的模块。
- **独立测试机构**:设立独立的测试机构或委托第三方进行测试。
##### 1.2 软件缺陷
- **定义**:软件缺陷是指软件产品与其预期属性之间的偏差,可以分为检测缺陷和残留缺陷。
- **检测缺陷**:在软件交付给用户之前被检测出来的缺陷。
- **残留缺陷**:软件发布后仍然存在的缺陷,包括但不限于在安装前未被检测出来或者已经发现但尚未修复的缺陷。
- **分类**:软件缺陷可以根据不同的标准进行分类,如按照严重程度、出现频率等进行分类。
##### 1.3 软件测试分类
- **按开发阶段划分**:
- **单元测试**:检查每个单元是否能够按照详细设计说明中的功能、性能、接口和设计约束等要求正确实现,以及发现单元内部可能存在的各种缺陷。
- **集成测试**:测试单元之间的接口关系,确保各个单元之间的交互能够正确进行。
- **系统测试和确认测试**:在真实的或模拟的系统运行环境中,验证和确认集成后的硬件和软件系统是否达到了需求规格说明书规定的要求。
- **验收测试**:根据项目任务书、合同或其他约定的验收依据文档对整个系统进行评测,以决定是否接受该系统。
- **按测试技术划分**:
- **白盒测试**:基于对程序内部结构和处理过程的理解来进行测试,以确保所有的结构和路径都是正确的,并且软件内部的动作按照设计说明正常运行。
- **黑盒测试**:只关注程序的输入和输出,而不考虑程序内部的具体实现细节,通常用于验证软件是否按照需求规格说明书的规定正常运行。
- **灰盒测试**:结合白盒测试和黑盒测试的特点,既关注输出对于输入的正确性,也关注内部的表现。
#### 二、软件测试模型
##### 2.1 V模型
- **优点**:V模型反映了软件从需求定义到实现与测试活动之间的关系,强调在整个软件项目的生命周期中需要经历的若干开发与测试级别的对应关系。
- **缺点**:在编码完成后才进行测试,可能导致缺陷较晚被发现;开发和测试过程被划分为固定边界的阶段,使得相关人员难以跨越这些界限来获取信息;容易产生误解,认为测试是在开发之后的一个阶段,且仅针对程序进行。
##### 2.2 W模型
- **优点**:测试与开发同步进行,有助于尽早、全面地发现问题;有利于及时了解项目难度和测试风险,采取应对措施,从而减少总体测试时间,加快项目进度。
- **缺点**:测试和开发活动仍然保持线性前后关系,不适用于迭代开发模型。
##### 2.3 H模型
- **优点**:测试活动相对独立,可以与其他流程并发进行;只要测试准备工作完成,就可以随时开始执行测试,有助于更早地发现项目早期存在的问题。
- **缺点**:测试进度需要由测试人员和项目管理人员共同控制,对相关人员的能力要求较高。
#### 三、软件测试管理
- **相关概念**
- **缺陷消除率 (DRE)**:衡量测试期间发现的缺陷数量与未发现的缺陷数量的比例,通常表示为未发现缺陷数量除以测试期间发现的缺陷数量。
- **缺陷损耗**:计算总的缺陷数量与在不同阶段发现的缺陷数量之间的比例,以评估缺陷发现的有效性。
- **测试管理流程**
- 项目需求管理及建立
- 测试用例建立
- 测试单建立