In the testing development life cycle, test tools play a vital role. “How to classify test tools?” is a difficult but common question. In fact, tools can be classified based on several criteria such as purpose, pricing, licensing model, and technology used. In this article, test tools are classified according to the test activities they support.
While some tools may support several activities, they are categorized under the activity that they are most closely related to. Other tools may support more than one activity. An integrated suite of tools from a single source, particularly those that were created to function together, may be made available.
Some test tool types can be intrusive, which implies they might have an impact on the real results of testing. For instance, the extra instructions that a performance testing tool executes may cause the real response times for an application to differ, or the amount of code coverage that is actually accomplished may change as a result of the employment of a coverage tool. The probe effect is the result of using intrusive tools.
Some tools, particularly those used during component and integration testing, offer support that is often more suitable for developers.
Management test tools can be applied to any test activities over the entire software development lifecycle, including:
Here are examples of tools that support management of testing and testware:
Static testing is a software testing method that examines a program, along with any associated documents, but does not require the program to be executed. Static testing tools aim to automate the static testing process. Here as below are some examples:
Test design tools support testers in creating maintainable work products in test design and implementation, consisting of test cases, test procedures and test data. For this purpose, testers can choose to use:
In some circumstances, test tools that support test design and implementation may support test execution and logging as well. In other cases, these tools can provide their outputs directly to other tools that support test execution and logging.
A large number of different tools are on the market to support and enhance test execution and logging activities. Some examples are named as below:
Dynamic analysis tools require the code to be in a running state. Then they analyze what is happening ‘behind the scenes’ that is in the code while the software is running (whether being executed with test cases or being used in operation). Dynamic analysis tools aim at detecting memory leaks, identifying pointer arithmetic errors such as null pointers, and identifying time dependencies. Some common names are: