System testing is the third and penultimate rung in the testing process, where the completed software system is tested to ensure compliance with the stated requirements. If you don’t make the effort to ensure that your system tests are of a high quality, there is a very real chance that significant issues could go overlooked and make it into the final release.

As with most things relating to software, an efficient way to ensure quality in your tests is to follow best practice guidelines. So should you find yourself seeking quality, have a look at these testing guidelines, and you should find that by making a few simple changes to how you work you should begin to see an improvement.

Test Against The System Design

Whenever you start off on a new software development project, it is good practice to create a system design document. The purpose of this document is to outline and define all of the elements that will make up your system. By testing against the system design, you provide yourself with the means to ensure you have addressed every aspect of the system.

At Least One Test Case Per Functional Requirement

The purpose of carrying out system testing is not only to ensure whether everything is functioning as expected. It also allows for the identification of problem areas that need attention. However, in order to allow for this identification you need to separate your requirements.

By limiting your requirements to one per test case, if that test then fails you know exactly which requirement hasn’t been met. However, the minute you start tying multiple requirements into the same test case identifying which requirement is causing the issue becomes significantly more complex. Additionally, by keeping your requirements separate you make writing and understanding the test cases a much simpler task.

Independent Unit Tests

Use Good Test Data

Believe it or not sometimes the problem may not lie in the actual test itself. A possibility that testers may not consider is that the fault may lie in the test data itself. To avoid this situation you should ensure that test data is carefully prepared.

Ideally, you should be utilising test data that will exercise your code as much as possible. In order to do this you should include a certain amount of invalid data, as a means to assess how your software will react.

Choose The Right Kind Of System Test

Choose The Right System Test

There are several different types of system test that can be utilised as part of a development, e.g. installation testing, functionality testing, performance testing etc. However, which tests would be relevant for your system depends heavily on what kind of system you are developing.

For example, if you were to build an internet based system where the number of users could expand rapidly, it would be beneficial for you to carry out a scalability test. On the other hand, if you were to develop an embedded system, scalability is probably not something you would need to worry about testing.

In order to decide which tests you should include you should take a look at your non-functional requirements, as this is likely to include performance/scalability requirements etc. In terms of safety related projects, you can gather this information from a verification and validation plan, which should define the types of testing required to comply with industry standards.

Give Consideration For Failure Conditions

Unfortunately, you cannot guarantee that your software will never experience a failure. So whilst it is important to test software, and assess whether it functions as expected, you need to consider the possibility of failure and how your software will behave in these instances.

By considering potential failure, you will be able to predict what actions your software will take, and have reassurance that it will fail in a ‘safe’ manner.

Project Failure

Try To Use Target Hardware

Try To Use Target Hardware

Sometimes during a software development project, for one reason or another, it simply isn’t possible to have access to the actual hardware that your solution will run on after release. In these cases, software will have to be developed and run on completely different hardware, generally referred to as a development environment.

In an ideal world when it comes to testing the functionality of the system as a whole, the software should be run on the same hardware that it will be used on after release. By doing this you will have the reassurance that even after making a significant change in terms of hardware, there will be no ill effects on your software.

Contact Zircon

Address: Telephone: Key Contacts:
Bellefield House
Hilperton Road
BA14 7FP
Tel: 01225 76 44 44
Fax: 01225 75 30 87
Sales & Marketing Director: Phil Cooper
Business Development Manager: Arron Dando