Software Quality Testing

The term quality means different things to different people. For example, a quality automobile may be one which has no defects and works exactly as per expectation. This definition is similar to one given by Mt. Im Juran (1988): “Quality is fitness for use.” There are many other definitions which are widely discussed. “Conformance to specifications” is a commonly used definition by the manufacturing industry.

Gillow et al. (1989) or Ozeki and Asaka (1990) define Quality as “the expectation that a product or service exceeds the expectations of the customer.” Such as Gitlow who believes quality is a judgment by customers or users of a product or service; it is the extent to which the customers or users believe the product or service surpasses their needs and expectations, and Ozeki and Asaka who believe quality means delivering products and services that:

  • Meet customer standards,
  • Meet and fulfill customer needs,
  • Meet customer expectations, and
  • Will meet unanticipated future needs and aspirations.

Quality can be viewed in two different ways:

i) From the Customer’s point of view, quality is “fit for use or satisfies their basic requirement.”

ii) From the Producer’s point of view, quality is “meeting the customers’ expectations or satisfying their needs.”

Other Definitions of Quality:

  1. The degree to which a work product has useful and desirable characteristics as represented by quality factors.
  2. The degree to which a work product is free from defects.
  3. The degree to which a process is likely to produce quality work products in an efficient, repeatable manner.

What is Software Quality?

Quality software is reasonably bug-free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable. Quality of software can be achieved not only through testing the final product but also through the process in which the software was developed, which also leads to a good quality product. So we can classify quality into two broad categories as follows:

  1. Quality Assurance
  2. Quality Control

2.1 Categories of Software Quality

Quality Assurance (QA):

Objective:

The typical objectives of quality assurance are to:

  • Evaluate the project process in order to identify defects so that they can be fixed.
  • Determine ways to prevent future defects in the project process.

Explanation:

Software QA involves the entire software development process, monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed throughout the software life cycle, and ensuring that problems are found and dealt with. It is oriented to prevention, i.e., preventing the bugs from occurring in the software. Audits are a key technique used to perform product evaluation and process monitoring.

Key points:

  • It is work-process oriented.
  • It measures the process, identifies deficiencies, and suggests improvements.
  • Direct results are changes to the process, which can range from enhancing a process or complete change to the process.
  • Audits and reviews can be done to monitor the processes.
  • Output of Quality Control (QC) is an input to QA, i.e., the feedback received from the QC department will be given to the QA department to take care of the processes as some of the bugs may be due to wrong processes.

Quality Control (QC):

Objective:

The typical objectives of quality control are to:

  • Evaluate the work products in order to identify defects so that they can be fixed.
  • Identify ways to prevent future defects.

Explanation:

QC involves verifying the product or evaluating a product with the requirements specification. It is done by executing the software on a computer. It is oriented to “Detection,” i.e., finding bugs in the software through designing and executing test cases. Testing is a key technique used to perform product evaluation.

Key points:

  • It is work-product oriented.
  • It measures the product, identifies deficiencies, and suggests improvements.
  • Direct results are changes to the product, which can range from a single line of code change to completely reworking a product.
  • Output of QC is an input to QA, i.e., the feedback received from the QC department will be given to the QA department to take care of the processes as some of the bugs may be due to wrong processes.
  • Audits and reviews can be done to monitor the processes.

Standards and Guidelines:

Standards are rules or processes that have to be followed in any organization for developing a product, whereas guidelines are suggestions for carrying out a particular activity. There are different standards given to different organizations according to the industry (e.g., Service, Manufacturing, and Software). The standards used for software industries are as follows:

  • CMM (Capability Maturity Model)
  • ISO
  • IEEE
  • ANSI

CMM (Capability Maturity Model):

SEI (Software Engineering Institute) at Carnegie Mellon University initiated by the U.S. Defense Department to help improve software development processes.

CMMI (Capability Maturity Model Integration): Formerly known as Capability Maturity Model, it was developed by the SEI. It’s a model of 5 levels of process “maturity” that determine effectiveness in delivering quality software. It is geared towards large organizations such as large U.S. Defense Department contractors. However, many of the QA processes involved are appropriate for any organization and, if reasonably applied, can be helpful. Organizations can receive CMMI ratings by undergoing assessments by qualified auditors.

The five levels are:

Level 1: Normally called “Initial,” characterized by chaos, periodic panics, and heroic efforts required by individuals to successfully complete projects. Few if any processes are in place, and successes may not be repeatable.

Level 2: Normally called “Repeatable,” software project tracking, requirements management, realistic planning, and configuration management processes are in place; successful practices can be repeated.

Level 3: Normally called “Defined,” standard software development and maintenance processes are integrated throughout an organization; a Software Engineering Process Group is in place to oversee software processes, and training programs are used to ensure understanding and compliance.

Level 4: Normally called “Managed,” metrics are used to track productivity, processes, and products. Project performance is predictable, and quality is consistently high.

Level 5: Normally called “Optimizing,” the focus is on continuous process improvement. The impact of new processes and technologies can be predicted and effectively implemented when required.

ISO (International Organization for Standardization):

The ISO 9001:2000 standard (which replaces the previous standard of 1994) concerns quality systems that are assessed by outside auditors and applies to many kinds of production and manufacturing organizations, not just software. It covers documentation, design, development, production, testing, installation, servicing, and other processes.

IEEE (Institute of Electrical and Electronics Engineers):

Among other things, IEEE creates standards such as “IEEE Standard for Software Test Documentation” (IEEE/ANSI Standard 829), “IEEE Standard of Software Unit Testing” (IEEE/ANSI Standard 1008), “IEEE Standard for Software Quality Assurance Plans” (IEEE/ANSI Standard 730), and others.

ANSI (American National Standards Institute):

The primary industrial standards body in the U.S., it publishes some software-related standards in conjunction with the IEEE and ASQ (American Society for Quality).

Scroll to Top