• Manual Testing

    Manual Testing is the process of manually testing software for defects.

  • Automation Testing

    Test Automation is the use of special software to control the execution of tests and the comparison of actual outcomes with predicted outcomes.

  • Mobile Application Testing

    Mobile application testing is a process by which application software developed for hand held mobile devices is tested for its functionality, usability and consistency.

  • Database Testing

    Database testing is about checking exact values which have been retrieved from the database by the web or desktop application data should correctly match as per the records that are stored in the Database

Tuesday, February 4, 2014

Posted by Sri Harsha Emani
No comments | 2/04/2014 12:29:00 AM
1.   Introduction

Defect management is crucial to closing the loop between requirements, implementation and verification and validation. The cost of finding and correcting defects represents one of the most expensive software development activities. For the foreseeable future, it will not be possible to eliminate defects.  While defects may be inevitable, we can minimize their number and impact on our projects. To do this development teams need to implement a defect management process that focuses on preventing defects, catching defects as early in the process as possible, and minimizing the impact of defects.

1.1       Definition

The process of recognizing, investigating, taking action and disposing of defects. It involves recording defects, classifying them and identifying the impact.

Defect: Defect is a deficiency in a software product that causes it to perform unexpectedly.

1.2       Goals of Defect Management:

Following are the goals of defect management:

·         Prevent the defect.
·         Early Detection.
·         Minimize the impact.
·         Risk driven process
·         Continuous effort to improve the process.


     2.   Defect Management Process

The defect management process contains the following elements:

·         Defect Prevention
·         Deliverable Baseline
·         Defect Discovery
·         Defect Analysis & Prioritization
·         Defect Resolution
·         Process Improvement


 Defect Prevention: Defect Prevention is a process of improving quality and productivity by preventing the injection of defects.

Defect prevention should begin with an assessment of the critical risks associated with the system.  Getting the critical risks defined allows people to know the types of defects that are most likely to occur and the ones that can have the greatest system impact.  Strategies can then be developed to prevent them.  The major steps for defect prevention are as follows:

·         Identify Critical Risks
·         Estimate Expected Impact
·         Minimize Expected Impact

Deliverable Baseline: When a product reaches a predefined milestone in its development then it is baselined. This milestone involves transferring the product from one stage of development to the next. A product should be considered baselined when developer passes it on for integration testing.

The concept of baselining is important because it requires an organization to decide both the level of formality that is appropriate, and the point in the process when the formality takes effect.  In general, a deliverable should be baselined when changes to the deliverable, or defects in the deliverable, can have an impact on deliverables other people are working on.

Deliverable baseline involves the following activities:

·         Identify key deliverables: Select those deliverables that will be baselined and the point within the development process where the deliverable will be baselined.
·         Define standards for each deliverable: Set the requirements for each deliverable and the criteria that must be met before the deliverable can be baselined.

Defect Discovery: A defect is said to be discovered when it is brought to the attention of the developer and is acknowledged to be a valid one. The defect tracking software must be simple enough so that people will use it, but ensure that the minimum necessary information is captured. The information captured here should be enough to reproduce the defect and allow development to determine root cause and impact.

The defect discovery involves the following steps:

·         Find Defect
·         Report Defect
·         Acknowledge Defect

Defect Analysis & Prioritization: The development team determines if the defect report corresponds to an actual defect, if the defect has already been reported, and what the impact and priority of the defect is. Prioritization and scheduling of the defect resolution is often part of the overall change management process for the software development organization.

Defect Resolution: Here the development team determines the root cause; implements the changes needed to fix the defect, and documents the details of the resolution in the defect management software, including suggestions on how to verify the defect is fixed.

Process Improvement: Identification and analysis of the process in which a defect originated to identify ways to improve the process to prevent future occurrences of similar defects.  Also the validation process that should have identified the defect earlier is analyzed to determine ways to strengthen that process.

      3.    Defect life cycle

Defect/bug life cycle is a process which a defect goes through during its lifetime. It starts when defect is found and ends when a defect is closed, after ensuring it’s not reproduced.




 New State: When the defect is found and submitted by the tester, New status is automatically assigned to it.

Open: If the defect is accepted for repair, Test lead or QA change the status to Open and assign it to development team.

Rejected: A Test lead or QA reviews the defect and decides whether or not to repair the defect. If the defect is refused, Rejected status is assigned to the defect.

