什么因素会影响测试估算(转)
来自http://www.51testing.com/html/54/n-229554-1.html
为了有效地开展测试估算工作,得到合理的测试规模和测试工作量,以帮助确定和安排测试资源、测试持续时间、测试成本,测试经理首先需要了解影响测试估算的主要因素。测试估算应针对测试过程中的所有阶段和所有的测试活动(例如:测试计划和控制、测试分析和设计、测试实现和执行、评估出口准则和报告以及测试结束活动)。由于测试执行通常在项目的关键路径上,测试估算的成本和工作量,特别是测试执行持续时间是管理人员特别关注的。然而,当软件的整体质量很低或还未知的时候,对测试的估算会比较困难,并且估算得到的结果也不可靠。另外,估算过程中所作的假设应该作为测试估算的一部分并文档化。测试估算应考虑影响测试活动的成本、工作量和持续时间等所有因素,这些因素包括(但不仅限于此):
● 系统质量所要求的级别。
● 被测试系统的规模。
● 以前测试项目的历史数据(也可包括基准数据)。
● 过程因素:包括测试文档的编写、维护测试、过程成熟度,以及项目对估算准确度的要求。
● 环境因素:包括测试自动化和工具、测试环境、测试数据、开发环境、项目文档(例如:需求规格说明、设计规格说明等),以及可重用的测试工作产品。
● 人员因素:包括技术负责人和管理人员的承诺和期望、项目团队的技能、经验和态度、项目团队的稳定性、项目团队的关系、测试和调试环境的支持、是否有合格的承包商和顾问以及相关领域的知识。
其他因素也会影响测试估算,包括过程的复杂度、技术、组织、测试利益相关者、测试子团队(特别是当子团队处于不同的地理位置);项目启动、培训、定向需求;新工具的熟悉和开发、技术、定制的硬件、测试件的数目;非常详细的测试规格说明的要求(特别是使用一个不熟悉的文档标准时);难以确定的组件交付时间,以及敏感的测试数据(例如:对时间敏感的数据)。通过对上面的各种因素分析,可以将影响测试估算的因素归纳为以下六个方面。
(1)产品的特点
软件项目开发的目的是提供某种服务或者某种产品,因此,开发的软件系统应用领域的复杂度、可靠性和安全性等方面的需求是测试估算需要考虑的重要因素,例如:安全关键系统和游戏软件,对测试工作的要求是完全不一样的(针对安全关键系统需要进行更加严格和全面的测试),其关注的测试重点也不一样,导致测试工作量的估算也是不一样的。因此,针对不同产品的特点,在估算测试工作量的时候需要区别对待。
(2)测试的规模
软件产品或者基于软件的系统的测试规模是进行测试工作量估算的一个基础和重要输入。在进行测试估算的时候,需要详细考虑测试对象的规模。测试的规模至少需要从下面几个方面进行考虑:
● 需要新设计的测试用例的数目。
● 需要执行的新的测试用例的数目。
● 需要进行的回归测试用例数目。
● 测试对象中可能存在的缺陷数目,以及因这些缺陷而引起的确认测试和回归测试的工作量。
(3)工作产品质量
测试估算是基于软件开发过程中得到的工作产品而展开的,因此,工作产品的质量直接会影响测试的估算。下面是在测试估算过程中针对工作产品质量需要考虑的几个方面:
● 开发文档的质量:是指在开发过程中输出的相关文档的质量,如系统需求规格说明、概要设计规格说明、详细设计规格说明等。由于这些开发文档是测试活动(例如:测试设计和测试执行)的基础,它们的质量情况会直接影响测试估算的正确性和有效性。如果系统需求规格说明中只定义了功能性需求,而遗漏了非功能性需求,则会导致在测试估算中遗漏这方面的工作,从而影响测试估算的正确性。
● 测试文档的质量:一方面开发文档的质量会影响测试文档的质量,另一方面,测试文档的质量也会影响后续的测试执行的质量。测试文档包括测试计划、测试设计规格说明、测试用例规格说明、测试规程规格说明等。测试人员的技能水平和在项目相关领域的背景知识的不同,都会影响测试文档的质量,例如:测试计划中没有确定测试方法、测试技术和测试范围等,直接会影响测试估算的正确性和有效性。● 软件代码的质量:开发文档的质量和开发人员的技能、知识水平会影响软件代码的质量。而软件代码是测试过程中重要的测试对象之一,它的质量高低直接影响了测试的执行。如果代码质量很差,那么测试执行可能并不是原来计划中的一次,而会是多次。同时,差的代码质量也意味着其中存在较多的缺陷数目,从而会增加缺陷相关的确认测试和回归测试的工作量。
● 测试对象中可能存在的缺陷数目以及后续的确认和回归测试的工作量,这个在测试估算过程中经常容易被忽视。测试执行过程中发现的缺陷在修改完成以后,需要测试人员进行确认测试和相关的回归测试;假如在测试计划中没有考虑这些测试活动,常常会降低测试估算的精度,从而导致测试后期的测试任务非常繁重。
(4)项目参与者
项目参与者包括项目系统人员、开发人员、测试人员以及管理人员等,是测试估算的重要输入。不同项目参与者的能力是不同的。在项目团队比较稳定的情况下,测试估算可以从该团队的历史信息中获得一些经验数据,从这些数据中可以得到测试组织的生产力水平和能力,例如:测试用例执行的速率(测试用例数目/星期)、测试用例的有效性(发现的缺陷数目/测试用例数目)等。
(5)过程成熟度
组织的过程成熟度是影响测试估算的又一个重要因素,例如:开发过程的成熟度和测试过程的成熟度。软件产品的质量很大程度上取决于整个组织的过程成熟度,而不仅仅是某个人或者某部分人的能力。因此,组织的过程成熟度直接会影响测试估算,具体表现在:
● 开发过程成熟度,直接决定了开发得到的工作产品的质量,例如:软件的需求规格说明、设计规格说明、代码等工作产品的质量。软件开发得到的工作产品都可以是测试对象,同时它们也是测试的基础。这些工作产品的质量会直接影响测试估算。
● 测试过程成熟度,决定了主要的测试阶段和活动。不同的测试过程成熟度,需要执行的测试活动是不一样的,例如:某些组织的测试执行阶段,包括了正式测试执行之前的预测试;有的组织的测试执行阶段,可能强调回归测试。因此,测试过程的定义和成熟度也会影响测试的估算。
● 组织级别的度量数据,反映了该组织的能力,例如:组织的测试用例执行的速率(测试用例数目/星期)、测试用例的有效性(缺陷数目/测试用例)等,这些度量数据是进行测试估算的重要输入。
(6)测试的交付物
测试过程中需要输出一些测试相关的文档,如测试计划、测试设计规格说明、测试用例规格说明、缺陷报告和测试报告等,这些文档的完成都需要一定的工作量。缺陷报告和测试报告的工作量在测试估算中常常容易被忽视。在测试执行过程中,缺陷报告是测试团队重要的输出。在测试执行中发现缺陷以后,需要测试人员去重现和确认发现的缺陷,并以书面的形式提交给开发人员,对缺陷的状态进行跟踪、管理和验证;测试总结报告或者测试报告指的是对软件系统进行测试产生的行为及结果的描述文件。测试总结报告以文档的形式描述了被测软件的测试情况和测试结果,并对相关的结果和数据进行分析,向项目管理层提供信息和建议。
浙公网安备 33010602011771号