Parameterized unit testing theory and practice
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 resourc...
Saved in:
| Published in: | 2010 ACM/IEEE 32nd International Conference on Software Engineering Vol. 2; pp. 483 - 484 |
|---|---|
| Main Authors: | , , |
| Format: | Conference Proceeding |
| Language: | English |
| Published: |
New York, NY, USA
ACM
01.05.2010
IEEE |
| Series: | ACM Conferences |
| Subjects: |
Software and its engineering
> Software creation and management
> Software verification and validation
Software and its engineering
> Software creation and management
> Software verification and validation
> Empirical software validation
Software and its engineering
> Software creation and management
> Software verification and validation
> Process validation
|
| ISBN: | 9781605587196, 1605587192 |
| ISSN: | 0270-5257 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| 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. |
|---|---|
| AbstractList | 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. 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. |
| Author | Xie, Tao de Halleux, Jonathan Tillmann, Nikolai |
| Author_xml | – sequence: 1 givenname: Nikolai surname: Tillmann fullname: Tillmann, Nikolai organization: Microsoft Research, One Microsoft Way, Redmond WA – sequence: 2 givenname: Jonathan surname: de Halleux fullname: de Halleux, Jonathan organization: Microsoft Research, One Microsoft Way, Redmond WA – sequence: 3 givenname: Tao surname: Xie fullname: Xie, Tao organization: North Carolina State University, Raleigh, NC |
| BookMark | eNqNjztPw0AQhE8iSITgGgmalDQ2u_dY35Uo4iVFggLq09neQwfYQbYp4NfjKP4BTDPFjEbznYpFt-tYiHOEAlGba7QI0pli71rjkchcaZHAGFuio4VYgiwhN9KUJyIbhneYRAoQYSkunkMfWh65T7_crL-7NK5HHsbUvZ2J4xg-B85mX4nXu9uXzUO-fbp_3Nxs84Akx7xWASFqVMQOFZa1shFdEyiAhRhNLaGWJbGKuqmMIquAqulviJXSgUCtxOVhNzGz_-pTG_ofT0BSGjelV4c01K2vdruPwSP4Pbifwf0MPlWLf1Z91SeO6g-veVVR |
| ContentType | Conference Proceeding |
| Copyright | 2010 ACM |
| Copyright_xml | – notice: 2010 ACM |
| DBID | 6IE 6IH CBEJK RIE RIO |
| DOI | 10.1145/1810295.1810441 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP) 1998-present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Education Computer Science |
| EndPage | 484 |
| ExternalDocumentID | 6062259 |
| Genre | orig-research |
| GroupedDBID | 6IE 6IF 6IG 6IH 6IK 6IL 6IM 6IN AAJGR AAKMM ACM ADPZR ALMA_UNASSIGNED_HOLDINGS APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK GUFHI IEGSK IERZE IJVOP OCL RIB RIC RIE RIL RIO -~X .4S .DC 123 23M 29O 5VS 8US AAWTH ABLEC ADZIZ AFFNX ARCSS AVWKF CHZPO EDO FEDTE I-F I07 IPLJI M43 RNS XOL |
| ID | FETCH-LOGICAL-a162t-c3a10f4136e91317c38f19da6a080ff5c20c276e3f4db5368306b295afb34a603 |
| IEDL.DBID | RIE |
| ISBN | 9781605587196 1605587192 |
| ISSN | 0270-5257 |
| IngestDate | Wed Aug 27 02:38:29 EDT 2025 Mon Feb 05 09:26:56 EST 2024 Wed Jan 31 06:46:07 EST 2024 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Keywords | Pex testing unit testing symbolic execution theories mock objects parameterized unit testing |
| Language | English |
| License | Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org |
| LinkModel | DirectLink |
| MeetingName | ICSE '10: 32nd International Conference on Software Engineering |
| MergedId | FETCHMERGED-LOGICAL-a162t-c3a10f4136e91317c38f19da6a080ff5c20c276e3f4db5368306b295afb34a603 |
| PageCount | 2 |
| ParticipantIDs | acm_books_10_1145_1810295_1810441 acm_books_10_1145_1810295_1810441_brief ieee_primary_6062259 |
| PublicationCentury | 2000 |
| PublicationDate | 20100501 2010-May |
| PublicationDateYYYYMMDD | 2010-05-01 |
| PublicationDate_xml | – month: 05 year: 2010 text: 20100501 day: 01 |
| PublicationDecade | 2010 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationSeriesTitle | ACM Conferences |
| PublicationTitle | 2010 ACM/IEEE 32nd International Conference on Software Engineering |
| PublicationTitleAbbrev | icse |
| PublicationYear | 2010 |
| Publisher | ACM IEEE |
| Publisher_xml | – name: ACM – name: IEEE |
| SSID | ssj0000630110 ssj0006499 |
| Score | 1.802788 |
| Snippet | Unit testing has been widely recognized as an important and valuable means of improving software reliability, as it exposes bugs early in the software... |
| SourceID | ieee acm |
| SourceType | Publisher |
| StartPage | 483 |
| SubjectTerms | Computing methodologies -- Symbolic and algebraic manipulation Education General and reference -- Cross-computing tools and techniques -- Validation mock objects parameterized unit testing Pex Programming Software Software and its engineering -- Software creation and management -- Software verification and validation Software and its engineering -- Software creation and management -- Software verification and validation -- Empirical software validation Software and its engineering -- Software creation and management -- Software verification and validation -- Process validation Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis -- Software testing and debugging symbolic execution Testing theories Theory of computation -- Models of computation -- Abstract machines Theory of computation -- Semantics and reasoning -- Program reasoning -- Abstraction Tutorials unit testing USA Councils Writing |
| Subtitle | theory and practice |
| Title | Parameterized unit testing |
| URI | https://ieeexplore.ieee.org/document/6062259 |
| Volume | 2 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3PS8MwFH5sw4On6TZx_qKC4MVuaZumjVdxeJCxg8puJWkS2cEqWyfoX-9Llk4EQTz1Bz2Ur0nfe8n7vg_gQicyJzwWIY-xNqG5ykIZSxpi5Ka5UVqmzr7t6T6bTvP5nM9acLXlwmitXfOZHtlTt5evXsu1XSobY7KNw4-3oZ1lbMPV2q6nWO0oF8r8X5hR5x2JVRcJreKnJXVh6p5igcBjr_XUXDOv-RPRdIwRj8Q8HdkjtT7xbVG-_LBecZFn0v3fO-_B4JvCF8y2wWkfWrrqQbfxcAj8lO5Z12bf4dGH8UzYVi2r3vypVbDG2R7UVoWjer4OHOPxIxCVChpm1QAeJ7cPN3ehN1QIRcTiOiwTERGDYYtpHmHiUCa5ibgSTGDeaExaxqSMM6YTQxV-JJZjPSERDGFkQgUjyQF0qtdKH0JgVEqUygUzilLJRa65oqlMsKIhWWmSIZwjboWtFFbFhvycFh7bwmM7hMs_nynkcqHNEPoW2eJto8BReFCPfr99DLvNHj-JTqBTL9f6FHbK93qxWp65YfMFqaK0dQ |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LSwMxEB60Cnqqj4r1uYLgxbXZbJJuvIqiWEsPKr0tySaRHtxKH4L-eifbtCII4mkf7GH5NtmZSeb7PoBTm-qMSKpiSbE2YZlpx5pqFmPkZpkzVvPKvu250-52s35f9pbgfMGFsdZWzWf2wp9We_lmWEz9UlkLk20cfnIZVjhjlMzYWosVFa8eVQWz8B8WrHKPxLqLxF7z09O6MHnnWCJIGtSe5tciqP4kjLcw5hEq-YU_Mu8Uv6yK1x_mK1Xsuan_7603oPFN4ot6i_C0CUu23IL63MUhCpN6y_s2hx6PbWj1lG_W8vrNn9ZEU5zv0cTrcJQvl1HFefyIVGmiObeqAU83149Xt3GwVIhVIugkLlKVEIeBS1iZYOpQpJlLpFFCYeboHC8oKWhb2NQxg59JZFhRaARDOZ0yJUi6A7VyWNpdiJzhxJhMCWcY01JlVhrGdYo1DWkXLm3CCeKW-1phnM_ozzwP2OYB2yac_flMrkcD65qw7ZHN32YaHHkAde_328ewdvv40Mk7d937fVif7_iT5ABqk9HUHsJq8T4ZjEdH1RD6Akdft7w |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2010+ACM%2FIEEE+32nd+International+Conference+on+Software+Engineering&rft.atitle=Parameterized+unit+testing%3A+theory+and+practice&rft.au=Tillmann%2C+N.&rft.au=de+Halleux%2C+J.&rft.au=Tao+Xie&rft.date=2010-05-01&rft.pub=IEEE&rft.isbn=9781605587196&rft.issn=0270-5257&rft.volume=2&rft.spage=483&rft.epage=484&rft_id=info:doi/10.1145%2F1810295.1810441&rft.externalDocID=6062259 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0270-5257&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0270-5257&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0270-5257&client=summon |

