What types of ALM tools are available to help manage software testing processes?
Sometimes, it seems, there are as many testing tools as there are development platforms. Every new language, execution environment and methodology spawns a new generation of tools to deal with the special needs of that environment. There are some clear winners in the testing space with massive market share and there are niche players that address specific testing issues.
Test Management: From an organizational point of view, this is the key technology in any quality team’s arsenal. Being able to manage the set of tests for a particular application, to determine how much testing has been done (and of that how much has been successful), to plan and schedule the testing activities and to record test failures in the form of “tickets” that can be passed on to the author of the code is critical. From these tools, metrics can be garnered to measure process and quality improvements and ensure compliance to service level agreements.
Simulation: In order to test an application it is necessary to simulate the actions of an end-user. There are many tools in this space that allow for simulation of keystrokes, mouse actions and touchscreen gestures, to validate both correct and incorrect usage. The tools fall into two categories, those that test functionality and those that test load. The tools for testing load simulate the effect of hundreds and thousands of users to determine if the application performance degrades when used in the real world.
Code analysis and coverage: Two forms of testing are particularly important. Black-box testing is when the application is tested without recourse to reviewing the code: instead the application is test against the requirements defined. White-box testing comprises of lifting the lid off the code and all the logical paths are analyzed. Based on this, tests are developed to exercise those paths to all extremes of the possible paths through. From this is developed a coverage model, determining how much of the code is exercised by any given test. Code analysis also reports on to what extent best practices are followed, company standards adhered to and identifies potential malicious code such as back doors and unlicensed third party code, such as open source.
Test generators: Some of these tools have the ability to generate test cases based upon the code analysis.
Ideally, when selecting tools, a number of key attributes must be included. First, make sure that the tools are process-centric; this means ensuring that the tool integrates into your Software Development Lifecycle and you do not have to compromise your processes for the sake of the tool. Second, choose a tool which has a graphical interface and does not require you to write endless scripts in a proprietary language. Third, make sure the tools are able to report, chart and log activities so you can analyze the effectiveness of your testing. And finally, choose a tool that has an open API, preferably Web-services based, so you can integrate it with other tools in your organization.
This was first published in March 2012