测试人员在敏捷中的角色?

问题描述:

我在一个多年来一直在做传统瀑布式开发方法的团队工作。最近,我们被告知未来的项目将会朝着敏捷(特别是Scrum)方法发展。恰巧我的项目将是第一个项目,所以我们将在未来几个月基本上成为试验豚鼠,以消除过渡所需要的东西。测试人员在敏捷中的角色?

该项目本身处于非常早期的阶段,我们通常需要几个月时间才能向测试团队发布任何内容,但现在我们将直接与他们合作。因此,我担心现阶段测试人员在这样一个项目中的作用。我有几个问题/顾虑其希望一些有经验的敏捷开发者可以回答:

  1. 尽管开发的编码任务,这是不可能的测试仪测试(它还不存在)。那么测试人员在这一点上的作用是什么
  2. 测试人员现在是否参与了单元测试?这是否与黑盒测试平行进行?
  3. 在主要进行基础设施更改的sprint中,测试人员做了哪些工作?可能只能在单元测试中测试?

传统测试团队成员如何在您的敏捷项目中工作?

+3

http://www.amazon.com/Agile-Testing-Practical-Guide-Testers/dp/0321534468 – 2009-10-29 00:54:28

+0

我投票结束这个问题作为题外话,因为它似乎更适合[https:// softwareengineering.stackexchange.com/](https://softwareengineering.stackexchange.com/),它应该迁移到该网站。 – Mudassir 2017-10-26 18:40:36

保持忙碌的测试人员往往作为幻灯来变得更容易CT到期(还有更多的考验!),但以下几点在早期阶段施加过:

  1. 测试人员可以编写自己的测试计划,测试用例,测试和自动化测试的用户之前的故事(或同时)它们得到实施。这有助于团队甚至在开发人员编写任何代码之前发现用户故事中的任何不一致或不明确之处。

  2. 根据我个人的经验,测试人员没有参与单元测试;他们只测试通过所有自动化单元,集成和验收测试的代码,这些测试全部由开发人员编写。尽管如此,这种分裂可能与别处不同;例如您的测试人员可能正在编写自动验收测试。然而,单元测试应该由开发人员编写,因为它们是与代码一起编写的。

  3. 他们的工作量将冲刺之间有所不同,但回归测试仍需要对这些变化运行...

您也可能会发现,具有测试人员先花夫妇每个冲刺的天测试以前sprint的任务可能会有所帮助,但我认为最好让他们通过编写测试计划来确定开发人员将要完成的工作。

只是一些想法,肯定是不完整的:

  1. 虽然开发商编码任务,测试人员可以检查规范(或从顾客的要求,如果没有正式的规范)和写作测试计划。这可以包括需要测试的概念框架,但它也应该包括正式编写测试套件(是的,在代码中)。对于敏捷的团队来说,这可能是一个相当大的挑战,因为很多测试人员都是在没有编程技能的情况下被聘用的。 (在很多地方,好像它是一个要求不能够代码。)

  2. 测试者可以通过测试组件或有图书馆参与单元测试,或略高范围一个干净的界面。

  3. 测试人员应该总是执行回归测试,负载测试以及他能想到的任何其他类型的测试,以及为下一个冲刺编写测试套件。测试人员在开发之前(在准备测试环境中)以及开发背后的一个冲刺(测试开发人员刚制作的东西)时通常会测试一个sprint。

在我的公司我们使用和认可敏捷。我们的QA团队成员参与了单元测试的创建,维护回归测试基础架构,就像在瀑布中一样,他们也在完成后测试每个功能。

在进行基础设施更改时,他们也参与确保新的基础设施是可测试的。

所以,从我有限的经验,我会尽量回答你两点:

  1. 如果没有什么尚未测试,开始建立一个回归/测试基础设施,并确保任何正在做会可测试
  2. 是的,他可以做到既
  3. 维护测试基础设施和狩猎谁打破了测试

最近我看到了一个很好的talk。基本上这个团队开始做一个相当标准的Scrum流程,然后转换到看板和精益。他们做的最重要的事情之一是逐渐削弱测试人员和开发人员之间的区别。测试人员参与编写单元测试和代码,开发人员在开发初期就引入了更高级别的测试。这对测试人员来说是一个陡峭的学习曲线,但值得从团队一开始就在质量上进行建设。到目前为止,测试人员称自己是开发人员,因为他们的工作如此集成在编写代码的过程中。

理想情况下,如果不是从软件开发项目的早期阶段开始,QA和测试人员应该参与进来,而不管所用的过程如何(瀑布或敏捷)。测试团队将需要:

  • 确保项目或冲刺要求清晰,可衡量并可测试。在理想的世界里,每个要求都会有一个适合的标准,在这个阶段写下来。确定需要自动记录哪些信息以排除故障。

  • 准备项目特定的测试策略并确定哪些QA步骤将需要以及哪些项目阶段:集成,压力,兼容性,渗透性,一致性,可用性,性能,beta测试等。确定可接受的缺陷阈值和确定缺陷严重程度的分类系统,指定缺陷报告的指导原则。

  • 指定,安排和准备测试环境:根据需要测试基础架构和模拟服务;获取,消毒和准备测试数据;编写脚本以在必要时快速刷新测试环境;建立缺陷跟踪,沟通和解决的流程;准备招聘或招募用户进行测试,可用性或验收测试。

  • 提供所有相关信息,形成项目进度表,工作分解结构和资源计划。

  • 编写测试脚本。

  • 快速解决问题域,系统AS-IS和建议的解决方案。

通常这是不是一个测试团队是否会提供任何有用的投入在早期项目中的问题,也不如果这种输入是有益的。然而,这是一个问题,一个组织能够负担上述活动的程度。在可用的时间,预算和资源与最终结果的已知质量水平之间始终存在权衡。

1)开发人员编写任务时,测试人员不可能测试 (尚不存在)。那么,什么 是测试在这一点

