Software Quality Testing | Software Quality Tutorial | Minigranth

Software Quality Testing : Introduction

  • Testing is a process to detect and remove errors from the software product.
  • The purpose of testing is to show that the program performs its internal functionalities correctly.
  • It is the process to meet specifications of a software in order to improve quality and reduce risk in the software.
  • It is the procedure used to execute a program with intent of finding errors.

Software Quality Vs. Software Quality Testing

  • Software quality is the ability of the software product to perform as per the requirement with highest level of satisfaction to the users.
  • Software quality testing is the process of evaluating the system or its components in order to draw out defects.
  • Quality of a software product directly depends upon software testing process. If testing process is able to minimize as many defects as possible then, the software product obtained will be of highest quality.
  • The two major types of testing typically used to obtain quality software are:
    1. Functional-Testing.
    2. Structural-Testing.

Software Quality Testing : Functional-Testing

  • It is a type of testing that can be used to assess the features and functionality of the system or software product.
  • Functional-Testing has a special feature with the help of which each and every function of a software product so that it can be verified with requirement specifications.

Software Quality Testing : Functional-Testing Need

  • Checking a software product for its functionalities is the prime objective of functional-testing. It mainly focuses on:
    1. Basic Usability: It deals with basic usability testing of software product which involves basic functionalities of user interface and navigation through pages.
    2. Mainline Functions: Main functions and features are tested of the software product.
    3. Accessibility: To check, how much the software product is accessible to users.
    4. Error Conditions: Error conditions either generate warnings or displays error messages, if any.

Software Quality Testing : Structural-Testing

  • The structure of a software product is responsible for designing test cases in order to test a software product.
  • Since, the whole structure is known, it is also known as white box testing.
  • Structural-Testing is more technical than functional-testing as it attempts to design test cases from the source code and not from the specifications
  • The major structural testing approaches are:
    1. Statement Coverage: In this, the aim is to achieve 100% statement coverage i.e. each and every statement of program is executed.
    2. Branch Coverage: In this, the aim is to achieve 100% branch coverage i.e. every branch either containing “true” or “false” conditions needs to be executed.
    3. Path Coverage: This technique corresponds to test all possible paths i.e. it is a combination of branch and statement coverage techniques.

Software Quality Testing : Structural Testing Types

  • Structural-Testing can broadly be classified into four types. These are:

Software Quality Testing : Types of Structural Testing Types of Structural Testing

  1. Control Flow
    • In this, various paths of programs and  various test cases are designed to execute those paths which ultimately results in finding out the cyclomatic complexity of the programs.
  2. Data Flow
    • It is a technique used for determining improper use of data inside a software programs.
    • Incorrect variable declaration, Multiple times declaration and assigning values to variables can be some of the examples.
  3. Slice Based
    • Slicing a software program and testing those slices individually for defects and errors.
  4. Mutation-Testing
    • When small changes are made in some certain statements of source code to check whether the test cases are able to find the errors or not.
    • These changes are known as mutants.
    • The changes are very small such that they does not affect the overall objective of the program.
    • The goal of mutation testing is to assess the quality of test cases which should be powerful enough to fail the mutants in the code.

Software Quality Testing : Testing Tools

  • Testing tools are the software tools which can be used in software for error detection and corrections.  Static Testing tools and Dynamic testing tools are their types.
    1. Static-Testing Tools
      • These tools does not involves in actual input and output i.e. they do not test the actual execution of the software . These tools are:
        • Flow Analyzers.
        • Coverage Analyzer.
        • Interface Analyzer.
    2. Dynamic-Testing Tools
      • These tools are used to test the software system with live data. Dynamic test tools includes the following:
        • Test Drivers.
        • Test Beds.
        • Emulators.
        • Mutation Analyzers.