Quite often when I'm asked to review UML "Use Case" that someone else has written, I ask "Have you tested your Use Case with real data?" Sadly, the answer is usually "no". I don't know why people don't do this, but they don't, and it seems like a very logical thing, essentially a unit test for Use Cases.
One time I was working with an insurance agency, and I was told that a particular Use Case (and accompanying prototype) were "complete". So I suggested that we walk through this one case with some actual data. I used my own car for an example, and as we walked through the Use Case with just the basic car data (2003, Chrysler, PT Cruiser, etc.), we quickly found a few missing items. When put in detailed context like this, the customer could clearly see that they were missing specific details in their use cases. But when they spoke in general terms, they did not see the problem.
I'm not sure why people are reluctant to use actual data like this in their use cases, but I've seen that people like to speak in general terms so often there should be a name for this phenomenon. Technically Use Cases at this point are referred to as "conceptual", or "high level". It seems like people are happy with their Use Cases when they are at this conceptual level, but for some reason they don't want to take that next step to the detailed level that is actually required to validate their general ideas.
I was reminded of this recently while reading a book named "Surely You're Joking, Mr. Feynman" by Richard Feynman this morning. In a chapter titled "Would You Solve the Dirac Equation", he spoke of his approach when someone tried to explain a new concept to him. He would always ask a wonderful question:
"Is there a particular example of this general problem?"
When I read that line, I thought to myself, "You see, I'm not crazy for wanting to test use cases with real data!"
When I read this story by Mr. Feynman I realized that someone else essentially used this "real data" testing technique in a totally different field, and he was obviously a tremendous scientist. In this same chapter he goes on to explain that people always used to think he was a slow starter because he asked questions like this initially, but later on he would find flaws in people's approaches just because of this process.
I think it is very important to do this with UML Use Cases. Walk through your use cases with real data. Think of this approach as testing your use cases ... "Unit testing for use cases" if you prefer.