Pascal Dufour是Validate-it里一名富有激情的测试员和Scrum导师。Pascal对敏捷项目很有热情,他试着结合敏捷和内容驱动测试推行实用测试策略。十多年在大型国际公司的经验中,Pascal对从嵌入式软件到系统集成的不同测试类型很有经验。热情且有创造性的,他试着让测试更有意思,让他的工作可视且尽可能的简单。他帮助团队成员提高他们在Scrum里的努力,强调道德,责任和透明度,并激励人们使用灵活的方法测试。他认为团队需要学习,尝试,实验和合作去创造解决方案解决问题。
简介
ATDD和工具如FitNesse, Cucumber, and Robot Framework的使用使得有必要创建自动化验收测试。这些验收测试是用在用户故事中的验收标准的一个自然延生。你使用验收测试去了解需要开发哪些需求,这样你才能开发正确的功能。为了开发正确的功能,你需要在所有团队成员中创建关于利益相关者的共识。你使用故事工坊(Scrum中的产品积压细化会议)这样每个人都可以为发现故事的whys, hows, and whats尽一份力。你把大故事划分为小故事(又名用户故事),和你的利益相关者一起在这些工坊中创建新的用户故事。和你的利益相关者一起创建共识有以下好处:
1. 你更有可能想出一个能真正提供商业价值的解决方案。紧密协作让你了解预期结果。你明白为什么为何要创建该功能以及其商业价值是什么。
2. 你可以更好地开发正确的解决方案。你从客户的角度理解了需求和问题后一心专注于解决方案。没有这样的理解,敏捷只能帮你更快地创建错误事物。
3.你的从找出缺陷到在商业价值和开发层面阻止缺陷的心态和做法转变。记住,从精益的角度,找缺陷是一种浪费。
4.你能在明确验收测试里写下何谓成功开发一个用户故事。你只开发需要的——不多不少。故事工坊不仅要创建共识和验收测试用例,还要为整个团队提供测试机会。测试用例可以自动化,所以开发员要和测试员一起合作。测试用例需要充实并添加新用例,现在任何人都可以做到。共识也为你安排和你的团队一起定义探索性测试章程。而且你也知道,只要有经验丰富的测试员指导,人人都可以执行手动测试。那还蛮有意思的。但是你怎样才能真正运行成功的故事工坊呢?需要哪些步骤,你能玩哪些游戏?你该如何推动会议?
本文中,我们将告诉你我们该如何使用严肃游戏做故事工坊。 严肃游戏是什么?
如果像我们一样,你参加了由一些人主宰,无聊且无用的会议,参与其中只会感觉痛苦。你只出现说了几句话,因为这正是管理层希望你去做的。其实并不一定非得那样。你可以在你所有的会议中使用游戏机制让它们更有趣且更有益多产。会议成功的方法是通过严肃游戏。
严肃游戏是一个设计来解决业务问题的游戏。一款“寻常”游戏的目的是娱乐。严肃游戏中,你使用让全世界玩“寻常”游戏数以百万的人参与其中的游戏机制。严肃游戏将人们放入一个他们真正参与其中并相互协作的创造性的环境之中,移动周围的事物并讨论观点。你可以使用严肃游戏的地方就是在故事工坊里了解利益相关者需求,明确用户故事并提炼测试用例。 故事工坊是什么?
故事工坊的预期结果是建立整体团队对用户故事的共识并使之变为合适的规模。你通过探讨为什么需要他们,他们为客户解决了什么问题建立一个共识,以及通过提炼测试用例建立共识。故事工坊的输出有:
1.我们希望每个需要精炼的用户故事都有两至三个例子。
2.我们希望每个需要精炼的用户故事都有一个明确的探索性测试章程。
3.我们想评估规模来进行权衡。
4.我们想评估故事将对预期商业价值造成的影响。
精益会议的恰当的时间空当是一至两个小时。尽管因为帕金森定律这种情况基本很少发生,但如果完成地早,你可以随时结束会议。故事工坊中你应对的第一个问题就是更好地理解用户故事。用户故事是对特定人物需求的叙述。你需要了解人们有什么问题和需求。这是一个发现问题。需要回答的问题是:“客户有哪些问题,为什么他/她要解决这个问题?”故事工坊中你应对的另一个问题是设计问题。用户故事也是一个对开发必须设计的解决方案的 实验。因此需要回答的问题是:“最适合客户需求的解决方案是什么?”设计的准确细节不是由故事工坊提供的,但它的确开始了解决方案的思维过程。最后是一个是测试问题。需要回答的问题是:
1.我们如何得知解决方案解决了客户的问题?我们的解决方案的价值超过他/她现有的解决方案吗?
2.我们如何得知我们在解决正确的问题?我们正在解决的问题是客户想让我们解决的问题吗?
3.我们如何得知我们已经正确地解决了问题?我们如何确定解决方案的成功和失败数呢?
在故事工坊中我们试着解决所有这些问题。
如何推动故事工坊?
如果你想要一个成功的工坊,你就需要考虑一些事情。首先你需要申明工坊的目标。为了让人们参与其中,在会议一开始就申明目标很重要。接下来你需要明确地探讨你工坊的步骤。那么议程是什么,我们要做什么?然后你必须定义工坊的规则。手机铃声怎么规定?工坊里可以看邮件吗?交谈中打断别人怎么办?如果你已经和团队做了一些工坊,你只要快速记下他们的规则并问问他们是否满意。为了提高创造力,任何事都是有时间限制的,所以你想交流时间限制。工坊里你也想告知团队时间进度。比如你可以每10-15分钟让他们知道还剩多少时间并讨论你是否仍在做最重要的事情。最后,拥有一个停车场很有用。如果你有任何占用太多时间或不相关的问题,你可以将它们放在停车场并在会议最后覆盖它们。
一个成功故事工坊的游戏顺序
在一个提炼测试用例来建立共识的故事工坊中,你要执行下列步骤:
1.登记:解释会议的目标和议程。
2.了解商业价值:产品负责人讲述了有目标的一系列连贯的故事(如果你在使用Scrum就是迭代目标)并将它们与经营目标相连接。团队讨论了“为什么我们在做这个?”我们使用影响图和5个为什么做这件事。
3.了解客户价值:团队分成两个子团队,每个子团队得到一半的用户故事。子团队聚在一起探讨他们各自创建的场景。团队探讨“为什么人们想要这个?”我们使用故事板和人才流入图做这件事。这也是你量化你的目标的步骤,这样你就能在迭代最后知道你创造了多少价值。
4.提炼验收测试:团队为用户故事创建验收测试。根据你的工具,你用Gherkin规格,流程表和决策表创建用户故事叙述。团队分成子团队,与产品负责人一起写表格和Gherkin场景。子团队聚在一起探讨结果。我们使用表格和场景编写在白板上做这个。
5.定义探索性测试章程:明确你的探索性测试的风险。一旦你明确了需要手动测试的故事,你就为每一个故事设置一个探索性测试章程。我们使用一个风险影响矩阵做这件事并使用探索性测试来驱动我们的测试。
6.关闭:结果和最终评论的快速汇总。
上述游戏顺序只是运行故事工坊的一种方法。假设你已经有了随时可以开始的用户故事。解释的游戏是我们花费最多时间的游戏。还有许多游戏你可以使用。我们鼓励你在你的工坊里尝试一些探讨哪一个最适用于你的特定情况。
|