^

Change-based testing

Change-Based Testing (also known as “delta” or “incremental” testing) is an applicable approach in situations where the software is evolving rapidly, and frequent changes are being made. Instead of retesting the entire application from scratch with each update, change-based testing saves time and resources by concentrating efforts on the areas that have been altered. It helps streamline the testing process and enables quicker feedback on the quality of recent changes. 

Change-based testing is related to both requirements traceability, and to change impact analysis. 

What is change based testing?

Change-based software testing focuses on testing only the portions of a software system that have been modified or updated since the last testing cycle. The idea behind change-based testing is to efficiently identify and verify the impact of recent changes on the existing functionality and to ensure that the modifications haven’t introduced new defects or regressions.

For any safety-critical or security-critical application, it is likely that the resulting development process will need to be audited to meet certification or qualification requirements.
Even if the process and resulting code don’t need to meet stringent certification demands, proactive requirements traceability will ease the identification of code requiring retest, maintaining high levels of code quality while keeping test overhead to a minimum. 

What is change driven testing?

Change-driven testing is simply another name for change-based testing

What is delta testing?

Delta testing is simply another name for changebased testing.

What is incremental testing?

Incremental testing is simply another name for change-based testing. 

What is the change-based testing process?

The process of change-based testing typically involves the following steps:

  • Identify Changes: Identification of the code changes that have been made to the software since the last testing cycle. The automation of change detection is more efficient, and less error prone than a manual approach.
  • Identify Affected Areas: Based on the identified changes, testers determine which areas of the software are likely to be affected by these modifications. A manual process might involve the analysis of code dependencies, data flows, and related components. Again, automated traceability is more dependable and more efficient.
  • Design Test Cases: Test cases are designed to target the modified areas and their surrounding functionality. The use of a test tool that is integrated with an automated requirements traceability environment ensures that any modified or new test cases are integrated seamlessly, and any existing ones can simply be regressed.
  • Execute Tests: The newly designed and regressed test cases are executed against the modified parts of the software. 
  • Analyse Results: Test results are analysed to ensure that the changes have been successfully integrated and that any new defects have been identified and resolved.
  • Repeat! Change-based testing is typically performed iteratively, as new changes are introduced.  

Change-based testing and incremental embedded software development

Incremental development is a software development methodology that focuses on building a complex system in small, manageable increments or iterations. 
Incremental development can take many forms. In the case of a new application development, incremental development breaks down the project into smaller, functional components or features that can be developed and tested independently. These components are then gradually integrated to form the complete system. 

Incremental development can be a powerful approach when creating a core system that serves as a foundation for various projects with differing requirements. An initial “vanilla” variant of a system is often developed with a particular application in mind, perhaps for an initial client. Subsequent developments will build upon that foundation, with new functionality being added as new customers demand variants of the original core system. These enhancements are then integrated into the core foundation offering, which becomes ever more sophisticated and configurable over time.

Such systems may well evolve over years, and the development team members will likely change continually over that time. Maintaining software quality in such circumstances depends on a tight control on requirements, and development standards. Change-based testing lends itself ideally to such circumstances.  

Change-based testing and project baselines in embedded software development

A baseline is a reference point in software development – a “line in the sand”. It may be marked by the completion of software configuration item(s), the end of a development phase, or by formal approval. Conversely, it may be timed quite arbitrarily to provide a “snapshot” as a reference point to monitor progress – perhaps weekly or monthly. 

Change-based testing tools for embedded systems from LDRA

The LDRA tool suite supports development teams who are working in a formal development process to improve code quality and maintainability, including static and dynamic analysis, coding standards compliance, and unit, integration, and system testing. 

TBmanager is a component of the LDRA tool suite. It is a role-based requirements management tool that supports team members in their work on allocated activities and links the resulting code and verification artefacts back to higher level objectives. 

Pertinent functionality offered by TBmanager includes project baseline generation, and code change impact reporting. 

TBmanager highlights the effects of changed requirements and changed code. So, if a stakeholder specifies a new or changed requirement, then the impact can be assessed – and conversely, if a failed test results in changed code, then the implications of that change on other tests can also be shown. 

TBrun is another component of the LDRA tool suite. It is a unit/integration test tool, providing a complete verification environment for the automated generation and management of test harnesses and unit/integration tests. The regression test facilities it provides are a significant element of the tool suite’s support for requirements traceability. 

TBevolve is an optional plug-in for use with the LDRA tool suite. It enables project teams to monitor the impact of code changes on their testing process. By comparing the current code base with a baseline copy, it highlights changes and reports on any untested source code impacting code coverage statistics. 

Additional information and training materials

Change-based testing pdf free downloads

Change-based testing further information

FREE 30 Day
TRIAL

Email Us

Email: info@ldra.com

Call Us

EMEA: +44 (0)151 649 9300

USA: +1 (855) 855 5372

INDIA: +91 80 4080 8707

Connect with LDRA