软件测试是软件质量保证的关键步骤。美国质量保证研究所对软件测试的研究结果表明:越早发现软件中存在的问题,开发费用就越低;在编码后修改软件缺陷的成本是编码前的10倍,在产品交付后修改软件缺陷的成本是交付前的10倍;软件质量越高,软件发布后的维护费用越低。另外,根据对国际著名IT企业的统计,它们的软件测试费用占整个软件工程所有研发费用的50% 以上。相比之下,中国软件企业在软件测试方面与国际水准仍存在较大差距。首先,在认识上重开发、轻测试,没有认识到软件项目的如期完成不仅取决于开发人员,更取决于测试人员;其次,在管理上随意、简单,没有建立有效、规范的软件测试管理体系;另外,缺少自动化工具的支持,大多数企业在软件测试时并没有采用软件测试管理系统。所以对国内软件企业来说,不仅要提高对软件测试的认识,同时要建立起完善的软件测试管理体系
建立软件测试管理体系的主要目的是确保软件测试在软件质量保证中发挥应有的关键作用:
软件产品的监视和测量 对软件产品的特性进行监视和测量,主要依据 软件需求 规格说明书,验证产品是否满足要求。所开发的软件产品是否可以交付,要预先设定质量指标,并进行测试,只有符合预先设定的指标,才可以交付。
对不符合要求的产品的识别和控制 对于软件测试中发现的 软件缺陷 ,要认真记录它们的属性和处理措施,并进行跟踪,直至最终解决。在排除 软件缺陷 之后,要再次进行验证。
产品设计和开发的验证 通过设计 测试用例 需求分析 、软件设计、程序代码进行验证,确保程序代码与软件设计说明书的一致,以及软件设计说明书与需求规格说明书的一致。对于验证中发现的不合格现象,同样要认真记录和处理,并跟踪解决。解决之后,也要再次进行验证。
软件过程 的监视和测量 从软件测试中可以获取大量关于软件过程及其结果的数据和信息,它们可用于判断这些过程的有效性,为软件过程的正常运行和持续改进提供决策依据。
一般应用过程方法和系统方法来建立软件测试管理体系,也就是把测试管理作为一个系统,对组成这个系统的各个过程加以识别和管理,以实现设定的系统目标。同时要使这些过程协同作用、互相促进,从而使它们的总体作用大于各过程作用之和。其主要目标是在设定的条件限制下,尽可能发现和排除 软件缺陷 。测试系统主要由下面6个相互关联、相互作用的过程组成:
测试规划
确定各测试阶段的目标和策略。这个过程将输出 测试计划 ,明确要完成的测试活动,评估完成活动所需要的时间和资源,设计测试组织和岗位职权,进行活动安排和资源分配,安排跟踪和控制 测试过程 的活动。
测试规划与软件开发活动同步进行。在 需求分析 阶段,要完成验收测试计划,并与需求规格说明一起提交评审。类似地,在 概要设计 阶段,要完成和评审系统测试计划;在 详细设计 阶段,要完成和评审 集成测试 计划;在编码实现阶段,要完成和评审 单元测试 计划。对于 测试计划 的修订部分,需要进行重新评审。
测试设计
根据 测试计划 设计测试方案。测试设计过程输出的是各测试阶段使用的 测试用例 。测试设计也与软件开发活动同步进行,其结果可以作为各阶段 测试计划 的附件提交评审。测试设计的另一项内容是 回归测试 设计,即确定回归测试的用例集。对于 测试用例 的修订部分,也要求进行重新评审。
测试实施
使用 测试用例 运行程序,将获得的运行结果与预期结果进行比较和分析,记录、跟踪和管理软件缺陷,最终得到 测试报告
配置管理
测试 配置管理 是软件配置管理的子集,作用于测试的各个阶段。其管理对象包括 测试计划 、测试方案(用例)、测试版本、测试工具及环境、测试结果等。
资源管理
包括对人力资源和工作场所,以及相关设施和技术支持的管理。如果建立了测试实验室,还存在其他的管理问题。
测试管理
采用适宜的方法对上述过程及结果进行监视,并在适用时进行测量,以保证上述过程的有效性。如果没有实现预定的结果,则应进行适当的调整或纠正。
此外,测试系统与软件修改过程是相互关联、相互作用的。测试系统的输出( 软件缺陷 报告)是软件修改的输入。反过来,软件修改的输出(新的测试版本)又成为测试系统的输入。
根据上述6个过程,可以确定建立软件测试管理体系的6个步骤:
1、识别软件测试所需的过程及其应用,即测试规划、测试设计、测试实施、 配置管理 、资源管理和测试管理;
2、确定这些过程的顺序和相互作用,前一过程的输出是后一过程的输入。其中, 配置管理 和资源管理是这些过程的支持性过程,测试管理则对其他 测试过程 进行监视、测试和管理;
3、确定这些过程所需的准则和方法,一般应制订这些过程形成文件的程序,以及监视、测量和控制的准则和方法;
4、确保可以获得必要的资源和信息,以支持这些过程的运行和对它们的监测;
5、监视、测量和分析这些过程;
6、实施必要的改进措施。
所谓工欲善其事, 必先利其器 ,有了事半功倍的工具,自然能提高工作效率,软件测试管理系统就是建立软件测试管理体系、保证软件测试顺利进行的利器。i-Test 2.0是中科软件公司从软件测试的需求出发,按照国际质量管理标准研制的软件测试管理系统。
它采用B/S结构,可以安装在Web服务器上,项目相关人员可以在不同地点通过Internet同时登录和使用i-Test,协同完成软件测试,可减少为了集中人员而出差所产生的费用。它还提供相应的自动化功能,可高效地编写、查询和引用 测试用例 ,快速填写、修改和查询 软件缺陷 报告,减少了人力投入。它自带的 测试用例 数据库和 软件缺陷 数据库,可以帮助项目成员更好地实施软件测试。
在具体的 软件缺陷 中,它将其生命周期分为6个生命状态:open、working、verify、cancel、close和defer,能详细记录、跟踪和管理每个软件缺陷的生命过程,直至排除这个缺陷。它还为 软件缺陷 设定了严重级别、优先级、缺陷类型等属性,可自动分清软件缺陷的轻重缓急,并能提供相关的分析和统计功能。
此外,除了可以监测和分析软件的质量,i-Test还可以自动统计程序员和测试人员的工作进度。它提供的测试文档模板,可以将测试文档及数据直接传送到MS Office,使排版、打印等操作更为便捷。