Introduction to Software Test – System Test

System Testing

System Testing

Once the base functions are verified, it is often necessary to test the product in a ‘real world’ manner. Functional test shows that the product works as specified. ‘System Test’ shows that it is usable for the desired tasks and performs acceptably in a customer environment.

This means no simulation, no emulation, no virtual. At least not as far as the environment is concerned. If it is claimed to work on System X and Devices A, B and C, well then that system and those devices should be included in the test. Now this is not to say you cannot simulate the INPUTS for the test. In fact, in many cases this is the only way to approach a realistic level of usage of the product.

By the time this test is reached, most of the functional and GUI problems should have already been worked out. What we are looking for here are problems executing in a real environment, with real interactions with likely other products on the system, and realistic customer workloads. We are attempting to prove that there are no hangs, loops or crashes due to a real level of stress; that treatment of realistic sets of customer data is correct, and that functions which work correctly in earlier, smaller, tests do not ‘fall apart’ in the ‘real world’.

When designing this test, you want to attempt to be a ‘real customer’. This means that if you are using a scripted methodology, you will want to use an ‘exploratory’ mindset while generating the testcases. And if you will be using an exploratory methodology, you will want to concentrate on using the product in a real world manner more than looking for minor user interface or unlikely functional glitches. Of course, if you run into any, they should be reported.

Installation of the product and deliberate interactions with other products should be covered, if applicable. Try to ‘overload’ it.

Sometimes System Test may be the last test before it gets into customer hands, either officially (General Availability) or early (Beta Test or Early Ship Program). In which case, this would be your last chance to find and remove problems which will cost a bundle to fix, and/or significantly impact your sales.