Test Techniques Home

Test Techniques Articles

Test Techniques Links

Test Techniques Keywords

Test Techniques

incremental testing

What
Integration testing where system components are integrated into the system one at a time until the entire system is integrated.
BS 7925-1.British Computer Society Specialist Interest Group in Software Testing (BCS SIGIST)

The defining element is the repeated process of integrate then teste. I suppose that integrating a sub-systems of components one at a time also counts as incremental testing.

Once integrated the system can be tested using functional and non-functional design techniques.

Incremental testing is can considered part of system testing.

Why?
Our old friend risk raises it head again here. The risk of the system failing as a whole is constantly being mitigated. This is because as each component or sub-system is added we can confirm, that no adverse effects are demonstrated.

Additionally as the system grows, stakeholders, including customers, can see the finished product taking shape.

Who?
Testing should ideally be undertaken by a system testing team.

Where?
At the developing organisations site. The test team should not be too far away from the development effort though.

When?
In terms of the V Model, integration testing is about halfway up. (We can never be accurate about this.) However the timing of the testing, the order in which components are integrated depend on the process methodology used.

Organisations with little or no process will integrate the components in ad-hoc increments without much thought of how they are to hang together or reference to business and technical risk.

In the waterfall method, where test is the last phase, incremental testing may well be used. This is a slight improvement on Big Bang testing. However the testing is still being executed if not written at the very end of the process.

At the other extreme in a highly iterative process, the integration of components is essential. Typically a daily build takes place of all the components that have been tagged to be included. In the Rational Unified Process, RUP, incremental testing is driven entirely by risk. For instance in the Elaboration phase, the aim is to establish that the central software architecture is working. For construction, other components are added in.

An environment which has many sub-systems being developed, might have many incremental integrations taking place at different levels.

How?
Planning is essential as always for a successful test phase or technique to work. To avoid chaos and unnesecarry failures, the team has to know which components are to be included in the build. This will have an effect on the type of tests and the resources required. For example will a test harness be required?

The other essential is good configuration management. The test team needs to know that the code inside each component is, the code the plan wants them to test. Also the components or sub-systems that have actually been included in the build. Once this is in place the organisation can decide if the component is to be added or control the release of changes once it has been included. Thus developers can "check out" code, confident that changes they make will not actually be included in the build until it is "checked back in".

Configuration management tools are available such as Visual Source Safe and ChangeMan.

Typically a range of tests can take place as soon as the build is ready, to confirm that it has met entry criteria. These are known as Smoke tests. The sort of tests include logging on and opening important elements of functionality.

Once all the integration has taken place, the whole range of functional and non-functional testing can continue.

Google
Web www.riskmanagement.force9.co.uk

Test Techniques Bestsellers
The bestselling books on Amazon.

Articles

integration testing

Load Testing

portability testing

security testing

Business Analysis

Other Related Websites
Automated Testing

Visit our site of the month Load Testing at loadtesting.force9.co.uk