我可以将系统角色用作BDD叙述中的“作为角色”吗?

时间:2016-09-14 08:33:30

标签: bdd user-stories

在一个项目中,我们使用BDD来编写规范。在要求中,用户必须在使用前正确配置系统。

  1. 此配置涉及在计算机和移动设备之间复制密钥文件。
  2. 在移动应用程序启动时,它将提示用户导入密钥文件。
  3. 无需执行导入,用户无法使用移动应用程序。因为,移动应用程序内的所有未来操作都将取决于密钥文件的可用性。
  4. 我的问题是,以下故事在BDD中是否有效? -

    Title:- Configure mobile application for first time use
    Narrative:- 
                As a:- System, 
                I want:- to have the same secret key available on both the participating devices 
                So that:- I use the correct key to encrypt and decrypt text using symmetric encryption algorithm on the participating devices
    Scenarios:- Scenario 1
                Given:- I have a secret key generated and available in the computer
                When:- I have finished installing the application in mobile device
                Then:- I expect the user to perform following steps - 
                       1. Copy the secret key file from the computer
                       2. Paste the secret key file in the mobile device where the application is installed
                Scenario 2
                Given:- I have a secret key generated and available in the computer
                When:- User cancelled the configuration step
                Then:- I should prompt the user with message - "App requires the secret key configuration to work!"
    

    我已经在SO Writing user stories for internal technical tasks中阅读了这篇文章,其中明确指出系统不能成为故事中的角色。但是对于我希望用户正确配置应用程序的场景我不能使用System的角色吗?

    我们确实考虑过系统自动移动密钥的可能性,即自动转移到其他设备。然而,由于其他技术原因,这被击落,客户不希望这种情况自动发生。

2 个答案:

答案 0 :(得分:1)

“作为......我想......所以......”模板的目的主要是阻止人们包括实际上不需要在那里发布的内容。

如果你知道谁想要什么,为什么,你可以写下来:

  

我们希望用户导入密钥,以便加密他们的信息。没有密钥,用户就无法使用该应用程序。客户不希望这种情况自动发生。

如果你真的需要从中改造模板,你可以:

  

作为管理员,我们希望用户明确导入密钥,以便加密他们的信息。

或者你谈论它。如果你不知道为什么客户对它自动发生不舒服,那么最好找出来。拥有一个以上的利益相关者和一个以上的目标也是可以的。

有了这个,作为BDD情景作家,我会问你,“你能举个例子吗?”你能给我一个关键是什么样的例子吗?你会如何引用特定的密钥?典型用户的样子是什么?他们总是导入密钥吗?

现在我们可以开始为此制定方案:

  

鉴于Harry Happy已经下载了App
  当他发动它时   然后它应该提示他安装密钥#1234。

     

鉴于Harry Happy推出了应用程序
  当他选择安装钥匙#1234
时   然后它应该带他到主屏幕。

     

鉴于谨慎Paranoid推出了应用程序
  当她选择不安装钥匙#1582时   然后她应该被告知该应用程序需要此密钥安装,不能使用
  应用程序应关闭。

当我开始考虑真实用户时,我发现它更容易。请记住,受益于方案结果的利益相关者不一定是用户

  

鉴于我有足够的钱   当我从ATM机上提取20英镑时   然后ATM也应该从我的银行账户中扣除20英镑。

这不是为了我的利益,那没关系。

答案 1 :(得分:0)

正如您所说,系统希望用户配置应用程序。

当您考虑某个场景时,您会从用户的角度思考并因此用户执行某些操作 - > 系统会响应更改

您以用户身份执行方案,系统执行您告诉他的操作。

也许你应该写下这样的东西:
作为:管理员用户
我需要:配置应用程序
这样:两个参与设备都可以使用密钥,并且邮件已加密,可以使用该应用程序

用户将触发系统执行的操作(移动密钥)。

角色>做点什么>商业价值