实施测试过程改进的五个步骤
综合了组织需要进行的所有活动,测试过程改进的实施需要采取以下五个步骤(见图表1):
● 与发起人沟通并理解业务目标
● 通过审查和面谈来评估当前测试过程
● 报告评估结果并建立执行路线图
● 实施建议的改进措施
● 测量实施后的效果
第1步:与发起人沟通并理解业务目标
发起人是指分配测试过程改进项目的人,或倡导对测试过程进行评估的人,或签署测试过程咨询协议的人。开始测试过程评估的首要步骤是与测试过程评估的发起人沟通,详细了解组织的过程和业务目标。很多企业都认识到必须改进其测试过程,但是对如何改进以及改进的必要步骤却不是很清楚或者没有一个清晰地思路。经过与发起人的细致讨论,要为测试过程改进定义明确的目标。无论使用什么方式进行测试过程评估,首要考虑的因素都是建立评估的目标。评估的目标根据组织的类型及其需要会有所不同,一些例子如下:
● 减少测试费用
● 提高测试的有效性
● 提高测试的效率
● 提高组织总体的测试成熟度
● 提高测试收益的可见性。等等
在组织要求的基础上,我们必须制定明确的达成的目标,并将其作为测试过程评估的一部分。一旦确定了目标,接下来要做的事情是尽可能的将这些目标转化为度量指标和数字。使用明确直观的度量指标能够帮助企业度量他们的改进效果、认识到他们的位置并为该项目提供方向。作为测试过程改进的一部分,企业明确设定要达成的目标是至关重要的,同时整个改进过程基于目标而划分为多个阶段。
第2步:通过审查和面谈来评估当前测试过程:
执行评估方法的制定基于测试组织的业务目标与评估目标。通常有两类执行测试过程评估的方法:
1、正式的测试过程评估,这是相对有条理,结构化并往往消耗较多时间的。
2、非正式的、非结构化测试过程评估,这类的评估方法基于特定的需要,消耗较少的时间。
图表2 评估的输入和输出项
在组织中,测试通常不是孤立存在的,它与多个业务团队、开发团队、供应商、测试环境团队等共同存在。应首先确定所有主要的干系人(在组织中最能够影响测试团队或者最受测试团队影响的角色)。同时,应从已存在的项目中收集工件,并脱机检查这些工件。可以根据业务目标来准备一份调查问卷提供给干系人填写。当收到来自干系人的反馈后,则可以将这些内容与从项目工件中收集到的信息整合起来。
图2给出了测试过程评估的输入和输出项的图形表示。
在从文档检查和调查问卷中获得了必要的信息后,接下来需要准备一份面向每位干系人的访谈问题列表。应该与每位干系人进行访谈,访谈的焦点要集中于已发现的组织现状与干系人反馈之间的差异。在访谈中,应该设计更多关于测试组织、组织的测试策略、组织的测试过程、项目的测试过程和测试方法、测试管理和环境管理、测试审查和优化等内容的探索式问题,同时要收集关于待评审测试过程的更多信息。访谈问题的设计可以根据干系人在组织中的角色进行自定义。
随着对高效IT过程的需要、客户期望的提高和对高质量产品的关注,软件测试的重要性显得突出起来。出于对成本和质量的重视,大多数企业已经建立起基本的测试过程和测试团队,但是却面临其他挑战。许多企业虽然对测试进行大量投入,却不太能获得相应的收益;大多数同时负责开发和测试的CIO会觉得尽管在测试中进行了相当的投入,最终用户却经常抱怨在使用时有太多缺陷,或者他们觉得测试没有提升产品的质量。
今天,大多数企业都承认改善和建立高效的测试过程可以解决这些问题,但他们通常很难有效地定义自身当前的进程,也并不知道如何进行必要的改进。以下一些原因使得企业希望进行测试过程咨询:
● 即使建立了测试实践,企业依旧不能达到足够的测试覆盖率或者缺陷发现得太晚以致修正缺陷需要增加大量成本。因此,企业想要检查自身测试过程与行业标准的差距或依照其设定基准。
● 企业关注于提高测试水平,但却不知道如何提高。
● 一些组织想要从第三方处了解到他们的当前状况以及如何进行改善。
● 大多数干系人抱怨测试没有效果。
● 大多数消费者抱怨终端产品中的缺陷。
● 想要优化当前的测试过程。
● 当前测试团队不能提供预期的投资回报等。
企业不能从测试实践中获得收益的主要原因是,他们对当前测试过程的有效性和效率缺乏足够深入的认识。这表现在企业尽管实施了测试过程,他们仍然支出高额的运营费用、不能达到所要求的质量等级或者质量不能完全满足其业务目标。
一般情况下,企业面临各种测试问题且无法实现投资回报可能是由以下原因造成的:
● 测试过程与整个软件开发生命周期不符
● 测试活动仅在产品投入使用之前才开始进行,导致了大量的返工和费用的增加
● 软件测试专业知识的缺乏使得很多缺陷没有被发现
● 正在使用的测试过程适合当前需要,但可能不适合不断变化的业务需求
● 所使用测试方法与被测系统的测试重点和开发方法不匹配。
随着竞争的日益激烈和业务需求的不断变化,测试和测试过程需要在组织中持续地进行监控并进行相应的改进。测试过程改进能够识别出组织当前测试过程的强弱项,并根据实际情况提出必要的改进建议。基本上,所有的成熟度模型都包括了各类测试活动(测试策划、测试用例设计、缺陷管理等),并能够协助进行测试过程评估。
什么是测试过程评估?
测试过程评估是一种方法或服务,它能够使组织识别和定义出当前的测试过程、对这些过程进行分析并找出需要改进的区域。它包括对当前测试过程的评估,深入了解测试过程对开发项目的帮助以及测试过程是否被真正应用。它可以帮助组织清楚当前测试过程的成熟度水平,帮助深入了解当前成熟度的状态,以及提供针对质量和成本改善的改进建议。
测试过程评估也提供了实施改进建议的必要步骤。这样做是为了发现哪些过程适合企业的业务需要,而哪些不适合。不同类型的企业的测试过程表现出很大的不同,例如:有的大型企业已经遵循了业界广泛认可的成熟度模型(如TPI或TMMi),而有的小型企业可能还没有建立适当的测试实践。在小型企业或小型企业的决策者中可能存在着这样的一种意识:测试过程改进只(更)适用于大型企业。事实上,测试过程改善适用于在测试上进行投入的所有企业,并对所有企业都一样重要,无论是大型的还是小型的。
实施测试过程改进的五个步骤
综合了组织需要进行的所有活动,测试过程改进的实施需要采取以下五个步骤(见图表1):
● 与发起人沟通并理解业务目标
● 通过审查和面谈来评估当前测试过程
● 报告评估结果并建立执行路线图
● 实施建议的改进措施
● 测量实施后的效果
第1步:与发起人沟通并理解业务目标
发起人是指分配测试过程改进项目的人,或倡导对测试过程进行评估的人,或签署测试过程咨询协议的人。开始测试过程评估的首要步骤是与测试过程评估的发起人沟通,详细了解组织的过程和业务目标。很多企业都认识到必须改进其测试过程,但是对如何改进以及改进的必要步骤却不是很清楚或者没有一个清晰地思路。经过与发起人的细致讨论,要为测试过程改进定义明确的目标。无论使用什么方式进行测试过程评估,首要考虑的因素都是建立评估的目标。评估的目标根据组织的类型及其需要会有所不同,一些例子如下:
● 减少测试费用
● 提高测试的有效性
● 提高测试的效率
● 提高组织总体的测试成熟度
● 提高测试收益的可见性。等等
在组织要求的基础上,我们必须制定明确的达成的目标,并将其作为测试过程评估的一部分。一旦确定了目标,接下来要做的事情是尽可能的将这些目标转化为度量指标和数字。使用明确直观的度量指标能够帮助企业度量他们的改进效果、认识到他们的位置并为该项目提供方向。作为测试过程改进的一部分,企业明确设定要达成的目标是至关重要的,同时整个改进过程基于目标而划分为多个阶段。
第2步:通过审查和面谈来评估当前测试过程:
执行评估方法的制定基于测试组织的业务目标与评估目标。通常有两类执行测试过程评估的方法:
1、正式的测试过程评估,这是相对有条理,结构化并往往消耗较多时间的。
2、非正式的、非结构化测试过程评估,这类的评估方法基于特定的需要,消耗较少的时间。
图表2 评估的输入和输出项
在组织中,测试通常不是孤立存在的,它与多个业务团队、开发团队、供应商、测试环境团队等共同存在。应首先确定所有主要的干系人(在组织中最能够影响测试团队或者最受测试团队影响的角色)。同时,应从已存在的项目中收集工件,并脱机检查这些工件。可以根据业务目标来准备一份调查问卷提供给干系人填写。当收到来自干系人的反馈后,则可以将这些内容与从项目工件中收集到的信息整合起来。
图2给出了测试过程评估的输入和输出项的图形表示。
在从文档检查和调查问卷中获得了必要的信息后,接下来需要准备一份面向每位干系人的访谈问题列表。应该与每位干系人进行访谈,访谈的焦点要集中于已发现的组织现状与干系人反馈之间的差异。在访谈中,应该设计更多关于测试组织、组织的测试策略、组织的测试过程、项目的测试过程和测试方法、测试管理和环境管理、测试审查和优化等内容的探索式问题,同时要收集关于待评审测试过程的更多信息。访谈问题的设计可以根据干系人在组织中的角色进行自定义。
图表1 测试过程改善的五个步骤
第3步:报告评估结果并建立执行路线图:
通过从不同领域和不同干系人收集来的数据,我们可以对组织的当前过程、能力和他们想要达成的目标有了清楚的认识。改善措施要建立在组织需要的基础上。例如,有些过程可能成熟度并不高,但是由于它们对组织的目标没有任何影响,所以可以忽略。
对所有相关因素加以考虑有助于推荐出一套可以立即实施于组织中几个项目团队的必要改进措施和度量指标。
改进建议可进一步分为短期、中期和长期实施措施。
第4步:执行建议的改进措施:
在建立了基于业务和组织的测试目标的必要改进措施后,下一步行动包括对改善措施排序优先级,即明确出希望哪些改善措施能够立即实施以速见成效、希望哪些改善措施过段时间后再实施,以及他们要如何实施这些改善措施。优先级的排序可以考虑如下一些参数:每个改善措施需要的时间、必要的投入(人力、软件、硬件)、实施改变的困难度、每个改善措施对测试过程分别的影响等等。基于如上的参数,可以给测试过程改进发起人提供一份改善措施优先级的列表。
通常情况下,改善项目可以分为短期(0-3个月)、中期(4-6个月)和长期(达1年)。应该建立改善项目的计划,并与组织就他们想要做什么、希望如何去做达成一致。
第5步:测量实施后的效果:
一旦实施了测试过程改进,改进团队应该定期从各位干系人处收集反馈信息。分析收集到的反馈信息以了解改进的效果并识别出进一步的调整。
形成通过实施改进取得收益的详细报告,并提交给主要负责人和其他干系人。
实施测试过程改进中的最佳实践
测试过程改进应以循序渐进的方式进行,希望采用一步到位的方法来实现过程改进是不正确的。一些准则有助于成功的实施测试过程改进:不要尝试太多改变而是实施几个有意义的改变来推动组织向前发展;分析优先级高的域并处理它们;针对能产生较大影响的域进行改变。首先,应在一个试点项目或一个组织单元实施过程改进,因为这属于试验阶段并且能够使风险降到最低。接下来,在试点项目中获得的经验可以作为案例应用于其他项目的测试过程改进。这样,当针对其他域进行改进时,可以使用这些可见的结果支持测试过程改进。
改进措施应彻底按照计划执行,并定期监控,以确保这些改进符合要求或业务目标。测试过程改进应考虑使用业界普遍认可的测试成熟度模型,如测试过程改进模型(TPINext) 作为参照。这样,可以很好分析测试过程的当前情况。
测试过程改进模型提供的成熟度基准可以帮助组织评估其测试过程的质量、识别必要的改变,并提供改进的方向,最终导向项目的成功。
样本展示:
评估结果的SWOT分析
开展评估&改进能带来什么好处?
测试过程改进能够帮助企业实现所需的测试成熟度级别和更合理、更高效的测试过程。它能够使企业优化他们的测试能力和测试过程的交付时间,并确保IT系统的整体质量。它包括了其他几个子元素,如缺陷管理、测试技术、测试工具、自动化测试、测试策略、测试环境、测试覆盖率、测试过程创新、测试远景和目标、角色和职责等。企业明确要改善的重点领域非常重要,因为不可能所有领域都处于同一成熟度级别。
测试过程评估&改进的好处列出如下,但不仅限于此:
● 对组织的强弱项做出明确的评估以及把软件开发生命周期与业界最佳实践进行比较
● 明确的路线图指出改进建议优先级
● 为后续的改进和度量建立基准
● 设置了切合实际的目标和基于这些目标的度量指标
● 提供了经实践验证的框架能够满足不同的需要
● 建立良好的测试过程,由于质量的提高以及与业务目标保持一致,因此能产生良好的ROI
● 提供了一个框架以确测试过程改进中对预期的ROI进行监控并实现
● 更有效和高效的业务运营
● 增强对测试过程和相关费用的控制
● 减少空闲时间
● 减少错误
● 降低生产维护的管理费用
● 从长远来看,减少测试的成本
● 从长远来看,减少测试过程的长度
● 提高开发和测试的生命周期以及支持过程的效率
● 提升代码的发布质量以及每个测试阶段的代码质量
测试过程评估与改进的总体目标是确保通过持续的改进来优化公司的投资回报率,并增加商业价值。
样本展示:
改善建议–测试域:测试度量