在一个项目中,我们使用BDD来编写规范。在要求中,用户必须在使用前正确配置系统。
我的问题是,以下故事在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的角色吗?
我们确实考虑过系统自动移动密钥的可能性,即自动转移到其他设备。然而,由于其他技术原因,这被击落,客户不希望这种情况自动发生。
答案 0 :(得分:1)
“作为......我想......所以......”模板的目的主要是阻止人们包括实际上不需要在那里发布的内容。
如果你知道谁想要什么,为什么,你可以写下来:
我们希望用户导入密钥,以便加密他们的信息。没有密钥,用户就无法使用该应用程序。客户不希望这种情况自动发生。
如果你真的需要从中改造模板,你可以:
作为管理员,我们希望用户明确导入密钥,以便加密他们的信息。
或者你谈论它。如果你不知道为什么客户对它自动发生不舒服,那么最好找出来。拥有一个以上的利益相关者和一个以上的目标也是可以的。
有了这个,作为BDD情景作家,我会问你,“你能举个例子吗?”你能给我一个关键是什么样的例子吗?你会如何引用特定的密钥?典型用户的样子是什么?他们总是导入密钥吗?
现在我们可以开始为此制定方案:
鉴于Harry Happy已经下载了App
当他发动它时 然后它应该提示他安装密钥#1234。鉴于Harry Happy推出了应用程序
当他选择安装钥匙#1234
时 然后它应该带他到主屏幕。鉴于谨慎Paranoid推出了应用程序
当她选择不安装钥匙#1582时 然后她应该被告知该应用程序需要此密钥安装,不能使用
应用程序应关闭。
当我开始考虑真实用户时,我发现它更容易。请记住,受益于方案结果的利益相关者不一定是用户:
鉴于我有足够的钱 当我从ATM机上提取20英镑时 然后ATM也应该从我的银行账户中扣除20英镑。
这不是为了我的利益,那没关系。
答案 1 :(得分:0)
正如您所说,系统希望用户配置应用程序。
当您考虑某个场景时,您会从用户的角度思考并因此用户执行某些操作 - > 系统会响应更改。
您以用户身份执行方案,系统执行您告诉他的操作。
也许你应该写下这样的东西:
作为:管理员用户
我需要:配置应用程序
这样:两个参与设备都可以使用密钥,并且邮件已加密,可以使用该应用程序
用户将触发系统执行的操作(移动密钥)。
角色>做点什么>商业价值