In a project we are using BDD to write the specification. In a requirement user has to configure the system properly before being used.
- This configuration involves copying a secret key file between computer and a mobile device.
- On the launch of mobile app it will prompt the user to import the secret key file.
- Without doing the import user can not use the mobile application. Since, all future operations inside the mobile app will depend on the availability of secret key file.
My question is, will the following story be valid in 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!"
I have already read this post in SO Writing user stories for internal technical tasks where it is made clear that System can not be a role in the story. But for my scenario where the System expects the user to configure the application properly can I not use the role of System?
We did contemplate on the possibility of system moving the secret key by itself i.e. automatically to other devices. However, this was shot down for other technical reasons and customer did not want that to happen automatically.