您认为软件测试员在敏捷环境中的角色是什么?它只是测试和记录错误,还是与项目架构师和开发人员密切合作以尽早改进设计和代码?
软件测试员在敏捷环境中的角色?
与任何其他环境一样,软件测试人员在敏捷环境中的角色是该特定项目所需的任何角色。有时会有很多与设计以及测试相关的近距离工作(我个人认为设计是在你开始测试之前发生的测试,因为这是解决很多潜在问题的地方),有时更少所以。
无论您的特定项目和工作场所如何整理,都有一些事情需要发生:
- 需要有一些东西来记录测试的内容、方式和原因。除非您正在与之合作的行业要求这样做,否则这并不是为了保存记录,以备将来参考。有人参考旧的测试文档来理清特定功能的工作原理以及它的哪些区域可能存在问题的情况并不少见
- 至少需要与程序员进行一些协调,这样您就不会重复工作。如果有很多单元测试覆盖了功能的逻辑,测试人员可以更多地关注外部验证。这个想法是与团队的其他成员一起工作,这样你的专业,测试,支持他们的,他们的支持你的(这是理论的世界,如此美妙的事情是完全可行的。在我生活的世界里,或者至少我工作的地方,事情仍然有些变化)。
- 还需要与产品负责人进行大量的沟通和协调。团队中所有不同的角色都应该一起工作,产品负责人是你正在构建的功能是否正确的有效预言机。
根据我在瀑布和敏捷之间过渡的雇主的经验,我发现我最终开始了很多沟通和协调。这可能是我雇主的环境的产物,那里没有绿地开发,应用程序代码库包含可追溯到 20 多年的例程 - 作为一名测试人员,我已经在其中工作过很多,并且往往有更广泛的与程序员(他们自然专注于他们正在开发的功能或他们正在修复的错误)或产品所有者(我的雇主倾向于对他们合作过的功能开发有深入了解但不是广泛的互动基础)。
总而言之,如果你以机智和热情的态度来对待这个角色,那么无论你做什么,这个角色都可以。祝你好运!
我不确定“更重要”是我会说的方式。我们接近敏捷的方式是快速交付客户想要的高质量软件。这对测试人员意味着什么?我们团队的成员共同努力完成任务。这意味着测试人员可以进行代码审查,帮助编写需求,代码功能,几乎任何事情。目标是完成项目。如果您的时间最好花在完成上述任务之一上,那就是您的工作。
这是否意味着测试件不重要?绝对不。测试在敏捷中与在瀑布中一样重要。事实上,根据我的经验,在敏捷环境中进行测试更容易。并不是因为确切的方法,而是因为团队成员更多地一起工作。开发人员、测试人员和项目经理之间的争吵要少得多。每个人的目标都是一样的(至少从我的经验来看)。
我想我将如何描述我的职位的快速总结是:
我是一名注重测试的团队成员。
敏捷宣言谈到了这个原则:个人和交互优于流程和工具。软件测试员在敏捷环境中的角色没有绝对的规则,除了测试员必须进行测试。除此之外,软件测试人员的角色取决于相关方的技能和兴趣以及他们的人际关系。
如果测试人员具有很强的设计和编码技能,并且与项目架构师和开发人员有良好的关系,那么测试人员在这些领域投入时间可能是有意义的。如果测试人员不是一个强大的设计人员或编码人员,或者如果项目架构师和开发人员不接受测试人员的设计和编码建议,或者如果软件测试人员不接受他的建议被拒绝但有充分的理由这样做,测试人员在早期参与设计和编码时应该三思而后行。
软件测试人员的主要工作是测试;否则,他们将不会被称为软件测试员。无论测试人员在参与早期设计和编码时感到多么满意,也无论他们在这些领域做出多少贡献,测试人员测试和记录错误是很重要的。如果一个人不想测试,或者觉得它不重要,那么他们不应该是软件测试人员。
在敏捷环境中,更多的人进行测试,而更少的人只进行测试。开发人员编写和运行测试。测试人员开始做他们以前没有做过的事情,但这些事情充分利用了他们的测试技能。
在下文中,我以一种稍微不寻常的方式使用测试员这个词,表示“可以应用测试技能的人”,无论他们的职位是什么。
测试人员的一项关键新工作是帮助描述功能。就在功能进入开发阶段之前,测试人员和其他人会与产品负责人会面讨论该功能。对话的一个目标是创建一组示例,以帮助具体描述该功能。优秀的测试人员在这里可以提供很大的帮助,因为他们知道如何检测歧义,并且知道如何考虑尚未考虑的相关场景。在开发开始之前而不是在开发期间或之后应用这些技能,意味着团队中的每个人都更全面地了解该功能。因此,测试人员不是“仅”检测问题,而是帮助预防问题。
一些测试人员将具备编程技能。它们可以帮助将示例转换为自动化测试,通常是在开发过程中。并非所有测试人员都具备这种技能,也没有能力或愿望成为这方面的技能。越来越多的“测试”工作需要它。
如果预先描述了关键示例,并且如果它们是自动化的,以便团队中的任何人都可以随时运行它们,那么测试人员还需要做什么?探索性测试。你帮助团队识别风险、疑虑和担忧。然后你运行测试来探索这些。探索性测试意味着同时设计测试、运行测试和了解系统。它与预先定义的测试非常不同。每个测试都会为您提供信息,然后您可以使用这些信息来思考并选择下一个测试。一旦有事情要执行,您就可以开始探索。
同样在开发过程中,测试人员可以帮助开发人员建立他们的测试技能。在敏捷环境中,开发人员通常会编写大量单元测试。许多开发人员可以受益于与优秀的测试人员合作来培养设计测试的技能。
谷歌搜索“探索性测试”。同样重要的是由 Jon Bach 和 James Bach 开发的“基于会话的测试”。