• DocumentCode
    2079111
  • Title

    Parameterized unit testing: theory and practice

  • Author

    Tillmann, Nikolai ; De Halleux, Jonathan ; Xie, Tao

  • Author_Institution
    Microsoft Res., Redmond, WA, USA
  • Volume
    2
  • fYear
    2010
  • fDate
    2-8 May 2010
  • Firstpage
    483
  • Lastpage
    484
  • Abstract
    Unit testing has been widely recognized as an important and valuable means of improving software reliability, as it exposes bugs early in the software development life cycle. However, manual unit testing is often tedious and insufficient. Testing tools can be used to enable economical use of resources by reducing manual effort. Recently parameterized unit testing has emerged as a very promising and effective methodology to allow the separation of two testing concerns or tasks: the specification of external, black-box behavior (i.e., assertions or specifications) by developers and the generation and selection of internal, white-box test inputs (i.e., high-code-covering test inputs) by tools. A parameterized unit test (PUT) is simply a test method that takes parameters, calls the code under test, and states assertions. PUTs have been supported by various testing frameworks. Various open source and industrial testing tools also exist to generate test inputs for PUTs. This tutorial presents latest research on principles and techniques, as well as practical considerations to apply parameterized unit testing on real-world programs, highlighting success stories, research and education achievements, and future research directions in developer testing. The tutorial will help improve developer skills and knowledge for writing PUTs and give overview of tool automation in supporting PUTs. Attendees will acquire the skills and knowledge needed to perform research or conduct practice in the field of developer testing and to integrate developer testing techniques in their own research, practice, and education.
  • Keywords
    formal specification; program debugging; program testing; public domain software; software tools; black-box behavior specification; developer skills improvement; developer testing; education; external behavior specification; industrial testing tool; manual unit testing; open source testing tool; parameterized unit testing; software development life cycle; software reliability; testing tools; tool automation; Education; Programming; Software; Testing; Tutorials; USA Councils; Writing; Pex; mock objects; parameterized unit testing; symbolic execution; testing; theories; unit testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2010 ACM/IEEE 32nd International Conference on
  • Conference_Location
    Cape Town
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-60558-719-6
  • Type

    conf

  • DOI
    10.1145/1810295.1810441
  • Filename
    6062259