We are really building up BDD now. Here is what we know so far.
Now we have to think.. What are we testing? What does BDD actually test? We have to take a step outside of testing, in to Development!
Ask yourself the question - an application, what is it made from? In agile development we think of an application as follows:-
How is your Greek?
The above is an image (thank you Wikipedia) of a 5th Century Greek manuscript of Homer's Iliad. Now you do not need to know the details, but this is where the basis of the above 5 definitions comes from.
The Greek author wrote 2 poems (very large poems) about Odysseus, The Iliad and Odyssey. The whole story of Odysseus. Everything we know about Odysseus - our application.
If we look at just one of these poems, this is our epic. There is enough here for one poem, one epic. It will work stand alone, but there maybe parts that rely on the other epic. Events in Odyssey are a direct consequence of what happens in the Iliad and the reader of Odyssey is assumed to know the summary of the plot in the Iliad.
Odyssey has many themes through it. One of the themes is very useful to what we are talking about - "TESTING"! There is numerous stories where Odysseus, tests the loyalty of others.
We are given stories of these tests, Odysseus arrives home to test who in his house has remained loyal to him.
Finally we have the actual details, the feature, where the process are divulged, Odysseus dresses up as a beggar, plays tricks on his household to prove they have remained loyal.
Might help if we reverse this:-
The couple of pages of some bloke dressing up is not a good story, a single story of a man dressing up to test the loyalty of others does not comprise of a theme of testing. Lots of stories of a man running tests on others becomes a theme, but it is hardly an epic, where as lots of themes create an epic. And just one epic doesn't make a library! Multiple epics creates an application
Application has many epics has many themes has many stories has many features
There is just one more level to add, for application development and Greek poem writing, and that is a Task. This is not a task for the reader, or in our case, the user of the application. There is the saying "A journey of a thousand miles begins with a single step" and that single step is a task - or in development, CODE!