The Real World of Software Testing
August 26, 2003
 
Reviews, Inspections, and Walkthroughs
In a review , a work product is examined for defects by individuals other than the person who produced it. A Work Product is any important deliverable created during the requirements, design, coding, or testing phase of software development.

Research shows that reviews are one of the best ways to ensure quality requirements, giving you as high as a 10 to 1 return on investment. Reviews help you to discover defects and to ensure product compliance to specifications, standards or regulations

Software Inspections are a disciplined engineering practice for detecting and correcting defects in software artifacts, and preventing their leakage into field operations.

Software Inspections are a reasoning activity performed by practitioners playing the defined roles of Moderator, Recorder, Reviewer, Reader, and Producer.

Moderator: Responsible for ensuring that the inspection procedures are performed through out the entire inspection process. The responsibilities include
  • Verifying the work products readiness for inspection
  • Verifying that the entry criteria is met
  • Assembling an effective inspection team
  • Keeping the inspection meeting on track
  • Verifying that the exist criteria is met

    Recorder: The Recorder will document all defects that arise from the inspection meeting. This documentation will include where the defects was found. Additionally, every defect is assigned a defect category and type.

    Reviewer: All of the Inspection Team individuals are also considered to play the Reviewer role, independent of other roles assigned. The Inspector role is responsible for analyzing and detecting defects within the work product.

    Reader: The reader is responsible for leading the Inspection Team through the inspection meeting by reading aloud small logical units, paraphrasing where appropriate

    Producer: The person who originally constructed the work product. The individual that assumes the role of Producer will be ultimately responsible for updating the work product after the inspection.

    In a Walkthrough, the producer describes the product and asks for comments from the participants. These gatherings generally serve to inform participants about the product rather than correct it.



  •  
    The Software Inspection Process
    Great place for Software Inspection Process. This site will give you the detailed description of all stages in Software Inspection Process. It also lists different reports produced after inspection.
    August 22, 2003
     
    Defect Management Process
    Keeping in mind the philosophies and goals developed in QAI research report number 8, Mosaic Inc. developed a multi-step approach to defect management. The major steps involved in the process are:

    Defect Prevention
    Implementation of techniques, methodology, and standard processes to reduce the risk of defects
  • Identify Critical Risks
    Identify the critical risks facing the project or system. These are the types of defects that could jeopardize the successful construction, delivery and/or operation of the system.
  • Estimate Expected Impact
    For each critical risk, make an assessment of the financial impact if the risk becomes a problem.
  • Minimize Expected Impact
    Once the most important risks are identified try to eliminate each risk. For risks that cannot be eliminated, reduce the probability that the risk will become a problem and the financial impact should that happen.

    Deliverable Baseline
    A deliverable (e.g. work product) is baselined when it reaches a predefined milestone in its development.
    Errors caught before a deliverable is baselined would not be considered defects.
    Deliverable baselining 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
  • Find Defect
    Discover the Defects before they become problem
    Techniques to find defects can be divided into three categories
    Static Techniques – Code review
    Dynamic Techniques - Executing Test Cases
    Operational Techniques – Defects found by users, customers, or control personnel
  • Report Defect
  • Acknowledge Defect

    Defect Resolution
  • Prioritize Risk
    Developers determine the importance of fixing a particular defect. It is a three level method
    Critical
    Major
    Minor
  • Schedule Fix and Fix Defect
    Developers schedule when to fix a defect. Then developers should fix defects in order of importance
  • Report Resolution
    Developers notify all relevant parties how and when the defect was repaired along with other pertinent information such as:
    The nature of the fix,
    When the fix will be released, and
    How the fix will be released.

    Process Improvement

    Management Reporting (Parallel activity for the above 5 steps)
    It is important that the defect information, which is a natural by-product of the defect management process, be analyzed and communicated to both project management and senior management. This could take the form of defect rates, defect trends, types of defects, failure costs, etc. From a tactical perspective, Defect Arrival Rate (rate at which new defects are being discovered) is a very useful metric that provides insight into a project's likelihood of making its target date objectives. Defect Removal Efficiency is also considered to be one of the most useful metrics; however it can not be calculated until the system is installed. Defect Removal Efficiency is the ratio of defects found prior to product operation divided by the total number of defects found in the application.
  • August 20, 2003
     
    What is Quality?
    The definition of the term quality is an issue. Based interesting discussion of the meaning of Quality, a surprising number of people still think software quality is simply the absence of errors. Dictionary definitions are too vague to be of much help. The only relevant definition offered by the Oxford English Dictionary (Oxford, 1993), for instance, is peculiar excellence or superiority. Noteworthy here is that quality cannot be discussed for something in isolation: comparison is intrinsic.

    Many software engineering references define software quality as correct implementation of the specification. Such a definition can be used during product development, but it is inadequate for facilitating comparisons between products. Standards organizations have tended to refer to meeting needs or expectations, e.g. the ISO defines quality as the totality of features and characteristics of a product or service that bears on its ability to satisfy stated or implied needs.

    IEEE defines quality as (1) The degree to which a system, component, or process meets specified requirements. (2) The degree to which a system, component, or process meets customer or user needs or expectations. An older IEEE defines Software quality is the degree to which software possesses a desired combination of attributes.

    Quality has been variously defined as:

  • Excellence (Socrates, Plato, Aristole)
  • Value (Feigenbaum 1951, Abbot 1955)
  • Conformance to specification (Levitt 1972, Gilmore 1974)
  • Fit for purpose (Juran 1974)
  • Meeting or exceeding, customers’ expectations (Gronroos 1983, Parasuraman & Ziethaml & Berry 1985)
  • Loss avoidance (Taguchi 1989)

    In short these six definitions show different aspects of quality. All can be applied to software development. We often find our products marketed for their excellence. We want to delight our customers with our products to build a long term business relationship. Many countries trade laws oblige us to sell the product only when fit for the purpose to which our customer tells us they will put it. When purchasing managers look at our software, they may judge comparable products on value knowing that this may stop them buying the excellent product. In managing the software development, efficiency and effective development processes together help avoid losses through rework and reducing later support and maintenance budgets. In testing, we work to see that the product conforms to specification.

    Thanks to Carol Long


  • Powered by Blogger