STT Unit 4
STT Unit 4
The variation in the expected and actual results is known as defects. A defect is an
error or a bug in the application.
In other words, a defect is an error in coding or logic that causes a program to
malfunction or to produce incorrect/unexpected results.
Root causes of defects are:
1. Requirements are not defined clearly by customer.
2. Designs are wrong and not implemented properly.
3. People are not trained for work in collecting requirements.
4. Processes used for product development, testing are not capable. They are not able
to deliver right software product.
Software Testing Defect
Tools Report
4.2
Software Testing Defect
Tools Report
This starts as soon as any new defect is found by a tester and comes to an end when a
tester closes that defect assuring that it won’t get reproduced again.
The actual workflow of a Defect Life Cycle with the help of a simple diagram as shown
in Fig. 4.1.
Defect life cycle is a cycle in which a defect goes through during its lifetime. The defect
life cycle starts when defect is found and ends when a defect is closed, after ensuring
it’s not reproduced.
Defect life cycle is the representation of the different states of a defect which it attains
at different levels during its lifetime.
The defect/bug has following states in its life cycle:
1. New: Whenever any new defect is found in application, it is defined as a ‘New’
state, and validations and testing are performed on this defect in the later stages of
the Defect Life Cycle.
2. Assigned: Newly created defect is assigned to the development team to work on
the defect. This is assigned by the project lead or the manager of the testing team
to a developer. It’s state is now defined as “assign”
3. Open: Developer analyzes the defect and works on it and fix 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 a specific reason.
4. Fixed: When the developer finishes the task of fixing a defect by making the
required changes then it is marked as “Fixed”.
5. Pending Retest: After fixing the defect, the developer assigns the defect to the
tester to retest the defect at their end, and until 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 retesting the defect to verify if the
defect is fixed accurately by the developer as per the requirements or not.
7. Reopen: If any issue 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”.
A few more state includes:
1. Rejected: If the defect is not considered a genuine defect by the developer then it
is marked as “Rejected” by the developer.
4.3
Software Testing Defect
Tools Report
2. Duplicate: If the developer finds the defect as same as any other defect or if the
concept of the defect matches any other defect then the status of the defect is
changed to ‘Duplicate’ by the developer.
3. Deferred: If the developer feels that the defect is not of very important priority
and it can get fixed in the next releases or so in such a case, he can change the
status of the defect as ‘Deferred’.
4. Not a Bug: If the defect does not have an impact on the functionality of the
application, then the status of the defect gets changed to “Not a Bug”.
Defect classification
2. Design Defects:
These defects generally refer to the way of design creation or its usage while creating a
software product.
The customer may or may not be in a position to understand these defects, if
structures are not correct.
They may be due to problems with design creation and implementation during SDLC
(Software Development Life Cycle).
Design related defects may be classified as follows:
(i) Algorithmic defects may be introduced in a product if designs of various
decisions are not handled correctly.
(ii) Module interface defects are about communication problem between various
modules. If one module gives some parameters which are not recognized by
another, it creates module-interface defects.
(iii) User interface defects may be a part of system - interface defects where the
other system working with the application is a human being. User-interface
defects may be a part of navigation, look and feel type of defects which affect
usability of an application.
(iv) System interface defects may be generated when application communication
with environmental factors is hampered. System may not be able to recognize
inputs coming from the environment or may not be able to give outputs which
can be used by the environment.
3. Coding Defects:
These defects may arise when designs are implemented wrongly. If there is absence of
development/coding standards or if they are wrong, it may lead to coding defects.
Some coding defect are given below:
(i) Variable declaration/initialization defects arise when variables are not
initialized properly, or variables are not declared correctly. These types of defects
refer to wrong coding practices which may arise due to wrong standards of
development.
(ii) Commenting/Documentation defects, coding also needs adequate commenting
to make it readable and maintainable in future.
(iii) Database related defects may occur when a database is not created
appropriately or it is not optimized. It may be a part of design defects if database
design is wrong or it may be a coding defect if database is not implemented
correctly as per design.
4. Testing Defects:
These defects are introduced in an application due to wrong testing or defects in the
test artifacts leading to wrong testing.
4.5
Software Testing Defect
Tools Report
(i) Test design defects refer to defects in test artifacts. These can be defects in test
plans, test scenarios, test cases and test data definition which can lead to defect
introduction in software if it is not handled correctly.
(ii) Test tool defects generally, assumed that there are no defects in a test tool. Any
defect introduced by a test tool may be very difficult to find and resolve, as one
may have to find the defect using manual tests as against automated tools.
(iii) Test environment defects may arise when test environment is not set properly.
Test environment may be comprised of hardware, software, simulators and
people doing testing. If test environment definition and reality are mismatched, it
may lead to defects. Test environment may include operator training also.
4.6
Software Testing Defect
Tools Report
A defect report includes all the information needed to reproduce the problem,
including the author, release/build number, open/close dates, problem area, problem
description, test environment, defect type, how it was detected, who detected it,
priority, severity, status, etc.
The general sample defect template is shown in Fig. 4.3.
DEFECT REPORT
Signatures :
Originator: Tested:
Programmer: Project Manager:
Marketing: Product Support:
4.7
Software Testing Defect
Tools Report
Every defect has distinctive attributes in comparison to a test case. It defines the defect
in detail and also helps in identification/fixing and categorization of defect.
Following are some of the attributes of a defect.
1. Defect ID is the unique identification number for the defect.
2. Defect Name is the name of the defect must explain the defect in brief, its nature
and type.
3. Project Name indicates the project for which the defect is found.
4. Module/Sub-module Name for which the defect is found may be mentioned to
create a reference. It may not be required, if defect ID already contains this
information.
5. Phase Introduced gives information about when the defect has been added in the
application being developed.
6. Phase Found is the phase of the project when the defect is found is added here.
This is used to find defect leakage or stage contamination or stage containment.
7. Defect Type is the definition of defect type may be declared in test plan.
8. Severity is the definition of severity of the defect is declared in test plan.
Severity describes the impact of the defect on the application. Severities may be
critical, high, medium or low depending on the impact of a defect. Severity can be
defined as, “the degree of impact that a defect has on the development or
operation of a component or system.”
Classification of Defect Severity:
(i) Critical: The defect affects critical functionality or critical data. It does not
have a workaround. Example: Unsuccessful installation, complete failure of a
feature.
(ii) Major: The defect affects major functionality or major data. It has a
workaround but is not obvious and is difficult. Example: A feature is not
functional from one module but the task is doable if 10 complicated indirect
steps are followed in another module/s.
(iii) Minor: The defect affects minor functionality or non-critical data. It has an
easy workaround. Example: A minor feature that is not functional in one
module but the same task is easily doable from another module.
(iv) Trivial: The defect does not affect functionality or data. It does not even
need a workaround. It does not impact productivity or efficiency. It is
merely an inconvenience. Example: Petty layout discrepancies,
spelling/grammatical errors.
4.8
Software Testing Defect
Tools Report
4.9
Software Testing Defect
Tools Report
4.1
0
With the help of defect attributes, defects easily customized and tracked. Here, are
some major attribute used in defect reports: