Ordinary users consider program creation process to be very simple and that it consists only of code writing and creating GUI. In fact, there are software testing companies, which perform various manipulations with the prototype of the program after the code writing.
All preparatory software works are divided into two groups:
- Functional testing;
- Non-functional testing.
Software testing can be conducted either by testing specialists, specially hired for this task, or the developer company team.
Functional testing is a capability validation of all the components.
Secondary functions such as convenience of tools location in program and performance, which refer to non-functional testing, are tested last. This type of testing results are sometimes more important, than functional ones.
As it’s more significant for the application to interact with external objects fast, than to produce the correct operation of a particular function. Non-functional testing of programs involves a large number of steps, the main of which is performance validation.
At its beginning, load testing of the program is conducted. This step is considered to be completed if the program responds adequately to the impact. Load is conducted in different ways, namely: at maximum and minimum hardware. ‘Stress’ situation is simulated during the load, i.e. when the program is loaded to the maximum with minimal hardware.
Under normal conditions program functioning is interchanged with ‘stress’ situations. It’s necessary in order to track how the program responds to such conditions, and also to find out whether it is able to return to the normal operating mode.
The convenience of user interface and how the program behaves during installation process are also checked. Situations, when a failure or refusal of system software occurred, are simulated. The program is tested on different systems that differ in configuration.