1. 软件测试的基本要求
按时、高质量地发布软件产品,而软件测试是软件质量保证的重要手段之一,同时也是为了防止因软件缺陷而带来的损失与悲剧
2. 进行软件测试的原因
主要是:为了保证软件质量。
- 软件总是存在缺陷
- 提高软件质量,降低维护费用
- 测试是所有工程学科的基本组成单元
- 尽早发现软件问题,软件就越容易更正,发布就会越稳定
3. 软件测试的定义
软件测试,是对软件产品和阶段性工作成果进行质量检验,力求发现其中的各种缺陷,并督促缺陷得到修正,从而控制软件产品的质量。
在SWEBOK3.0(2014年发布的软件工程知识体系)中,将软件测试定义为:从一个通常是无限执行域(集合)中选择合适的、有限的测试用例,对程序所期望的行为及进行动态验证的活动过程。
4. 测试与质量保证的关系
软件质量保证(SQA),通过对软件产品有计划地进行评审和审计来验证软件是否合乎标准的系统工程,通过协调、审查和跟踪以获取有用信息,形成分析结果以指导软件过程。更侧重于管理。
SQA与测试之间相辅相成,既存由包含又存有交叉关系。
SQA指导、监督软件测试的计划和执行,督促测试工作的结果客观、准确和有效,并协助测试流程的改进;而软件测试是SQA的重要手段之一,为SQA提供所需的数据,作为质量评价的客观依据。
相同点在于:二者都是贯穿整个软件开发周期的流程
不同点在于:SQA是一项管理工作,侧重于对流程的评审和流程;而测试是一项技术性的工作,侧重对产品进行评估和验证。
5. 软件产品质量
-
功能性
软件所实现的功能达到设计规范和满足用户需求的程度
-
可用性
对于软件,用户学习、操作、准备输入和理解输出所做努力的程度,如安装简单方便、容易使用、界面友好、并能适用于不同特点的用户,包括对各类人群能否提供产品使用的有效途径或手段
-
可靠性
在规定的时间和条件下,软件所能维持其正常的功能操作、性能水平的程度
-
性能
在指定条件下,软件对操作的响应速度以及实现某种功能所需的计算机资源(包括内存大小、CPU占用时间)的有效程度
-
容量
系统的接受力、容纳或吸收的能力,或某项功能的最大数据量或最大限度,有时需要确定系统特定的需求锁能容纳的最大量、所能表现的最大值。如:Web系统能承受多少并发用户同时访问,网络会议系统可以承受的与会人数等
-
可测量性
系统某些特性可以通过一些量化的数据指标描述其当前状态或设定状态
-
可维护性
当软件投入运行应用后,需求发生变化、环境改变或软件发生错误时,进行相应修改所做努力的程度
-
兼容性
软件在不同系统或环境容易程度,或是系统和外部条件共同工作的容易程度。表现在多个方面,如系统软件和硬件的兼容性、不同版本的软件系统和数据的兼容性
-
可扩展性
指将来增加新功能、扩充系统能力的难易程度
6. 软件缺陷定义
软件缺陷是指计算机系统或者程序中存在的一中破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵,其结果会导致软件产品在某种程度上不能满足用户的需要。
可分为:
- 从产品内部来说,是软件产品开发或维护的过程中所存咋的错误、瑕疵等各种问题
- 从外部看,是系统所需要实现的某种功能的失效或违背
所以,软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的需求。