Automatic testing

The necessity of automatic testing appears when volume and complexity of software application make manual testing extremely labor consuming. If software application is a subject of regular modifications and it is necessary to perform regression testing of the already existing sub-systems, then automatic testing becomes the only acceptable solution. But expenses on development of automatic tests are much higher than ones during manual testing. Moreover, development of automatic testing scripts requires skilled specialists. So, automatic testing is worth outsourcing.

Automatic Testing Workflow

When performing automatic testing as a separate project we usually follow the described below workflow.

Installation. In some cases software application installation is a sophisticated task, or Installation Guide is missing. In this case customer's specialist may visit us to install the product, or our specialist may be trained onshore.

Training. Very often User Guide does not describe knowledge domain, or simply is missing. So, complicated cases also need direct contacts with customer, onshore training.

Estimation and planning. Aims of testing are defined, particularly what parts of the application are to be tested, coverage of the functional tests. Work time is estimated and planned. Very often test development schedule is closely connected with software development plan; therefore close communication with software development team is necessary (see below Hidden problems).

Development of functional tests and test data.

Hidden problems. When development of test scripts is outsourced, it is necessary to take into account that changes in application's user interface lead to changes in test scripts, so efforts on such changes increase. Our experience shows efficiency of outsourcing of functional testing of stable applications and sub-systems. Prompt communication is important also.

Load Testing

Load testing exercises application on performance, reliability and scalability, i.e. feeds the system under test the largest tasks it can operate with. Special load testing tools emulate great number of clients, which work with the system under test. Simulators of real clients are usually referenced to as test clients. In order to perform load testing of a system, it is necessary to develop test clients and test data, create testing environment, run a number of tests and analyze the results. Great amount of work to be done and necessity of high-skilled specialists make outsourcing of load testing efficient solution.

Load Testing Workflow

When performing load testing as a separate project, we usually follow the described below workflow.

Installation, training, estimation and planning. These stages are very similar to ones of automatic testing.

Test scripts development. This is the most important and complex stage. Many different clients with different behavior can work with a complex system. In order to emulate realistic testing load it is necessary to expose typical scenarios of clients' actions and develop corresponding test scripts. Information about application users' actions, which may be accumulated by server, is very helpful. When such data is absent, it is necessary to think out scenarios for test script development. The more successful is scenario emulation, the more creditable are the results of load testing.