【问题标题】:Can I use System role for the "As a role" in the BDD narrative?我可以将系统角色用于 BDD 叙述中的“作为角色”吗?
【发布时间】:2016-09-15 02:42:03
【问题描述】:

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

  1. 此配置涉及在计算机和移动设备之间复制密钥文件。
  2. 在启动移动应用程序时,它会提示用户导入密钥文件。
  3. 如果不进行导入,用户将无法使用移动应用程序。因此,移动应用内的所有未来操作都将取决于密钥文件的可用性。

我的问题是,以下故事在 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 中阅读了这篇文章,其中明确指出系统不能成为故事中的角色。但是对于我的系统期望用户正确配置应用程序的场景,我可以不使用系统的角色吗?

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

【问题讨论】:

    标签: bdd user-stories


    【解决方案1】:

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

    如果你知道谁想要某样东西,以及为什么,你可以把它写下来:

    我们希望用户导入密钥,以便对其信息进行加密。如果没有密钥,用户将无法使用该应用程序。客户不希望这种情况自动发生。

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

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

    或者不管你怎么说。如果您不知道为什么客户对自动发生的事情感到不舒服,最好找出答案。拥有多个利益相关者和多个正在实现的目标也是可以的。

    一旦你明白了这一点,作为一名 BDD 场景编写者,我会问你,“你能给我举个例子吗?”你能给我举一个钥匙是什么样子的例子吗?您将如何引用特定的键?典型的用户是什么样的?他们总是导入密钥吗?

    现在我们可以开始为此构思场景了:

    鉴于 Harry Happy 已下载该应用程序
    当他启动它时
    然后它应该提示他安装密钥#1234。

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

    鉴于 Prudence Paranoid 已推出该应用程序
    当她选择不安装密钥时 #1582
    然后应该告诉她该应用程序需要安装此密钥并且无法使用
    该应用程序应该关闭。

    当我开始考虑真实用户时,我发现这要容易得多。请记住,从场景结果中受益的利益相关者不一定是用户

    因为我有很多钱
    当我从 ATM 取款 20 英镑时
    然后 ATM 也会从我的银行账户中扣除 20 英镑。

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

    【讨论】:

      【解决方案2】:

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

      当您考虑一个场景时,您会从用户的角度进行思考,结果是用户做了某事 -> 系统响应变化

      您以用户身份执行场景,系统会按照您的指示执行。

      也许你应该写这样的东西:
      作为:管理员用户
      我需要:配置应用程序
      这样:密钥在参与的设备上都可用,并且消息被加密并且可以使用应用程序

      用户将触发系统所做的事情(移动钥匙)。

      角色 > 做某事 > 商业价值

      【讨论】:

      • 对于最后一条语句“用户将触发系统执行的操作(移动密钥)”,应由用户复制和粘贴密钥文件。系统期望用户将文件从计算机移动到移动设备。
      • 您使用了“我需要”而不是“我想”。这对起草故事是否正确?
      • 取决于我猜的重点,如果是业务或行动。我想配置应用程序以启用加密(在业务上)vs 如果我想要加密,那么我需要配置应用程序(在配置上)。我认为需要听起来你没有选择,你需要这样做;想要听起来更像是可选的。只是我的意见。无论如何,您应该从用户的角度编写。在某种程度上,需要或想要都可以。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      相关资源
      最近更新 更多