Project Template: create a new project from a project template
Open, NormalPublic

Description

Feature: Create a new project from a project template
As someone having several similar projects
I can create a new one from an existing template
In order to spend less time creating similar projects

Scenario: Create a new project from a project template
Given I list the projects:

 < Project 1 | 29/02/2016 >
 < Project 2 | 15/03/2016 >
 And < template1 > looks like:
| variable:  <name> |
| task 1: * Add an item presenting <name> to my news letter |
| task 2: * Send an email to the potential participants |
| task 3: * Prepare the slides |
 
When I create a project <My Project> using a template < template1 > 
   with a due date <31/03/2016> and variable < Training about Qt >

Then the list of projects is:
  < Project 1 | 29/02/2016 >
  < Project 2 | 15/03/2016 >
  < My Project | 31/03/2016 >
And < My Project> contains the following tasks:
   | * Add an item presenting Training about Qt to my news letter |
   | * Send an email to the potential participants |
   | * Prepare the slides |
dyhia created this task.Feb 16 2016, 9:35 AM
dyhia moved this task from Sandbox to Maturation on the Zanshin board.Feb 16 2016, 9:46 AM
dyhia moved this task from Maturation to Sandbox on the Zanshin board.
dyhia moved this task from Sandbox to Maturation on the Zanshin board.
thuynguyen triaged this task as Normal priority.Feb 16 2016, 10:04 AM
ervin added a subscriber: ervin.Feb 16 2016, 10:17 AM

I think the idea for the story description is ok overall, but here are a couple of ideas to improve its quality:

  • for the user description, don't describe him/her through the action otherwise you repeat yourself with the I can (see how you use "create|make new project" three times in there);
  • the "in order to" part is a bit dull, put yourselves in the user shoes, why would he/she want to do this action? what's the added value? (otherwise right now you're basically saying "I can create a project in order to create a project", this is tautological).

As for the scenario it needs further work, your scenarios should be more precise, describe the steps precisely. Use the existing feature files we have in tests/features/zanshin for inspiration on the approach. It should be steps I can follow properly in the tool.

rottanaly updated the task description. (Show Details)Feb 19 2016, 3:17 PM
rottanaly updated the task description. (Show Details)Feb 19 2016, 3:23 PM
ervin added a comment.Feb 20 2016, 3:40 PM

"someone using project" is still a bit dull in my opinion. What about "as someone having several similar projects"?
"an existing template"
"to facilitate the creation", I would propose instead "to spend less time creating similar projects". From the user point of view it's only the reduced waste of time which matters.

For the scenario, you missed the plural on your given part I guess?
Also I think there's some confusion between your When and Then parts. Clearly, your line starting with "Then" is still part of the "When" in fact, it's still describing the user action on the system (giving a name and selecting a start date).
The "Then" part should be about expressing the state of the system once the user is done with his/her action.

For instance if I take a completely made up idea of managing a list of files (totally made up example, no relation whatsoever to what you're doing, just to help you structuring the content) with a scenario adding a file to the list, that could be expressed like:
Given I list the folder "foo"
And it contains the following files:

| bar.txt |
| baz.jpg |
| meh.png |

When I create a new "bleh.pdf" file in the folder
Then the content of the folder "foo" is:

| bar.txt |
| baz.jpg |
| meh.png |
| bleh.pdf |

Hope that helps.

rottanaly updated the task description. (Show Details)Feb 24 2016, 3:43 PM
ervin added a comment.Feb 24 2016, 6:31 PM

It's slightly better, but your Then part is still way off. Read again my previous comment, if should describe the state of the system after the When. You don't do that and try to evacuate the difficulty using "can", but "add, modify, delete" and "save" are further actions of the user to get to the end result which is never described.

Really, I provided you and example on a scenario dealing with a file list, take more inspiration from it, I feel like you ignored it so far.

rottanaly updated the task description. (Show Details)Feb 24 2016, 7:32 PM

OK, at least that's now better on the When/Then confusion.

But, your scenario is still too broad. Try to approach it "by example" as I hinted in my previous comments.

bensi added a subscriber: bensi.Feb 25 2016, 3:23 PM

here some comments about the scenario :

Given I display all project templates
When I select one of the project templates, <= here choose a name of template (project template 1 or something else ) otherwise you can't validate the result
give a name to my project, select the start date, <= add the name of the project to the reason as previous; remove "," and add "And"
and create my own tasks <= are you sure ? the tasks created are generated by the template, not created during the selection of template, no ?
Then I will have my new project with my own tasks <= project name and it's not the own tasks but it's the tasks from the template and here you can list the task like kevin explained before

rottanaly updated the task description. (Show Details)Feb 25 2016, 4:10 PM
bensi added a comment.Feb 25 2016, 7:39 PM

Given I choose 'template1' from the templates below <= In Given you list the system before your action, here you want to add a new project in list, so you want list the projects

| template1 |
| template2 |
| template3 |

And the folder project contains:

| Project 1 |
| Project 2 |

When I add a name 'My Project' and add the start date <= i create a project <...> using a template <...> with a due date <...>"
Then I will have a new project 'My Project' with the default tasks <= "then the lists is :" <list of projects | due date>
Folder Project now contains:

| Project 1 |
| Project 2 |
| My Project |
rottanaly updated the task description. (Show Details)Feb 26 2016, 9:20 AM
ervin added a comment.Feb 26 2016, 9:54 AM

Miss something like:
"And My Project contains the following tasks:
... "

In your scenario.

In fact to be fully complete you'd then need to express what template 1 contains during the Given part.

rottanaly updated the task description. (Show Details)Feb 26 2016, 3:58 PM
ervin added a comment.Feb 26 2016, 4:04 PM

Still not perfect, it carries a couple of minor issues, but we will deal with that later on.

Good enough for now though, moving it to ready.

ervin moved this task from Maturation to Ready on the Zanshin board.Feb 26 2016, 4:04 PM
oussamabouldjedri moved this task from Ready to In Progress on the Zanshin board.Apr 8 2016, 8:40 PM