一、软件测试与软件质量
1、软件测试的定义
测试(test)——以检验产品是否满足需求为目标。
软件测试——在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括软件形成过程的文档、数据以及程序。
2、软件质量的定义
【ISO14598】软件质量——软件特性的总和,软件满足规定或潜在用户需求的能力。
【ISO9126】 软件质量——软件满足规定或潜在用户需求特性的总和,包括内部质量、外部质量、使用质量。
3、软件测试与质量保证的区别
质量保证(QA):
通过预防、检查与改进来保证软件质量。
采用“全面质量管理”和“过程改进”的原理开展质量保证工作。
所关注的是软件质量的检查与测量。
QA的工作是软件生命周期的管理以及验证软件是否满足规定的质量和用户的需求。
主要着眼与软件开发活动中的过程、步骤和产物,而不是对软件进行剖析找出问题或评估。
软件测试:
对过程的产物以及开发出的软件进行剖析。
测试人员要执行软件,对过程中的产物(开发文档和源代码)进行走查,运行软件界,以找出问题,报告质量。
软件测试是保证软件质量的一个重要环节。
二、软件测试目的
1、以最少人力、物力、时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
2、对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度,为用户选择与接收软件提供有力的依据。
3、帮助发现当前开发工作所采用的软件过程的缺陷,以便进行软件过程改进。
4、通过对测试结果的分析整理,修正软件开发规则,并为软件可靠性分析提供依据。
三、软件测试原则
1、所有的团结测试都应追溯到用户需求
2、应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭
3、完全测试是不可能的,测试需要终止
4、测试无法显示软件潜在的缺陷
5、充分注意测试中的群集现象
6、程序员应避免检查自己的程序
7、尽量避免测试的随意性
四、软件测试对象
1、文档测试
需求规格说明、概要设计规格说明、详细设计规格说明、源程序
2、模块测试/单元测试
每一个程序模块
3、集成测试
集成在一起的模块组件
4、确认测试
检测、证实软件是否满足软件需求说明书中规定的要求
5、系统测试
所有程序模块集成为软件系统,安装在运行环境下,对硬件、网络、操作系统及支撑平台构成的整体系统进行测试
五、软件测试分类
1、按开发阶段
单元测试
集成测试
确认测试
系统测试
验收测试
2、按测试实施组织分类
开发方测试/验证测试/α测试
用户测试/β测试
第三方测试
3、按测试技术分类
白盒测试/结构测试
黑盒测试
灰盒测试
六、软件测试过程模型
1、V模型
2、W模型
3、H模型
4、X模型
5、前置测试模型
七、软件生命周期测试策略