专栏首页敏捷开发测试过程需不需要践行敏捷?
原创

测试过程需不需要践行敏捷?

测试过程在瀑布式开发中作为开发流程中的一个环节,只能在实现软件基础后开始运行,这种模式很大程度上导致了人力资源的浪费。而在敏捷开发模式中,为了解决人力资源浪费的问题,团队的开发过程需要践行敏捷,同样,测试阶段也要践行敏捷。

测试过程有没有必要性?

测试人员如同食品生产的质检员,能够依据交付成果检验产品的完成标准,并对产品判定“合格”与否。也就是说,测试人员需要测试产品的各功能点,对出现BUG的部分进行汇总分析,最终提交到开发人员手上。

假若产品的交付并未经过测试这一步骤,那么我们就无法保证交付成果是符合用户需求的。换句话说,面对一辆并未经过质检的刚出厂的车,你敢开吗?

如何让测试过程变得敏捷起来?

1.提高开发过程中的质量

在敏捷开发过程中,测试不再只是在某一特定阶段内进行,而是贯穿于整个开发流程中去。也就是提高产品开发的内建质量——团队中各职能成员都要对最终交付的产品质量负责,测试人员当然也不例外。

  • 适当减少在一个迭代中的工作量

在一个迭代过程中,如果产品需要做的功能点太多,就导致团队成员的任务量过满:开发人员会由于赶进度而忽视了代码的规范性要求;测试人员会因为测试出的BUG太多而不断进行“开发—测试”的返工,从而增加人力成本。

因此,适当减少一个迭代周期中的工作量,才能让开发、测试人员将更多的精力投入到提高代码质量、提高测试效率中去。

  • 达到测试的完成标准

产品完成的定义(Definition of Done)主要从两方面来说:

首先,测试用例针对每个已经完成的用户故事。这意味着测试人员需要熟悉每一个用户故事,并能够针对用户故事构建相对应的测试用例。测试用例可以分为正面测试用例和反面测试用例,以便更好地佐证其标准的准确性。

其次,执行并通过全部测试用例。测试人员在构建完整的测试用例后,还需要不断地更新、修改。客户需求的变动也应该在第一时间在告知测试人员,以便测试人员及时更改测试用例。执行并通过全部的测试用例后,产品负责人将产品交付客户。

  • 测试人员的多职能

敏捷团队要求测试人员必须是多职能的。传统项目中,工作人员职能单一,因此无法实现技能互通,这大大降低了各环节的生产效率。敏捷团队中最重要的一个特征就是“跨职能”:团队成员拥有多种技能,当某一环节需要更多的人手时,其他成员可以暂代这一位置。当然,跨职能是指成员要掌握多种技能,但并非团队成员都需要精通各种技能。

因此,敏捷团队中测试人员也需要是多职能的。这就意味着,测试人员不仅需要精通测试,还要掌握其他环节所需的技能。

  • 代码集体所有权 

代码集体所有权意味着代码归整个开发团队所有,并非单独所有。当测试环节发现问题的时候,其他测试或开发人员可以看到并修改代码的任意部分。代码集体所有权能够有效地提高团队开发效率,降低BUG风险。

  • 结对编程

结对编程通常是由两个开发人员一起,而测试人员与开发人员一起进行结对编程主要体现在构建自动化测试程序中。在这种情况下,测试人员主要负责测试架构的合理性以及简单的代码编写,而开发人员则需要保证代码的高质量。开发人员与测试人员进行结对编程不仅会提高开发人员的测试意识,还会提高测试人员的代码编写能力,更有助于敏捷团队的形成。

2. 提高测试的效率

手动测试是一件十分枯燥、乏味的工作,当然,也是一件效率低下的工作。那么,如何提高测试的效率呢?

  • 优先级排序

测试任务同开发任务一样,都需要进行优先级的排序。先进行优先级高的测试任务,能够在无法保证测试周期的前提下,影响不到整体开发进度。

  • 自动化测试

提高测试效率,首先会想到的就是进行自动化测试。自动化测试较大的优势是能够让程序进行一些大量的机械操作,以便减少测试人员消耗在手工测试上的时间,提高测试效率。提高测试的效率,能够加快测试周期,在较短的周期内运行更多的测试。

关于测试过程需不需要践行敏捷这一问题,答案当然是:需要。首先,让测试过程变得敏捷起来,能够解决团队中只有开发人员践行敏捷的弱点。其次,通过测试过程敏捷化,也能够更好地提升整个敏捷团队的工作效率。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 极限编程:价值观、原则和实践

    在软件工程这样一个快节奏的环境中,传统的项目管理方法不再可行。这意味着IT从业者必须找到新的方法来处理经常变化的开发任务。

    敏捷开发
  • 软件开发流变史:从瀑布开发到敏捷开发再到DevOps

    作为在20世纪70年代、80年代盛极一时的软件开发模型,瀑布模型通过制定计划、需求分析、软件设计、程序编写、软件测试、运行维护等6个流程将整个软件生命周期衔接起...

    敏捷开发
  • 团队转型,Scrum与DevOps要如何取舍?

    团队在践行敏捷的过程中,会有多种选择:Scrum、XP、Kanban、Crystal、精益生产、规模化敏捷等,其中最流行的敏捷开发方法当属Scrum。正因如此,...

    敏捷开发
  • 我对敏捷软件测试的理解与实践

    随着敏捷软件研发过程的引入,敏捷测试也开始成为研发团队的重点关注对象。在行业内,有些企业正在做敏捷测试的尝试,有些也取得了不错的效果。

    yuanyi928
  • 测试经验分享:做一个靠谱的软件测试人员(一)

    王豆豆
  • 测试人员常用借口

    无论我们试图建立一个网站多么完美,我们都一定会犯一些错误。错误是不可避免的,无论多么微小。这就是为什么我们不能保证没有错误的发布,甚至在进行了不同类型的全面测试...

    FunTester
  • DevOps中的测试工程师

    DevOps需要在各个阶段进行协作,因此,使开发人员和测试人员从敏捷孤岛式转变为一个在各个阶段中所有成员不断参与的运营已变得非常具有挑战性。

    FunTester
  • 软件测试和开发比例

    这篇文章是我从stackoverflow上翻译过来的,如果以后遇到好的文章我还会继续翻译。

    Peter Shen
  • 软件测试人员:你们是如何测试需求变动频繁的项目?

    王豆豆
  • 测试面试题集-1.测试基础理论

    最常使用的测试用例设计方法包括等价类划分法、边界值分析方法、场景法、错误推测法。其中,最容易发现错误的是边界值法,使用最多的是场景法。以注册为例:首先从需求确定...

    ITester软件测试小栈

扫码关注云+社区

领取腾讯云代金券