Software Quality Testing

Software Quality Tutorial



Tutorials Library »

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.

 A. 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:

    1. Flow Analyzers.

    2. Coverage Analyzer.

    3. Interface Analyzer.

 B. Dynamic-Testing Tools

  • These tools are used to test the software system with live data. Dynamic test tools includes the following:

    1. Test Drivers.

    2. Test Beds.

    3. Emulators.

    4. Mutation Analyzers.

Tutorials Library »
Tutorials Library »