Assessing Exception Handling Testing Practices in Open-Source Libraries

by   Luan P. Lima, et al.

Modern programming languages (e.g., Java and C#) provide features to separate error-handling code from regular code, seeking to enhance software comprehensibility and maintainability. Nevertheless, the way exception handling (EH) code is structured in such languages may lead to multiple, different, and complex control flows, which may affect the software testability. Previous studies have reported that EH code is typically neglected, not well tested, and its misuse can lead to reliability degradation and catastrophic failures. However, little is known about the relationship between testing practices and EH testing effectiveness. In this exploratory study, we (i) measured the adequacy degree of EH testing concerning code coverage (instruction, branch, and method) criteria; and (ii) evaluated the effectiveness of the EH testing by measuring its capability to detect artificially injected faults (i.e., mutants) using 7 EH mutation operators. Our study was performed using test suites of 27 long-lived Java libraries from open-source ecosystems. Our results show that instructions and branches within ๐šŒ๐šŠ๐š๐šŒ๐š‘ blocks and ๐š๐š‘๐š›๐š˜๐š  instructions are less covered, with statistical significance than the overall instructions and branches. Nevertheless, most of the studied libraries presented test suites capable of detecting more than 70 faults. From a total of 12,331 mutants created in this study, the test suites were able to detect 68



There are no comments yet.


page 1

page 2

page 3

page 4

โˆ™ 08/02/2017

Revisiting Exception Handling Practices with Exception Flow Analysis

Modern programming languages, such as Java and C#, typically provide fea...
โˆ™ 02/13/2018

MDroid+: A Mutation Testing Framework for Android

Mutation testing has shown great promise in assessing the effectiveness ...
โˆ™ 10/06/2020

Validating UTF-8 In Less Than One Instruction Per Byte

The majority of text is stored in UTF-8, which must be validated on inge...
โˆ™ 01/25/2020

Open-source Defect Injection Benchmark Testbed for the Evaluation of Testing

A natural method to evaluate the effectiveness of a testing technique is...
โˆ™ 04/08/2020

Do Null-Type Mutation Operators Help Prevent Null-Type Faults?

The null-type is a major source of faults in Java programs, and its over...
โˆ™ 08/14/2020

The Relevance of Classic Fuzz Testing: Have We Solved This One?

As fuzz testing has passed its 30th anniversary, and in the face of the ...
โˆ™ 04/12/2021

DockerMock: Pre-Build Detection of Dockerfile Faults through Mocking Instruction Execution

Continuous Integration (CI) and Continuous Deployment (CD) are widely ad...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.