《山东大学软件测试技术复习指南》是一本专为备考该课程的学生设计的学习资料,内容涵盖了考试重点、难点解析及历年真题详解,旨在帮助学生高效复习和掌握软件测试技术知识。
### 山东大学软件测试技术复习提纲知识点详解
#### 第一章 软件测试技术概述
**1. 软件测试的发展历程**
- **初级阶段(1957~1971)**: 在这个阶段,软件测试被视为一种事后检验活动,主要目的是检查软件产品的质量和功能是否符合预期,缺乏系统的测试方法。
- **发展阶段(1972~1982)**: 从这一时期开始出现了正式的关于软件测试的会议,并且一些基本的测试技术和方法论逐渐被提出和应用。
- **成熟阶段(1983至今)**: 随着国际标准Std 829-1983的发布,软件测试成为了独立的专业领域,成为软件工程学科中的一个重要组成部分。
**2. 正向测试与反向测试**
- **正向测试**: 基于正常情况下的思维模式进行验证。其主要目标是确保在规定环境中运行的功能能够按预期工作。
- **反向测试**: 这种方法侧重于寻找潜在的错误和系统弱点,通过逆向思考来发现软件中的缺陷。
- **二者关系**: 正向测试与反向测试相辅相成,在全面保障软件质量方面具有重要作用。
**3. 软件测试的经济视角**
- **经济原则**: 旨在以最低的成本达到最高的产品标准。这意味着需要尽早开始进行测试,以便及早发现并解决问题。
- **经济观点**: 测试成本必须低于由缺陷导致的实际损失,这样才能确保测试的价值和意义。因此有效地管理与优化整个过程对控制成本至关重要。
**4. SQA(软件质量保证)与软件测试的关系**
- **SQA**: 包括一系列的活动来确保产品质量符合预期标准。
- **关系**: 软件质量保证不仅包括了传统的软件测试,还涵盖了开发流程中的其他质量管理方面。通过监控整个过程以提高最终产品的质量和准确性。
#### 第二章 缺陷管理
**1. 缺陷定义与判定准则**
- **定义**: 任何不符合预期的行为或错误都可以被视为缺陷。
- **判定准则**: Test Oracle是一种用于判断测试结果是否符合预期的方法,包括需求说明书、竞争对手产品等不同类型的Test Oracle类型。
**2. 缺陷产生的原因**
- 技术问题: 如算法错误和接口参数不匹配
- 团队合作: 沟通不良或理解偏差也会导致缺陷的产生
- 文档问题: 错误文档及需求描述不清
**3. 产品质量分类**
- 内部质量:软件结构与内部实现的质量,如代码质量和模块化程度。
- 外部质量:软件在特定环境中的表现,包括可靠性、效率等。
- 使用质量:用户视角下的评估标准,侧重于可用性和满意度。
**4. 软件规格说明书缺陷的理解**
- 沟通问题: 开发者与客户间可能存在沟通障碍
- 描述不清: 规格文档可能过于模糊导致实施时产生歧义
- 需求变化:用户需求的变化未得到及时更新,可能导致实际开发偏离预期
**5. Verification(验证)和Validation(确认)的区别**
- **Verification**: 确认产品是否按照规定的过程和方法进行构建。
- **Validation**: 检查最终结果是否满足用户的期望。
**6. 不同层次测试的对象与任务**
- 单元测试:对单个模块的功能进行验证
- 集成测试:检查多个模块之间的接口连接情况
- 系统测试:全面检验整个系统的功能和性能
- 接受性/验收测试(用户): 用户确认软件符合其业务需求
**7. 静态测试的内容与形式**
- 内容包括文档评审、代码审查及静态分析等。
- 形式有评审会议、同行评议以及走查等多种方式。
**8. 测试工作流程**
从需求分析开始,经过策略制定和计划编制阶段,再到设计实现环节。执行并评估测试结果后撰写报告,并提出改进措施以优化后续测试过程。
#### 第三章 测试技术与方法
**1. 等价类划分**
- **概念**: 将输入域划分为若干等价子集。
- **目的**: 减少用例数量同时保持覆盖率不变。
**2. 边界值分析**
- 定义: 选取刚好等于、略大于或小于边界值得数据作为测试实例。
- 目的:发现更多边界条件下的错误和异常情况。
**3. 决策表与因果图**
- **决策表**: 描述在不同条件下组合生成所有可能的测试用例。
- **因果图**: 通过图形化方式表示输入输出之间的关系,有助于设计全面