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:-


Starts with A Given, When or Then.  Givens are prerequisite, Whens are interactions and Thens are our results. 


A single sentence or multiple sentences combine to make scenarios

Run Scenario

Scenarios should be read as running all the Givens in the order they are written in the Scenario, all the Whens, and then all the Thens



Are BAD!



The complete application, every aspect.  Every module, every button,  everything!



The over riding reason.  Why is your application here?  Where did it come from? 



These make up your epic.  You have your reason for existence, now you need the different parts of its life



These make up your theme.  You have a story, a journey.  Many journeys create a theme



The individual chapters that make up the story.  What actually happened to make the story.


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!

©2020 by Agile Testing.