What is the difference between a use case and test case?
A use case captures
business and user requirements related to system functions—that is, how the
users interact with the system. The goal of a use case is to help the
development team understand precisely what the users will expect the system to
do.
A use case
describes all the possible paths through a given user/system interaction,
including the basic path and any alternative or exception paths. The basic (or
"happy") path is the one that meets the user's needs.
"Alternative paths" are additional paths that are acceptable but
aren't the most common, frequent, or desirable. "Exception paths" are
those that fail to meet the user's needs because of errors like missing
information or invalid data. A single use case may describe many different
paths.
Test cases are used to validate
that the requirements have been met. The quality assurance analyst will
probably want to test the system thoroughly by setting up an individual test
case for each path described in a use case. At a minimum, they would set up
separate test cases for the "happy path," each alternative path, and
each exception path. There would probably also be multiple test cases for the
happy path—one for each situation that would cause different business rules to
be invoked.
Use cases are provided to developers so that they can develop the
solution, and test cases are
provided to testers so that they can validate that the solution matches the
requirements. Thus, use cases often supply input for developing test cases. But
while the two documents may overlap quite a bit, they aren't exactly the same
thing.
Which phase of SDLC does the testers begin to write test
case?
Testers start writing test case when the requirement are base lined and the functional requirement / use case are available and generally
this is ready by Design phase or beginning of coding and unit testing phase. Testers start writing test case
during Design or coding and unit testing phase.
What is the difference between functional document and
business document?
Business document is the requirement gathered from the
customer about their business requirements. This can also come from the competitor
products from the marked and also through market research. Whereas the
functional requirement is exact workflow of the agreed business requirements
which the end user will be using when the project/product is developed.
Who are the different stakeholders involved in different
phases of SDLC?
Requirements Gathering : Business Analyst / Product owner
Planning : Senior Management, Product owner, Business Analyst and project manager
Design : System Architect, Senior Developers and Project Managers
Design : System Architect, Senior Developers and Project Managers
Coding and unit testing : Software Developer / Development Team
Testing : Tester / Testing Team
Implementation : Operational Team
Maintenance: Production Support Team
Do we need a separate environment for the developers and
testers?
Developers when developing the system, there will be many
changes happening to the system from the development team and it will be
difficult for the testing team to test the system here as it is not stable. Hence
testing team need a stable environment and it should be close to production environment if possible.
What is the role of a Business Analyst in different phases
of SDLC?
Business Analyst has the key role in the requirement
elicitation phase where he is directly responsible to get the requirements from customer. He also has the responsibility of sharing the knowledge with the
rest of the team. During other phases of the SDLC, whenever the team has any
doubts on the requirement, he has the responsibility of clarifying their
doubts. During development, if any new requirement is pushed or any change to
the existing requirement is identified he has to discuss with the team and see
the impact of the change and feasibility of implementation of the change after discussing
with the architects, project managers, test managers and senior developers. When
the project / product is ready for release he can always get involved in system
testing to ensure the system is working as per the customer requirements. When
the defects are raised by the testing team during testing and if there are any
conflicts between development and testing team on the relevance of the defect,
he can always give his input on the defect under discussion.
What is the role of a Developer in different phases of SDLC?
Requirement Elicitation: Ensure the requirements are
understood clearly and demonstrate his understanding to the team (Medium: Presentation,
discussion, understanding documents..etc.)
Planning : Provide the input to the project manager on the initial estimation of the requirements.
Design Phase: Come out with the low level design from the High level design documents.
Design Phase: Come out with the low level design from the High level design documents.
Coding and unit testing: Implement the system and do the self-review,
code review and unit testing.
Formal Testing: Fix the defect raised by the testing team.
Maintenance: Ensure the issues raised in production are
verified, do the impact analysis, estimate the time for fixing and do the
production fix.
What is the role of a Test Analyst in different phases of
SDLC?
Requirement Elicitation: Ensure the requirements are
understood clearly and demonstrate his
understanding to the team (Medium: Presentation,
discussion, understanding documents..etc.)
Planning Phase: Help the test lead in providing the estimation of each testing task.
Planning Phase: Help the test lead in providing the estimation of each testing task.
Design Phase: Start writing the test cases for the
finalized requirements.
Coding and unit testing: Continue on test case development
and also involve in test case review of peers.
Formal Testing: Execute the test cases, analyze any defects found,
report the defect and get the acknowledgement of the defect from the development
team. When the defects are fixed by the dev team, ensure they are re-tested and
perform the regression testing to ensure no other functionality is broken. Also
test the non-functional requirements identified by the customer and the team.
Maintenance: Regression testing, non-functional testing and
the production fix test.
What is the role of a Customer/ Client in different phases
of SDLC?
Requirement Elicitation: Provide the necessary business requirements
to the development team.
Ensure all the clarifications from the team (business
analyst and rest of the team members) are addressed in timely manner.
During other phase of SDLC, the customer should always be available
for clarification and also participate during the sprint or iteration demo.
During UAT, participate in the UAT testing and give their feedback on the
system.