Empirical evaluation of test coverage for functional programs

Yufeng Cheng, Meng Wang, Yingfei Xiong, Dan Hao, Lu Zhang

    Research output: Chapter in Book/Report/Conference proceedingConference Contribution (Conference Proceeding)

    10 Citations (Scopus)
    218 Downloads (Pure)

    Abstract

    The correlation between test coverage and test effectiveness is important to justify the use of coverage in practice. Existing results on imperative programs mostly show that test coverage predicates effectiveness. However, since functional programs are usually structurally different from imperative ones, it is unclear whether the same result may be derived and coverage can be used as a prediction of effectiveness on functional programs. In this paper we report the first empirical study on the correlation between test coverage and test effectiveness on functional programs. We consider four types of coverage: as input coverages, statement/branch coverage and expression coverage, and as oracle coverages, count of assertions and checked coverage. We also consider two types of effectiveness: raw effectiveness and normalized effectiveness. Our results are twofold. (1) In general the findings on imperative programs still hold on functional programs, warranting the use of coverage in practice. (2) On specific coverage criteria, the results may be unexpected or different from the imperative ones, calling for further studies on functional programs.
    Original languageEnglish
    Title of host publicationICST '16 IEEE International Conference on Software Testing, Verification and Validation
    PublisherIEEE Computer Society
    Pages255-265
    Number of pages10
    DOIs
    Publication statusPublished - 2016

    Research Groups and Themes

    • Programming Languages

    Keywords

    • Software
    • Functional programming
    • Pattern Matching
    • Testing
    • Correlation
    • Software measurement

    Fingerprint

    Dive into the research topics of 'Empirical evaluation of test coverage for functional programs'. Together they form a unique fingerprint.

    Cite this