Hi,
(my previous message got dropped half-way, so sorry if this ends up as
a double post)
CRUD is not a user story, it's a screen. It's not a business function,
but implementation detail. Why do the business users need a particular
CRUD screen? (I know it sounds as a stupid rhetorical question, but
I'm serious) What does it allow them to do?
Often you don't need to implement an entire CRUD screen and deliver
them one by one. Sometimes there is value in releasing two screens
that allow you to set a subset of properties but together they bring
value. You can then automate these tests through the UI and use the
CRUD screens, but that will be hidden in the automation layer. Say for
example that we have a risk report that lists users and their card
numbers:
Scenario: Only regular customers with a specific risk category and
card type show up in risk reports
Given the following users
|name| type| card type| card number| risk category|
|Mike |VIP | Mastercard |53111 11111 11111 1111|X|
|Tom |VIP| Visa |41111 11111 11111 1111|Y|
|John |Regular |Mastercard |51111 11111 11111 1111|X|
|Steve |Regular |Mastercard |52111 11111 11111 1111|Y|
Then the risk report for Mastercard and category X contains the
following data
|John | 51111 11111 11111 1111|
This could, for example, invoke the user CRUD to save a user name,
type and risk category and a completely different CRUD to save card
details for that user. Any other information that would go on that
CRUD (addresses, card expiry dates etc) aren't part of this story or
criteria because they are not important for this particular report.
Start with the outputs, the reports that the system produces, instead
of data entry operations. this ensures that you have the data you need
to produce the reports at the end, and that you don't have superfluous
data that nobody really cares about. if you don't do that, from my
experience, data schemas are often overcomplicated and contain many
things that simply aren't used at the end at all.
gojko