前言
《软件测试-基于问题驱动模式》课本复习
第一章:软件测试入门
软件测试的概念
软件测试是贯穿整个软件开发生命周期对软件产品进行验证和确认的活动过程。尽快尽早的发现软件中的缺陷,也是对软件产品质量的评估从而提供质量有关的信息。
软件缺陷的概念
软件缺陷,即软件中存在的任何一种破坏正常运行能力的问题、错误,其结果会导致软件产品在某种程度上不能满足用户的需要,软件缺陷分为程序内部的错误和程序外部的失效;软件缺陷不仅是程序的错误,还应该包括需求、设计中存在的问题。
软件质量的概念
系统、组件或过程满足特定需求的程度,和满足客户/用户需求或期望的程度。质量分为内部质量、外部质量和使用质量。
产品/使用质量模型及其属性
- 内部/外部质量模型及其属性
- 使用质量模型及其属性
软件测试的价值与定义
辩证的理解测试
狭义/广义
狭义的软件测试
只有动态的执行软件时进行测试
广义的软件测试
包括静态测试和动态测试在内的各种测试的总称
静态/动态
静态测试
包括需求、设计和代码等的评审。引入静态测试意义重大,能够尽早的发现问题,极大地降低软件开发成本。不需要运行软件系统,而是对软件的半成品(如需求文档、设计文档、代码)进行评审,即开展需求评审、设计评审、代码评审等活动。
动态测试
需要运行软件才能完成测试的一种形式
软件测试的层次
一共有四层:
- 单元测试
- 集成测试
- 系统测试
- 验收测试
软件测试的类型
- 按测试的对象或范围分类,如单元测试、文档测试、系统测试等)
- 按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等
- 根据测试过程中被测软件是否被执行,分为静态测试和动 态测试
- 根据是否针对系统的内部结构和具体实现算法来完成测试 ,可分为白盒测试和黑盒测试
软件测试和SQA的区别和联系
第二章:需求与设计评审
静态测试(评审)形式及其流程
评审的形式:互为评审、走查和会议评审等不同形式
软件需求的层次
其中业务层次又包括:
- 业务需求:解决什么关键问题,核心的诉求是什么,达到什么目标,相当于产品的愿景。
- 用户角色需求/干系人需求:相关利益者的需求,每个用户角色有什么特定的需求。从用户行为去分析,即对应用例和用户故事,运维、技术支持等相关人员的需求,一般也可以并入用户角色的需求。
- 功能性和非功能需求:软件为了满足上述也无需求,及相关利益者的需求,而具备的功能和非功能性(系统)的能力。
需求与设计评审标准
正确性
检查在任意条件下软件系统需求定义,以及其说明的正确性
完备性
涵盖系统需求的功能,性能,输入/输出,条件限制、应用范围等的程度,覆盖率越高,完备性越好
易理解性
文档的描述性被理解的容易程度,包括清晰性。
一致性
所定义的需求之间没有相互排斥、冲突和矛盾,前后一致
易测试性
容易进行相关测试
易追溯性
每一项需求定义可确定其来源
设计评审的层次
设计评审方法
从高层到底层
不断从测试角度去问开发
借助UML等建模工具
第三章:单元测试
单元测试的概念和主要形式
单元测试是针对软件的基本工作单元,进行正确性检验的 测试工作。
单元测试中类测试的分类
动态测试
- 方法内测试
- 方法间测试
在测试类功能实现时,应该首先保证类成员方法的正确性,类方法的正确行为只是类能够实现要求的功能基础。
静态测试
首先需要保证要测试的类有完整和正确的说明,并且已经在模型环境下进行了测试,类的规格说明使用对