Automated Testing & Test Tools

Introduction

  • Automated testing is used to execute test case suite using an automation tools.
  • The aim of automation testing is to reduce number of test cases that are run manually.
  • In this chapter, automation testing and classification of test tools according to test process activities are discussed.

Automated Testing

Following are the reasons why automated testing is significant:

  • Automated testing is significant because in manual testing, all fields, flows and negative scenarios are time and cost consuming.
  • This testing increases the speed of execution.
  • It helps to increase Test Coverage.
  • This testing does not need human interaction.
  • Automated testing runs tests faster than the human users.
  • Using this testing tests are reusable on different versions of the software.

Test Tools

Following are the test tool types based on the testing activities:

1) Tools for management of testing and tests
2) Tools for static testing
3) Tools for test specification
4) Tools for test execution and logging
5) Tools for performance and monitoring

types of test tools

1) Tools for management of testing and tests

The test managers or specialist testers use these tools at system or acceptance level of testing.

Following are the tools for management of testing and tests:

i) Test Management tools
ii) Requirements management tools
iii) Incident management tools
iv) Configuration management tools

test management tools

i) Test Management tools

  • These tools provide support to the test management and control part of test process.
  • Testware management, scheduling of tests, the logging of results, progress tracking, incident management and reporting are the capabilities of these type tools.

ii) Requirements management tools

These tools help to find the defects in the requirements.

Following are the features of requirement management tools:

  • Used to store requirement statements, information regarding requirement attributes.
  • Ensure the consistency of requirements.
  • Recognize the undefined and missing requirements.
  • Prioritize the requirements for testing purposes.

iii) Incident management tools

These tools are called as defect-tracking tool or defect management tool or bug-tracking tool or bug-management tool.

Following are the features of incident management tools:

  • Store information regarding the attributes of incidents. Stores the attachment like screen shot.
  • Prioritize the incidents and report the statistics regarding incidents.

iv) Configuration management tools

It is possible to perform configuration management tool activities without actually using this tool. Using the tools, makes it easier to perform complex or complicated activities.

Following are the features of configuration management tools and they aid in:

  • Storing information regarding versions and builds of software and testware.
  • Traceability between software, testware and different versions.
  • Keep the path of which versions belongs with which configuration.

2) Tools used for Static testing

Static testing tools help in activities like planning, analysis, implementation etc.

Following are the tools used for static testing:

i) Review process tools
ii) Static analysis tools
iii) Modeling tools

tools help static testing

i) Review process tools

These tools are used to review the process, planning and communication support etc.

Following are the features of review process tools:

  • Work in various situations.
  • Support storing and sorting the review comments. These comments help in communicating with related people.
  • Track and save the path of comments, defects that are found and provide statistical information regarding them.
  • Review process tools aid in procedure, checklists used in reviews as well as entry and exit criteria.

ii) Static analysis tools

  • These tools are mostly used by the developers. The designers also use these tools in software modeling.
  • A compiler is an extension of static analysis tools because it constructs a symbol table, lists out incorrect usages and verifies the coding language syntax.
Following are the commonly used static analysis tools:

i) Coding standard
ii) Code metrics
iii) Code structure

tools used in static testing

i) Coding standard

  • The coding standard includes a set of programming rules, naming conventions and layout specification. The advantage of coding standard is that it saves a lot of time.
  • Many rules of coding standard are large and lengthy. It may be difficult to remember them. In such cases, the coding standard tools play an important role.
ii) Code metrics

  • Code metrics measure the depth of nesting, cyclomatic complexity, and number of lines of code.
  • This information is useful when the code is large, complex, difficult to understand and maintain.
  • The cyclomatic complexity is one of the structural measure. It is based on the number of decisions in the program.
  • Cyclomatic complexity is important to tester because it gives an indication of the amount of testing.
  • An easy way to calculate cyclomatic complexity is to sum the number of binary decision statements like if, while, for, etc. and add 1 to it.
For example, if a program includes two 'IF' conditions, then Cyclomatic Complexity is 2+1= 3.

iii) Code Structure

The effort needed to write the code and understand it while making the changes is taken care of in code structure.

Following are the different aspects of code structure:

a) Control flow structure - Addresses the sequence in which the instructions are executed.

b) Data flow structure - Data flow structure follows the path of the data item because it is obtained and modified from the code.

c) Data Structure - Data structure is the organization of data and independent of the program.

iii) Modeling tools

  • Modeling tools are used to verify and design software. These tools are mostly used by the developers.
  • These tools are used to find and identify the defects at an early stage. It is easier and cheaper to fix defects at early stages.
The features of modeling tools help in:

  • Recognizing the inconsistencies and defects in the model.
  • Recognizing and prioritizing areas of model for testing.
  • Understanding the system function and recognizing the test condition using the modeling language, Unified Modeling Language(UML).

3) Tools used for test specification

Following are the tools used for test specification:

i) Test design tools
ii) Test data preparation tools

tests specification tools

i) Test design tools

These tools are used to construct test cases. Identification of tests easily and quickly is an advantage of this tool.

Following are the features of test design tools:

  • Construct test input values i.e requirement, design model, code, graphical user interfaces and test conditions.
  • Expected results are produced if Oracle is available in tool.

ii) Test data preparation tools

  • These tools are useful for performance and reliability testing,  when a large amount of data is needed.
  • These tools allow data selected from an existing database.
Features of test data preparation tools:

  • Allows to prepare the data in different orders, as required for testing.
  • Builds a large number of similar records from a template.