测试者仍可能创建测试计划,并有一个什么样的测试将创建一个列表中的作用。如果开发涉及一些现成的软件,那么测试人员也可能需要接受培训,例如,如果您正在使用Sitecore完成CMS项目,那么测试人员应该了解一些关于Sitecore的内容。测试人员,开发人员和最终用户或BA还可以进行一些协作,以了解什么是要求和期望,以便不会出现含糊不清的要求。

2)测试人员现在是否参与了单元测试?这样做是否与 黑盒测试平行?

不在我们的情况。测试人员正在进行更多的集成/用户验收测试,而不是低级别的单元测试。在我们的例子中,单元测试是在任何QA测试之前进行的,因为创建功能的开发人员会创建一个测试层。

3)这是什么地方主要基建 已经作了修改冲刺,这可能只是 在单元测试可测试期间,测试者吗?

回归测试!在进行基础设施改革时,是否有任何突破?与QA相比,开发人员可以运行测试套件有多彻底?不久之前,我们在短距离冲刺中完成了这项工作,大部分冲刺工作都在进行重做工作,所以除了看到之前的工作仍然有效之外,没有太多的考验。

在我们的案例中,我们已经从我们的开发环境升级到一个级别,但仍然是一个预生产环境。这个想法是让QA sprint验证已完成的工作以及在发布到最终用户验收测试阶段之前发现并修复的任何关键或高严重性错误,因此如果开发人员正在开发sprint X,那么QA正在验证冲刺根据最终的UAT和部署计划,X-1和生产可能会有冲刺X-2或更早版本的运行,因为并非每个冲刺都会在QA将OK移动到分段后投入生产。一旦开发人员完成了任务的初始编码以确保测试人员和最终用户签署构建的内容,就可以进行配对练习。这是我们试图将质量控制整合到项目中的第三或第四个版本,因此它仍然是一个已经发展了几倍的工作。

+0

如果您重复提问,您的答案会更容易阅读。 – Christian 2009-12-12 10:59:42

好帖子。大约3年前我处于同样的状况,从瀑布到敏捷的过渡是棘手的。我在这个举动中遇到了很多痛点,但是一旦我克服了他们,我的角色发生了变化,我意识到这种工作方式非常适合测试。

测试人员不需要的常见误区很容易消除。

