We have been working with BDD for sometime now and one issue that keeps cropping up is related to the scope of our scenarios. Particularly when it come to making a change to existing functionality.
As a developer I see the scenarios as being akin to a spec, ie. this is the change that is required. However often they seem to stray into regression or acceptance testing.
So scenario 2 wont require any code changes itself but might indicate a function that also needs testing following a change made by scenario 1 (regression testing). Or Scenario 2 might provide an alternative test to the same function as scenario 1 (acceptance testing).
On the face of it this doesnt seem unreasonable however it greatly increases the number of scenarios which makes them more time consuming to write and makes it harder for the developers to see the wood for the trees.
What should the scope of scenarios be when making a change to exising functionality? Can we have a scenario that specifies a change in generic terms rather than having a seperate scenario for each related function?