While testing is usually carried out by a programmer, a group of programmers of even potential end users with no specialist knowledge, performance tests are often fulfilled through the use of purpose-built software. The purpose of this process is to uncover problems in design or coding, and to check that there are no other requirements or necessary changes and additions to the software build.
The company developed a full cycle project to automate the testing of client software. This involves testing the entire scope of the software by systematic means, conducting rigorous error detection to ensure maximum program functionality, and ensuring that each element is functional in accordance with set parameters. The system as a whole as well as specific components are tested, including their possible interactions.
The automated element of the testing process involves automating as many of the manual testing processes already in use as possible, vastly reducing human input in tasks which are repetitive (a simple command can correct the number of executions), unskilled (human judgement would not be necessary in the pre-evaluation stage of the task), or redundant (these tasks can be excluded from the cycle entirely). This is partly achieved through the creation of a test environment, which is able to accommodate and adjust with regard to changes to the software. Specific aspect of testing can be automated, including tests to see if operations perform as expected, tests which attempt to force errors in the system, tests to check that system behaviour is consistent, tests to measure the limits of the application and infrastructure's capacity, and tests of performance and load.
Automation in testing first and foremost removes human error and is completely consistent – if the unit test is written perfectly it will run perfectly. Secondly, automation development can be repeated as many times as is required and can be easily replicated for testing on other applications. Furthermore, automated testing, where available, is significantly faster than manual testing and many tests can be run simultaneously. All of this means that automation in the systematic testing of software is an enormous cost-saving innovation. All results of tests are presented to the client, in an easy to understand, visualized presentation.