Assigned: A defect has been verified and by the development team is now Assigned to the developers for fixing.

Fixed: The development teams repairs the defect and change its status to fixed. They then assign the defect back to quality assurance or project manager.

Retest: After the defect is fixed, the quality assurance or project manager change the status of defect to Retest and assigns the defect to tester.

Reopen: The testers retest the defect and see if it has been repaired or not. If the bug still exists, it is again changed to Reopen status. The defect the again passes through fixed, and retest status until it has been fixed.

Closed: If the defect is found repaired after retest, the quality assurance or project manager changes the defect to Closed.

Deferred: The development team reviews the defect and decides to fix the defect in current fix or in some other fix release. If defect is decided not to be fixed in current release, deferred status is assigned to it.

     4.   Severity & Priority

There are two key things in the defect of the software testing. They are:

·         Severity
·         Priority

1)    Severity: It is the extent to which the defect can affect the software. In other words it defines the impact that a given defect has on the system.

Severity can be of following types:

Critical: The defect that results in the termination of the complete system or one or more component of the system and causes extensive corruption of the data. The failed function is unusable and there is no acceptable alternative method to achieve the required results then the severity will be stated as critical.

Major: The defect that results in the termination of the complete system or one or more component of the system and causes extensive corruption of the data. The failed function is unusable but there exists an acceptable alternative method to achieve the required results then the severity will be stated as major.

Moderate: The defect that does not result in the termination, but causes the system to produce incorrect, incomplete or inconsistent results then the severity will be stated as moderate.

Minor: The defect that does not result in the termination and does not damage the usability of the system and the desired results can be easily obtained by working around the defects then the severity is stated as minor.

Cosmetic: The defect that is related to the enhancement of the system where the changes are related to the look and field of the application then the severity is stated as cosmetic.

2)  Priority: Priority defines the order in which we should resolve a defect. Should   we fix it now, or can it wait? This priority status is set by the tester to the developer mentioning the time frame to fix the defect. If high priority is mentioned then the developer has to fix it at the earliest. The priority status is set based on the customer requirements.

 Priority can be of following types:

Low: The defect is an irritant which should be repaired, but repair can be deferred until after more serious defect has been fixed.

Medium: The defect should be resolved in the normal course of development activities. It can wait until a new build or version is created.

High: The defect must be resolved as soon as possible because the defect is affecting the application or the product severely. The system cannot be used until the repair has been done.

Few very important scenarios related to the severity and priority which are asked during the interview:

High Priority & High Severity: An error which occurs on the basic functionality of the application and will not allow the user to use the system. (Eg. A site maintaining the student details, on saving record if it, doesn’t allow to save the record then this is high priority and high severity bug.)

High Priority & Low Severity: The spelling mistakes that happens on the cover page or heading or title of an application.

High Severity & Low Priority: An error which occurs on the functionality of the application (for which there is no workaround) and will not allow the user to use the system but on click of link which is rarely used by the end user.

Low Priority and Low Severity: Any cosmetic or spelling issues which is within a paragraph or in the report (Not on cover page, heading, title).


     5.   Defect Management Tools

A tool that facilitates the recording and status tracking of defects and changes. They often have workflow-oriented facilities to track and control the allocation, correction and re-testing of defects and provide reporting facilities.

Following are the core features of a defect management tool:

·         Provides a centralized repository for tracking defects across projects.
·         Provides automated notifications of resource assignments.
·         Ability to define defect resolution status in order to map back to your defect management process.
·         Ability to provide management reporting, like the number of open defects grouped by various criteria such as open defects by project, severity, and priority.

     6.    Conclusion:

A defect management system is made up of a combination of defect management tools and a defect management process.

In addition, the effectiveness of a defect management system is influenced by the organizational culture it operates within. For most environments, it makes sense to utilize tools and processes that focus on the speed of identifying, tracking, and resolving defects. This provides the basis for understanding root cases and making appropriate process improvements. If the culture of the team or organization considers defects as negative, people spend more time trying to avoid defects and also are less likely to report a defect when encountered. This can lead to some defects being identified later in the process, when they are harder and more costly to fix.                                                                                                  


0 comments:

Post a Comment

Blogroll

Blogger news

BLOGROLL

Blogger templates

Blogroll

About