Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

A Static Approach to Prioritizing JUnit Test Cases

Published: 01 November 2012 Publication History

Abstract

Test case prioritization is used in regression testing to schedule the execution order of test cases so as to expose faults earlier in testing. Over the past few years, many test case prioritization techniques have been proposed in the literature. Most of these techniques require data on dynamic execution in the form of code coverage information for test cases. However, the collection of dynamic code coverage information on test cases has several associated drawbacks including cost increases and reduction in prioritization precision. In this paper, we propose an approach to prioritizing test cases in the absence of coverage information that operates on Java programs tested under the JUnit framework—an increasingly popular class of systems. Our approach, JUnit test case Prioritization Techniques operating in the Absence of coverage information (JUPTA), analyzes the static call graphs of JUnit test cases and the program under test to estimate the ability of each test case to achieve code coverage, and then schedules the order of these test cases based on those estimates. To evaluate the effectiveness of JUPTA, we conducted an empirical study on 19 versions of four Java programs ranging from 2K-80K lines of code, and compared several variants of JUPTA with three control techniques, and several other existing dynamic coverage-based test case prioritization techniques, assessing the abilities of the techniques to increase the rate of fault detection of test suites. Our results show that the test suites constructed by JUPTA are more effective than those in random and untreated test orders in terms of fault-detection effectiveness. Although the test suites constructed by dynamic coverage-based techniques retain fault-detection effectiveness advantages, the fault-detection effectiveness of the test suites constructed by JUPTA is close to that of the test suites constructed by those techniques, and the fault-detection effectiveness of the test suites constructed by some of JUPTA's variants is better than that of the test suites constructed by several of those techniques.

Cited By

View all
  • (2024)Faster Feedback with AI? A Test Prioritization StudyCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660837(32-40)Online publication date: 11-Mar-2024
  • (2024)Regression test prioritization leveraging source code similarity with tree kernelsJournal of Software: Evolution and Process10.1002/smr.265336:8Online publication date: 5-Aug-2024
  • (2023)Exploring Better Black-Box Test Case Prioritization via Log AnalysisACM Transactions on Software Engineering and Methodology10.1145/356993232:3(1-32)Online publication date: 26-Apr-2023
  • Show More Cited By

Index Terms

  1. A Static Approach to Prioritizing JUnit Test Cases
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image IEEE Transactions on Software Engineering
    IEEE Transactions on Software Engineering  Volume 38, Issue 6
    November 2012
    255 pages

    Publisher

    IEEE Press

    Publication History

    Published: 01 November 2012

    Author Tags

    1. JUnit
    2. Software testing
    3. call graph
    4. regression testing
    5. test case prioritization

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 30 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Faster Feedback with AI? A Test Prioritization StudyCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660837(32-40)Online publication date: 11-Mar-2024
    • (2024)Regression test prioritization leveraging source code similarity with tree kernelsJournal of Software: Evolution and Process10.1002/smr.265336:8Online publication date: 5-Aug-2024
    • (2023)Exploring Better Black-Box Test Case Prioritization via Log AnalysisACM Transactions on Software Engineering and Methodology10.1145/356993232:3(1-32)Online publication date: 26-Apr-2023
    • (2023)ATM: Black-Box Test Case Minimization Based on Test Code Similarity and Evolutionary SearchProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00146(1700-1711)Online publication date: 14-May-2023
    • (2022)Revisiting Test Impact Analysis in Continuous Testing From the Perspective of Code DependenciesIEEE Transactions on Software Engineering10.1109/TSE.2020.304591448:6(1979-1993)Online publication date: 1-Jun-2022
    • (2022)A dynamic random testing strategy in the context of cloud computingSoftware Quality Journal10.1007/s11219-022-09599-w31:1(243-277)Online publication date: 19-Sep-2022
    • (2022)Test case prioritization using test case diversification and fault-proneness estimationsAutomated Software Engineering10.1007/s10515-022-00344-y29:2Online publication date: 1-Nov-2022
    • (2022)Improved novel bat algorithm for test case prioritization and minimizationSoft Computing - A Fusion of Foundations, Methodologies and Applications10.1007/s00500-022-07121-926:22(12393-12419)Online publication date: 1-Nov-2022
    • (2021)Parallel Test PrioritizationACM Transactions on Software Engineering and Methodology10.1145/347190631:1(1-50)Online publication date: 28-Sep-2021
    • (2021)Continuous test suite failure predictionProceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3460319.3464840(553-565)Online publication date: 11-Jul-2021
    • Show More Cited By

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media