在进行软件测试工作量估计时,首先要考虑到三个状态,第一个是软件测试的理想状态,即无缺陷状态,在整个测试活动中软件需求与测试需求是明确、完备的,软件的设计与编码均无缺陷,测试设计与测试执行是无差错的;第二个是软件测试活动过程中造成的缺陷,即软件测试内部原因引入的缺陷状态,包括了引入的测试需求缺陷、引入的测试设计缺陷和引入的测试执行缺陷三个部分;第三个是软件开发活动过程中造成的缺陷,即软件测试外部原因引人的缺陷状态,包括了引入的需求缺陷、引入的设计缺陷和引入的编码缺陷三个部分。明确了三个状态后,第一步要得到软件项目规模,第二步估计软件测试规模,第三步确定软件测试生产率。得到这三种数据后,就可以对软件测试的工作量进行估计。
影响软件测试工作量估计的因素
1、技术活动
1)需求分析
每个项目的软件测试都始于软件测试需求,测试方应根据合同或其他等效文件,以及被测软件的需求说明书或软件设计文档,分析出对应的软件测试需求。从软件测试估计的角度来看,软件测试在很大程度上依赖于软件需求的准确性和完备性。估计中最大的难题是:频繁的软件需求变更引起测试需求的变更,不完善的测试需求分析和质量低下的测试需求规格说明,导致在软件测试周期中,测试需求通常是不稳定并且持续增长的,甚至在软件测试用例执行阶段还会增长,使得测试工作量不断增加
2)规模
软件测试规模是软件测试工作量估计的基础,这里软件测试规模指的是测试用例数。影响软件测试规模的因素有:测试需求分析确定的测试级别和测试类型。
3)测试用例的设计和执行
软件测试绝大部分的工作量分布在测试用例的设计和测试执行上,测试用例的可重用性;测试用例的可执行性;测试用例的精简性;测试环境的稳定性和可用性;人员(数量、熟练度、稳定性);测试数据的可用性;测试用例的复杂度;操作被测软、硬件环境的特定专业技术;使用软件测试工具所需的专业技术;特定业务测试技术的可重用性;测试技术的复杂度等都是影响测试进度和工作量估计的关键因素。
2、管理活动
软件测试管理活动包括:测试策划、测试跟踪监督、风险管理、需求管理、配置管理、质量保证。
3、支持活动
软件测试支持活动包括:所需培训、数据处理(有效数据的统计、测试结果的分析)、文档处理(技术文档的编制、技术文档的变更)、评审。
软件测试估计的方法
1、软件测试规模估算
1)软件测试无缺陷状态的规模。软件项目规模能够从通过专家评审并认可的软件项目估计结果报告中获取。根据软件项目规模和软件测试需求分析确定的测试级别、测试类型和测试项,利用估计人员的工作经验估计出软件测试活动无缺陷状态的规模。使用功能点度量可以估计测试用例总数:测试用例数的最小值约等于应用程序的功能点总数的1.15次冥;测试用例数的平均值约等于应用程序的功能点总数的1.2次冥;测试用例数的最大值约等于应用程序的功能点总数的1.3次冥。这些经验法则是基于对规模在100~10000个功能点之间的软件项目的观察而得出的,并不是非常准确,但是有助于估计人员在使用功能点度量估计测试用例总数的时候首先能够得到一个范围值。