Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've taken a class on software testing best practices and test design. In the content, they have a model that basically shows that the three items are derived in this way:

Requirements > Use case > scenarios > test case > test script

I'm fine with the last two but what are the differences between the first three? Use cases seem to take on the same definition as both requirements and scenarios or at least bounce back and forth. I have not been able to find a clear example that shows:

this is a requirement statement
this is a use case of the requirement
this is a scenario of the use case

Could someone clear this up and give an example?


share|improve this question

A requirement is typically a general statement, whereas a use case is typically a specific statement implied or derived from the requirement. A requirement may map to multiple use cases. A scenario might be a set of background assumptions that put a use case in context, or it might be grouping of use cases.

Here is a contrived example. The requirement is to provide an API that converts a CSV file into a tab-separated file. A scenario might be, "John is a Java developer who deals with potentially large CSV files that are sometimes empty." A use case might be "If the input file is empty, the output file will also be empty" or "The API does not run out of memory while processing a 500Gb file".

Finally, SQA gets a lot of "What is the different between these terms" kinds of questions. If you hear someone utter some ambiguous phrases, and it's important to understand what they mean (e.g. because a co-worker or your boss used them), ask them what they mean. Among reasonable people, it is always OK to say, "Different people use that phrase to mean different things, so can you be more specific about what you meant?" If you've never heard the phrases before, or you lack confidence, you can do a Google search first, come up with a first approximation of what they mean, and then ask that person to clarify what they meant.

share|improve this answer
Yep, and it may be useful to come up with a common, agreed upon, published definition somewhere so that when you're talking amongst teammates you know that you're all on the same page. – Sam Woods May 22 '13 at 18:56
Good answer. I would emphasize the "ask them what they mean" point. Often SQA adds significant value to a project by trying to ensure everyone means the same thing. When we can get the Product Manager, Project Manager, Business Analysts, Developers and QAers all meaning the same thing - then we have a better chance to avoid some bugs before they are committed to code. That's always a good thing. – Joe Strazzere May 23 '13 at 11:42

Considering your description, the clarifications can be given as :

Requirement : It is the changing need of the stakeholders which is tried to fulfill by the development team at the time of developing the product

Use case : After the requirements are clear, then the use cases can be designed/decided which will clear the overall flow of the system to developers first and then they can design the system accordingly. Once the flow is clear to them, then it becomes somehow simple to test the system by QA.

Scenario : It is the real life situation in which the end-user/customer uses/interacts with the system and came across various failures(if there are any). Hence we generally used to say Real world scenario.

Example: For a particular project the requirements are first being made clear by the Business Analyst. In the documentation and SRS part the Use cases can be found out and the development tasks can be alloted to various developers according to that. When user uses the system, then it becomes a scenario.

share|improve this answer

A scenario is a particular instance or set of steps for one path through the use case. A use case is a goal oriented process done by the system.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.