1.开发人员编写任务时,测试人员不可能测试它(它还不存在)。那么什么是测试者在这一点上的作用

根据我的经验,测试人员可以与客户合作来微调冲刺中的故事。

他们通常与开发人员一起微调他们提供的代码。即就边缘情况,流程,错误等提供建议。

他们通常可能参与设计编码器将写入以执行TDD的测试。

如果敏捷团队相当先进,那么测试人员通常会编写ATDD(验收测试驱动开发)测试。这些可以使用Fitnesse或Robot Framework等工具,也可以是更高级的ruby测试,甚至是其他一些编程语言。或者在某些情况下,简单的录制和播放对于少量测试通常是有益的。

他们显然会写测试和规划一些探索性测试场景或想法。

有时为团队理解的棘手事情是,故事不必完整,以便将其放到测试堆栈进行测试。例如,编码人员可以放下屏幕,其中一半的字段已计划在屏幕上。测试人员可以测试这一半,而另一半正在编码,因此可以提前反馈测试结果。测试不一定发生在“已完成”的故事上。

2.测试人员现在是否参与单元测试?这是否与黑盒测试平行进行?

理想情况下,编码人员会做TDD。编写测试,然后编写代码以使测试通过。如果编码人员想要非常好的TDD,那么他们会很乐意与测试人员一起考虑测试。

如果TDD没有完成,那么编码人员应该在编码的同时编写单元测试。在软件被删除之后,它可能不应该是一个想法或之后的任务。整个测试的重点是测试软件是否正确,以避免浪费时间。这都是关于即时反馈。

3。测试人员在主要进行基础设施更改的sprint期间所做的工作是什么,这只能在单元测试中进行测试?

理想情况下,测试人员将与团队和客户(顺便说一下,是团队的一部分!)一起工作来定义计划的故事,并建立一些良好的,详细的验收评估。这非常宝贵,可以节省下线时间。测试人员还可以学习新的自动化技术,规划测试环境,帮助记录计划的结果。

理想情况下,冲刺中的每个故事都可以通过某种方式,形状或形式进行测试。这并不意味着它应该由测试团队,但应该是可测试的。因此,测试人员可以与团队的其他成员合作,确定如何确保故事是可测试的。

我在这里发表一些敏捷提示:http://thesocialtester.posterous.com/

希望这可以帮助你 抢..

最自然的方法来测试在敏捷环境在我看来是探索性测试http://en.wikipedia.org/wiki/Exploratory_testing。 不健全的话就像

根据塞姆·卡纳&詹姆斯·巴赫,探索性测试更多的是[心态]或“......想测试的方式”比的方法

对测试

声音熟悉敏捷developpers。测试人员可以在这个过程中比传统测试早得多。

就像其他一些受访者表示的那样,测试人员应该从第一天起就参与其中。在Sprint零中,他们应该参与确保产品负责人制作的故事是可测试的(例如一次编码可验证)和“可接受的”(即,当你通过UAT时)。一旦产品待办事项列表初始填充后,测试人员就可以处理针对当前Sprint的故事的测试案例,一旦有产品供他们测试(理想情况下,您的第一个Sprint中的某处),他们就可以开始测试。

如果听起来像没有任何东西要测试几个Sprint,那么你的故事就错了。 Sprint的目标,即使是早期的,也是要有一个最终系统的薄片。关注“阿斯匹林”(即如果建立一个药物处方系统,你如何在2-4周内提供可测试的功能?建立用于处方阿司匹林的那些)和“示踪子弹”故事(当它们联合使用时触及所有架构中有风险的部分)。你会惊讶于你可以提早进行测试。如果测试人员结束业余时间,可以让他们与开发人员配对。它将建立关系和相互尊重。

这种方法的好处很多,但主要是你测试了很多你的开发的内部人员流程(从需求转移到开发,测试和相反),其次是整个团队(提及的所有三个学科)都会看到由于生成可执行软件而产生的快速反馈的好处。

这听起来不可能,但我已经看到它的工作。只要确保你一开始就不会咬到太大块。让自己容易进入,你会感到惊讶。