UCov: a user-defined coverage criterion for test case intent verification

Summary The goal of regression testing is to ensure that the behaviour of existing code, believed correct by previous testing, is not altered by new program changes. This paper argues that the primary focus of regression testing should be on code associated with (1) earlier bug fixes and (2) particu...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Software testing, verification & reliability verification & reliability, 2016-09, Vol.26 (6), p.460-491
Hauptverfasser: Assi, Rawad Abou, Masri, Wes, Zaraket, Fadi
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 491
container_issue 6
container_start_page 460
container_title Software testing, verification & reliability
container_volume 26
creator Assi, Rawad Abou
Masri, Wes
Zaraket, Fadi
description Summary The goal of regression testing is to ensure that the behaviour of existing code, believed correct by previous testing, is not altered by new program changes. This paper argues that the primary focus of regression testing should be on code associated with (1) earlier bug fixes and (2) particular application scenarios considered to be important by the developer or tester. Existing coverage criteria do not enable such focus, for example, 100% branch coverage does not guarantee that a given bug fix is exercised or a given application scenario is tested. Therefore, there is a need for a new and complementary coverage criterion in which the user can definea test requirement characterizing a given behaviour to be covered as opposed to choosing from a pool of pre‐defined and generic program elements. This paper proposes this new methodology and calls it UCov, a user‐defined coverage criterion wherein a test requirement is an execution pattern of program elements, and possibly predicates, that a test case must satisfy. The proposed criterion is not meant to replace existing criteria, but to complement them as it focuses the testing on important code patterns that could go untested otherwise. UCov supports test case intent verification. For example, following a bug fix, the testing team may augment the regression suite with the test case that revealed the bug. However, this test case might become obsolete due to code modifications not related to the bug. But if a test requirement characterizing the bug was defined by the user, UCov would determine that test case intent verification failed. The UCov methodology was implemented for the Java platform, was successfully applied onto 10 real‐life case studies and was shown to have advantages over JUnit. The implementation comprises the following tools: (1) TRSpec: allows the user to easily specify complex test requirements; (2) TRCheck: checks whether user‐defined test requirements were satisfied, that is, supports test case intent verification; and (3) TRMigrate: migrates user‐defined test requirements to subsequent versions of a given program. Copyright © 2016 John Wiley & Sons, Ltd. Existing coverage criteria, for example, branch coverage, do not guarantee that a given bug fix is exercised or a given scenario is tested. Therefore, there is a need for a coverage criterion in which the user can define a test requirement characterizing a given behavior to be covered as opposed to choosing from a pool of generic pr
doi_str_mv 10.1002/stvr.1607
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_1835561741</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>4145195411</sourcerecordid><originalsourceid>FETCH-LOGICAL-c3637-5d48037e37375c623d408a3f5a7a5791f09c53a3c05929a242cede9893b9a6843</originalsourceid><addsrcrecordid>eNp10MFPwjAUBvDGaCKiB_-DJl70MHhdt271pkSRBDQq6LGp3ZspwobthvLfuwXiwcTTu_y-Ly8fIacMegwg7Ptq7XpMQLJHOgykDJhI5T7pgBQQQMr5ITnyfg4AQgrZIaPZoFxfUk1rjy7IMLcFZtSUa3T6HalxtkJny4LmpaMV-ooa7ZHaosKioo2yuTW6asQxOcj1wuPJ7nbJ7PZmOrgLxg_D0eBqHBgueBLEWZQCT5AnPImNCHkWQap5HutEx4lkOUgTc80NxDKUOoxCgxnKVPI3qUUa8S453_auXPlZNx-ppfUGFwtdYFl7xVIex4IlEWvo2R86L2tXNN81qlmHhQLawoutMq703mGuVs4utdsoBqodVbWjqnbUxva39ssucPM_VM_Tl6ddItgmrK_w-zeh3YcS7QTq9X6oHsX4epIOJ2rKfwC81Ibs</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>1810912604</pqid></control><display><type>article</type><title>UCov: a user-defined coverage criterion for test case intent verification</title><source>Wiley Journals</source><creator>Assi, Rawad Abou ; Masri, Wes ; Zaraket, Fadi</creator><creatorcontrib>Assi, Rawad Abou ; Masri, Wes ; Zaraket, Fadi</creatorcontrib><description>Summary The goal of regression testing is to ensure that the behaviour of existing code, believed correct by previous testing, is not altered by new program changes. This paper argues that the primary focus of regression testing should be on code associated with (1) earlier bug fixes and (2) particular application scenarios considered to be important by the developer or tester. Existing coverage criteria do not enable such focus, for example, 100% branch coverage does not guarantee that a given bug fix is exercised or a given application scenario is tested. Therefore, there is a need for a new and complementary coverage criterion in which the user can definea test requirement characterizing a given behaviour to be covered as opposed to choosing from a pool of pre‐defined and generic program elements. This paper proposes this new methodology and calls it UCov, a user‐defined coverage criterion wherein a test requirement is an execution pattern of program elements, and possibly predicates, that a test case must satisfy. The proposed criterion is not meant to replace existing criteria, but to complement them as it focuses the testing on important code patterns that could go untested otherwise. UCov supports test case intent verification. For example, following a bug fix, the testing team may augment the regression suite with the test case that revealed the bug. However, this test case might become obsolete due to code modifications not related to the bug. But if a test requirement characterizing the bug was defined by the user, UCov would determine that test case intent verification failed. The UCov methodology was implemented for the Java platform, was successfully applied onto 10 real‐life case studies and was shown to have advantages over JUnit. The implementation comprises the following tools: (1) TRSpec: allows the user to easily specify complex test requirements; (2) TRCheck: checks whether user‐defined test requirements were satisfied, that is, supports test case intent verification; and (3) TRMigrate: migrates user‐defined test requirements to subsequent versions of a given program. Copyright © 2016 John Wiley &amp; Sons, Ltd. Existing coverage criteria, for example, branch coverage, do not guarantee that a given bug fix is exercised or a given scenario is tested. Therefore, there is a need for a coverage criterion in which the user can define a test requirement characterizing a given behavior to be covered as opposed to choosing from a pool of generic program elements. This paper proposes UCov, a user‐defined coverage criterion that focuses the testing on important code patterns that could go untested otherwise.</description><identifier>ISSN: 0960-0833</identifier><identifier>EISSN: 1099-1689</identifier><identifier>DOI: 10.1002/stvr.1607</identifier><identifier>CODEN: JTREET</identifier><language>eng</language><publisher>Chichester: Blackwell Publishing Ltd</publisher><subject>code coverage ; Complement ; Computer programs ; Criteria ; Debugging ; Java (programming language) ; Methodology ; Pools ; Regression ; regression testing ; software testing ; test case intent preservation ; test case intent verification ; user-defined coverage criterion ; validation testing</subject><ispartof>Software testing, verification &amp; reliability, 2016-09, Vol.26 (6), p.460-491</ispartof><rights>Copyright © 2016 John Wiley &amp; Sons, Ltd.</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c3637-5d48037e37375c623d408a3f5a7a5791f09c53a3c05929a242cede9893b9a6843</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://onlinelibrary.wiley.com/doi/pdf/10.1002%2Fstvr.1607$$EPDF$$P50$$Gwiley$$H</linktopdf><linktohtml>$$Uhttps://onlinelibrary.wiley.com/doi/full/10.1002%2Fstvr.1607$$EHTML$$P50$$Gwiley$$H</linktohtml><link.rule.ids>314,780,784,1417,27924,27925,45574,45575</link.rule.ids></links><search><creatorcontrib>Assi, Rawad Abou</creatorcontrib><creatorcontrib>Masri, Wes</creatorcontrib><creatorcontrib>Zaraket, Fadi</creatorcontrib><title>UCov: a user-defined coverage criterion for test case intent verification</title><title>Software testing, verification &amp; reliability</title><addtitle>Softw. Test. Verif. Reliab</addtitle><description>Summary The goal of regression testing is to ensure that the behaviour of existing code, believed correct by previous testing, is not altered by new program changes. This paper argues that the primary focus of regression testing should be on code associated with (1) earlier bug fixes and (2) particular application scenarios considered to be important by the developer or tester. Existing coverage criteria do not enable such focus, for example, 100% branch coverage does not guarantee that a given bug fix is exercised or a given application scenario is tested. Therefore, there is a need for a new and complementary coverage criterion in which the user can definea test requirement characterizing a given behaviour to be covered as opposed to choosing from a pool of pre‐defined and generic program elements. This paper proposes this new methodology and calls it UCov, a user‐defined coverage criterion wherein a test requirement is an execution pattern of program elements, and possibly predicates, that a test case must satisfy. The proposed criterion is not meant to replace existing criteria, but to complement them as it focuses the testing on important code patterns that could go untested otherwise. UCov supports test case intent verification. For example, following a bug fix, the testing team may augment the regression suite with the test case that revealed the bug. However, this test case might become obsolete due to code modifications not related to the bug. But if a test requirement characterizing the bug was defined by the user, UCov would determine that test case intent verification failed. The UCov methodology was implemented for the Java platform, was successfully applied onto 10 real‐life case studies and was shown to have advantages over JUnit. The implementation comprises the following tools: (1) TRSpec: allows the user to easily specify complex test requirements; (2) TRCheck: checks whether user‐defined test requirements were satisfied, that is, supports test case intent verification; and (3) TRMigrate: migrates user‐defined test requirements to subsequent versions of a given program. Copyright © 2016 John Wiley &amp; Sons, Ltd. Existing coverage criteria, for example, branch coverage, do not guarantee that a given bug fix is exercised or a given scenario is tested. Therefore, there is a need for a coverage criterion in which the user can define a test requirement characterizing a given behavior to be covered as opposed to choosing from a pool of generic program elements. This paper proposes UCov, a user‐defined coverage criterion that focuses the testing on important code patterns that could go untested otherwise.</description><subject>code coverage</subject><subject>Complement</subject><subject>Computer programs</subject><subject>Criteria</subject><subject>Debugging</subject><subject>Java (programming language)</subject><subject>Methodology</subject><subject>Pools</subject><subject>Regression</subject><subject>regression testing</subject><subject>software testing</subject><subject>test case intent preservation</subject><subject>test case intent verification</subject><subject>user-defined coverage criterion</subject><subject>validation testing</subject><issn>0960-0833</issn><issn>1099-1689</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2016</creationdate><recordtype>article</recordtype><recordid>eNp10MFPwjAUBvDGaCKiB_-DJl70MHhdt271pkSRBDQq6LGp3ZspwobthvLfuwXiwcTTu_y-Ly8fIacMegwg7Ptq7XpMQLJHOgykDJhI5T7pgBQQQMr5ITnyfg4AQgrZIaPZoFxfUk1rjy7IMLcFZtSUa3T6HalxtkJny4LmpaMV-ooa7ZHaosKioo2yuTW6asQxOcj1wuPJ7nbJ7PZmOrgLxg_D0eBqHBgueBLEWZQCT5AnPImNCHkWQap5HutEx4lkOUgTc80NxDKUOoxCgxnKVPI3qUUa8S453_auXPlZNx-ppfUGFwtdYFl7xVIex4IlEWvo2R86L2tXNN81qlmHhQLawoutMq703mGuVs4utdsoBqodVbWjqnbUxva39ssucPM_VM_Tl6ddItgmrK_w-zeh3YcS7QTq9X6oHsX4epIOJ2rKfwC81Ibs</recordid><startdate>201609</startdate><enddate>201609</enddate><creator>Assi, Rawad Abou</creator><creator>Masri, Wes</creator><creator>Zaraket, Fadi</creator><general>Blackwell Publishing Ltd</general><general>Wiley Subscription Services, Inc</general><scope>BSCLL</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>201609</creationdate><title>UCov: a user-defined coverage criterion for test case intent verification</title><author>Assi, Rawad Abou ; Masri, Wes ; Zaraket, Fadi</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c3637-5d48037e37375c623d408a3f5a7a5791f09c53a3c05929a242cede9893b9a6843</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2016</creationdate><topic>code coverage</topic><topic>Complement</topic><topic>Computer programs</topic><topic>Criteria</topic><topic>Debugging</topic><topic>Java (programming language)</topic><topic>Methodology</topic><topic>Pools</topic><topic>Regression</topic><topic>regression testing</topic><topic>software testing</topic><topic>test case intent preservation</topic><topic>test case intent verification</topic><topic>user-defined coverage criterion</topic><topic>validation testing</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Assi, Rawad Abou</creatorcontrib><creatorcontrib>Masri, Wes</creatorcontrib><creatorcontrib>Zaraket, Fadi</creatorcontrib><collection>Istex</collection><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>Software testing, verification &amp; reliability</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Assi, Rawad Abou</au><au>Masri, Wes</au><au>Zaraket, Fadi</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>UCov: a user-defined coverage criterion for test case intent verification</atitle><jtitle>Software testing, verification &amp; reliability</jtitle><addtitle>Softw. Test. Verif. Reliab</addtitle><date>2016-09</date><risdate>2016</risdate><volume>26</volume><issue>6</issue><spage>460</spage><epage>491</epage><pages>460-491</pages><issn>0960-0833</issn><eissn>1099-1689</eissn><coden>JTREET</coden><abstract>Summary The goal of regression testing is to ensure that the behaviour of existing code, believed correct by previous testing, is not altered by new program changes. This paper argues that the primary focus of regression testing should be on code associated with (1) earlier bug fixes and (2) particular application scenarios considered to be important by the developer or tester. Existing coverage criteria do not enable such focus, for example, 100% branch coverage does not guarantee that a given bug fix is exercised or a given application scenario is tested. Therefore, there is a need for a new and complementary coverage criterion in which the user can definea test requirement characterizing a given behaviour to be covered as opposed to choosing from a pool of pre‐defined and generic program elements. This paper proposes this new methodology and calls it UCov, a user‐defined coverage criterion wherein a test requirement is an execution pattern of program elements, and possibly predicates, that a test case must satisfy. The proposed criterion is not meant to replace existing criteria, but to complement them as it focuses the testing on important code patterns that could go untested otherwise. UCov supports test case intent verification. For example, following a bug fix, the testing team may augment the regression suite with the test case that revealed the bug. However, this test case might become obsolete due to code modifications not related to the bug. But if a test requirement characterizing the bug was defined by the user, UCov would determine that test case intent verification failed. The UCov methodology was implemented for the Java platform, was successfully applied onto 10 real‐life case studies and was shown to have advantages over JUnit. The implementation comprises the following tools: (1) TRSpec: allows the user to easily specify complex test requirements; (2) TRCheck: checks whether user‐defined test requirements were satisfied, that is, supports test case intent verification; and (3) TRMigrate: migrates user‐defined test requirements to subsequent versions of a given program. Copyright © 2016 John Wiley &amp; Sons, Ltd. Existing coverage criteria, for example, branch coverage, do not guarantee that a given bug fix is exercised or a given scenario is tested. Therefore, there is a need for a coverage criterion in which the user can define a test requirement characterizing a given behavior to be covered as opposed to choosing from a pool of generic program elements. This paper proposes UCov, a user‐defined coverage criterion that focuses the testing on important code patterns that could go untested otherwise.</abstract><cop>Chichester</cop><pub>Blackwell Publishing Ltd</pub><doi>10.1002/stvr.1607</doi><tpages>32</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0960-0833
ispartof Software testing, verification & reliability, 2016-09, Vol.26 (6), p.460-491
issn 0960-0833
1099-1689
language eng
recordid cdi_proquest_miscellaneous_1835561741
source Wiley Journals
subjects code coverage
Complement
Computer programs
Criteria
Debugging
Java (programming language)
Methodology
Pools
Regression
regression testing
software testing
test case intent preservation
test case intent verification
user-defined coverage criterion
validation testing
title UCov: a user-defined coverage criterion for test case intent verification
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-04T20%3A27%3A00IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=UCov:%20a%20user-defined%20coverage%20criterion%20for%20test%20case%20intent%20verification&rft.jtitle=Software%20testing,%20verification%20&%20reliability&rft.au=Assi,%20Rawad%20Abou&rft.date=2016-09&rft.volume=26&rft.issue=6&rft.spage=460&rft.epage=491&rft.pages=460-491&rft.issn=0960-0833&rft.eissn=1099-1689&rft.coden=JTREET&rft_id=info:doi/10.1002/stvr.1607&rft_dat=%3Cproquest_cross%3E4145195411%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=1810912604&rft_id=info:pmid/&rfr_iscdi=true