Skip to main content

Static/Dynamic Test Case Generation For Software Upgrades via ARC-B and Deltatest

  • Chapter
  • First Online:
Validation of Evolving Software

Abstract

This chapter presents test generation techniques that address the automatic production of test cases to validate evolving software, aiming to improve the adequacy of testing in the light of a performed upgrade. For human experts it is usually hard to achieve high test case coverage by manually generating test cases. In particular, when a program is upgraded, testers need to adapt the test suite of the base version of the program to the new version, to cover the relevant code according to the kind of upgrade that has been implemented. The test case generation techniques presented in this chapter aim to automatically augment the existing test suites with test cases that exercise the uncovered regions of the code. These test cases represent extremely useful executions to give as complete a view as possible of the behavior of the upgraded program. We will describe ARC-B, a technique for the automatic generation of test cases, and its extension as DeltaTest that we have developed in the context of the European FP7 Project PINCETTE. DeltaTest extends ARC-B to target software changes in a more specific fashion, according to ideas that resulted from the feedback gained while using ARC-B during the project. Specifically, DeltaTest exploits a program slicer to distinguish the code impacted by modifications, and builds on this information to generate test suites that specifically address the testing of software changes. In the next sections, we describe the technology that underlies ARC-B, report our experience of applying ARC-B to industrial software provided as case studies by industrial partners of the project, present the DeltaTest technique, and discuss initial data on the strength of DeltaTest.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

eBook
USD 12.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    Notice that both the problem of covering all feasible elements and the problem of revealing all infeasible elements of a program are undecidable in general, and thus our approach may not terminate on some programs. When this is the case, our approach stops after a timeout and reports the elements that have been neither covered nor identified as infeasible.

  2. 2.

    http://jburnim.github.io/crest/.

  3. 3.

    http://sourceforge.net/projects/cil.

  4. 4.

    http://yices.csl.sri.com.

  5. 5.

    http://www.gnu.org/software/gdb.

  6. 6.

    http://sourceforge.net/projects/fixedptc.

  7. 7.

    http://www.jhauser.us/arithmetic/SoftFloat.html.

  8. 8.

    gcov is part of the GNU Compiler Collection.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pietro Braione .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this chapter

Cite this chapter

Braione, P., Denaro, G., Riganelli, O., Baluda, M., Muhammad, A. (2015). Static/Dynamic Test Case Generation For Software Upgrades via ARC-B and Deltatest. In: Chockler, H., Kroening, D., Mariani, L., Sharygina, N. (eds) Validation of Evolving Software. Springer, Cham. https://doi.org/10.1007/978-3-319-10623-6_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-10623-6_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-10622-9

  • Online ISBN: 978-3-319-10623-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics