随着客户对软件产品的质量要求越来越高,软件测试在整个软件研发中的地位也在逐步地提高,相应地要求测试人员掌握的测试知识和技能等也在增加。为了有效的开展软件测试工作,首先测试人员需要对软件测试有个统一的认识。
一、软件测试的目的
针对软件产品开展测试活动之前,首先需要明确本轮测试的主要目的是什么,然后才能确定测试策略和采用的测试方法,以及可以选择那些度量对测试过程和测试对象的质量进行评估。不同的组织和软件产品、软件开发和测试阶段的不同,需要实现的测试目的不尽相同。
总体而言,软件测试的目的主要包括下面四种:
1) 发现缺陷。软件测试是为了发现缺陷而检查或执行测试对象的过程。基本思想是假设测试对象是存在问题的,强调测试人员不断地设想和思考开发人员可能出现的错误,如理解错误、不良习惯等。
2) 增强对软件产品质量的信心。确信测试对象能够按照用户需求、软件需求文档、功能设计文档工作。
3) 为决策者提供信息。测试过程中可以得到关于测试对象质量和风险的状态和信息。
4) 预防缺陷。通过收集和分析测试过程中得到的测试对象质量信息和测试过程的信息,如缺陷在不同模块中的分布、在不同阶段的分布,有助于将来项目避免重复某些错误,从而逐步提高测试的成熟度。
二、软件测试类型
软件测试不仅是运行测试对象进行相关的检查活动,也不只是软件开发生命周期的一个阶段,软件测试贯穿整个软件开发过程。包括静态测试和动态测试两部分。
发现测试对象中的缺陷是软件测试的重要目的。缺陷发现和修复的越早,其需要的成本越低;同时,在早期发现和修复缺陷可以防止将缺陷引入开发的下个阶段,避免缺陷的“雪崩”效应。因此静态测试适合软件开发生命周期中早期选择的重要测试技术。
图1软件测试类型架构图
三、软件测试的评估
良好的测试应该具备下面的特点:
1) 每个开发活动都有测试活动相对应;
2) 每个测试级别都有特定的测试目的;
3) 与开发活动对应的每个测试级别,都应进行相应的测试设计和执行;
4) 通过风险分析和评估确定测试重点和优先级,以替代穷尽测试。