In order to maximize the quality of our products we use a dual-sided control:
Quality of developing system is controlled by unit tests which monitor any changings in a program code and control a level of the code’s automatic tests coverage.
Quality of developing system is controlled by functional tests which are based on a technical specification and cover 100 % of a developed functionality. Along with functional tests we use loading tests, which simulates system’s expected load and monitor a dynamic system’s behaviour under various loads.
Every iteration of the development cycle is covered by a number of testing stages:
— Document testing. Before starting to develop technical specifications we test technical requirements in order to identify its deficiencies.
— Pretesting. In the phase of active development of the software product we permanently test it as developers and testers. Lead on developers’ servers the testing is focused on an emergence of functional errors on first phases of development. Functional errors are immediate removed on this phase of the development process.
— Alpha-testing. The application is installed on separated server units where we conduct the alpha-testing. The detected errors are removed by developers in the next internal release of the system.
— Beta-testing. To conduct the beta-testing we install the software on the hardware most approximate to that would be used by a customer in a real system. It’s not always possible because of our budgetary limitations, but we try to do the best approximation we could. Beta-testing is the last product’s verification before its implementation. Our testers try to simulate the system hardware and program load most accurately in order of potential threats identifying.
— Implementation. After an installation of the system on process servers, we run the last phase of testing before the system is activated.
Using of various testing strategies enables us to control the quality of the product on the highest possible level. We develop automatically controlled tests activated at the time of project developing and used as a regression tests. Besides it, we do:
- Performance and load testing
- Security testing
- System’s verifying in various environments, operating systems and browsers
- Acceptance testing