Professional Documents
Culture Documents
b. Test plan
A test plan is a detailed document that describes the test strategy, objectives,
schedule, estimation and deliverables and resources required for testing. Test plan
is a dynamic document. The success of testing project depends on a well written
test plan document.
c. Traceability matrix
A Traceability Matrix is a document that co-relates any two-baseline documents
that require a many-to-many relationship to check the completeness of the
relationship.
d. Test management
Test management process of managing the test. The purpose of test management is
to help meet customer demands as efficiently and as economically as possible by
making best use of all asserts in a timely manner.
Test management process
1. Test analysis
2. Test planning and preparation
3. Test execution
4. Test closure.
e. Defect
A defect is an error in coding or logic that causes a program to malfunction or to
produce incorrect/unexpected results.
Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No
Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No
Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No
Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No
d. Verify LMS
Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No
Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No
Usually, an alpha testing takes place in the test lab environment on a separate system. In
this technique, project manager teams up with the developer to define specific goals for
alpha testing, and to integrate the results into evolving project plans.
As such alpha testing is done on a prototype, in-depth reliability testing, installation testing,
and documentation testing can be ignored.
A good alpha test must have a well-defined Test Plan with comprehensive test cases.
Various activities involved in alpha testing are logging defects, fixing defects, retesting,
several iterations, etc.
➢ Component testing
Component testing is defined as a software testing type, in which the testing is performed
on each individual component separately without integrating with other components. It's
also referred to as Module Testing when it is viewed from an architecture perspective.
Component Testing is also referred to as Unit Testing, Program Testing or Module
Testing.
Advantages of Component Testing
1. It finds the defects in the module and verifies the functioning of the
software.
2. It helps in faster delivery.
3. It leads to re-usability of software which provides a lot of benefits.
4. Reduces the development cycle time.
5. Helps in reducing the project cost.
6. Leads to a significant increase in productivity.
Component Testing Disadvantages
1. Less control over the evolution of the system.
2. There is a need to compromise the requirements.
➢ Unit testing
Unit testing performed on each module or block of code during development. unit testing
is normally done by the programmer who writes the code.
How to do Unit Testing
Unit Testing is of two types
• Manual
• Automated
Unit testing is commonly automated but may still be performed manually. Software
Engineering does not favor one over the other but automation is preferred. A manual
approach to unit testing may employ a step-by-step instructional document.
Unit Testing Advantage
• Developers looking to learn what functionality is provided by a unit and how to use it can
look at the unit tests to gain a basic understanding of the unit API.
• Unit testing allows the programmer to refactor code at a later date, and make sure the
module still works correctly (i.e. Regression testing). The procedure is to write test cases
for all functions and methods so that whenever a change causes a fault, it can be quickly
identified and fixed.
• Due to the modular nature of the unit testing, we can test parts of the project without waiting
for others to be completed.
Unit Testing Disadvantages
• Unit testing can't be expected to catch every error in a program. It is not possible to evaluate
all execution paths even in the most trivial programs
• Unit testing by its very nature focuses on a unit of code. Hence it can't catch integration
errors or broad system level errors.
➢ Integration testing
Integration testing done before, during and after integration of a new module into the main
software package. This involves testing of each individual code module. One piece of
software can contain several modules which are often created by several different
programmers. It is crucial to test each module's effect on the entire program model.
Verification of bugs are not included in the Verification of bugs are included in the
regression testing. retesting.
Regression testing can be done in parallel with Retesting is of high priority so it’s done before
retesting. the regression testing.
For regression testing test cases can be For retesting the test cases cannot be
automated. automated.
In case of regression testing the testing, style In case of retesting the testing is done in a
is generic planned way.
During regression testing even the past test During retesting only failed test cases are re-
cases are executed. executed.
Regression testing is carried out to check for Retesting is carried out to ensure that the
unexpected side effects. original issue is working as expected.
Waterfall Agile
The waterfall methodology is sequential and Agile methodology is incremental and
linear. iterative.
Requirements have to be frozen at the Requirements are expected to change and
beginning of SDLC. changes are incorporated at any point.
The working model of software is delivered at The working model is delivered during the
the later phases of SDLC. initial phases and successive iteration of the
model is delivered to the client for feedback.
It is difficult to scale-up projects based on Scaling up of products is easy because of the
waterfall methodology. iterative approach.
Customers or end-user doesn’t have a say Frequent customer interaction and feedbacks
after the requirements are frozen during the are involved in agile methodology.
initial phases. They only get to know the
product once it is built completely.
Waterfall requires formalized In agile documentation is often neglected and
documentations. a working prototype serves as the basis for
customer evaluation and feedback.
Testing is performed once the software is Continuous testing is performed during each
built. iteration.
1) New: This is the first state of a defect in the Defect Life Cycle. When any new defect is
found, it falls in a ‘New’ state and validations and testing are performed on this defect in the
later stages of the Defect Life Cycle.
2) Assigned: In this stage, a newly created defect is assigned to the development team for
working on the defect. This is assigned by the project lead or the manager of the testing team
to a developer.
3) Open: Here, the developer starts the process of analyzing the defect and works on fixing
it, if required. If the developer feels that the defect is not appropriate then it may get
transferred to any of the below four states namely Duplicate, Deferred, Rejected or Not a
Bug-based upon the specific reason.
4) Fixed: When the developer finishes the task of fixing a defect by making the required
changes then he can mark the status of the defect as ‘Fixed’.
5) Pending Retest: After fixing the defect, the developer assigns the defect to the tester for
retesting the defect at their end and till the tester works on retesting the defect, the state of the
defect remains in ‘Pending Retest’.
6) Retest: At this point, the tester starts the task of working on the retesting of the defect to
verify if the defect is fixed accurately by the developer as per the requirements or not.
7) Reopen: If any issue still persists in the defect then it will be assigned to the developer
again for testing and the status of the defect gets changed to ‘Reopen’.
8) Verified: If the tester does not find any issue in the defect after being assigned to the
developer for retesting and he feels that if the defect has been fixed accurately then the status
of the defect gets assigned to ‘Verified’.
9) Closed: When the defect does not exist any longer then the tester changes the status of the
defect to ‘Closed’.
9) “Exhaustive testing is impossible” Justify the statement.
10) Mention the differences between "Quality Assurance, Quality Control and Testing"
Quality Assurance
The QA procedure includes the preparation of a Test Plan, planning and execution of risk-
based testing, industry-specific testing, and test data management. It helps to specify and
establish the requirements for both software development and quality verification to reach
a defined level of software quality and to improve the productivity of the project team.
Quality Control
QC focuses on a product quality. Its main goal is to ensure a proper implementation of the
processes established at the QA stage. The QC activities are called to find software issues
and to make sure they will not appear the second time. It is a reactive process that helps to
confirm that the achieved results correspond to the expected ones.
Testing
Software Testing is a process of verifying different attributes of a system and aspects of its
usage in order to make sure that the product operates as expected and that it does not
perform any functions that it is not supposed to conduct. Testing is a part of QC. It includes
various techniques that are called to detect software issues. Besides, the goal of Software
Testing is also to make sure the detected bugs are fully fixed without any side effects.