Developers are increasingly using services such as Dependabot to automate dependency updates. However, recent research has shown that developers perceive such services as unreliable, as they heavily rely on test coverage to detect conflicts in updates. To understand the prevalence of tests exercising dependencies, we calculate the test coverage of direct and indirect uses of dependencies in 521 well-tested Java projects. We find that tests only cover 58% of direct and 21% of transitive dependency calls. By creating 1,122,420 artificial updates with simple faults covering all dependency usages in 262 projects, we measure the effectiveness of test suites in detecting semantic faults in dependencies; we find that tests can only detect 47% of d...
Exception mechanisms help to ensure that a program satisfies the important robustness criterion of d...
Dependency injection (DI) is generally known to improve maintainability by keeping application class...
Dependency injection (DI) is generally known to improve maintainability by keeping application class...
Slow builds remain a plague for software developers. The fre-quency with which code can be built (co...
As software grows in size and complexity, it also becomes more interdependent. Multiple internal com...
Dependency maintenance is a critically important part of software development as vulnerabilities and...
The reuse of third-party packages has become a common practice in contemporary software development....
Automated program repair (APR) techniques have shown a promising ability to generate patches that fi...
Open source software ecosystems are essential to software development. Developers depend on packages...
Regression tests should consistently produce the same outcome when executed against the same version...
Small changes can have major and nonlocal effects in object oriented languages, due to the extensive...
Testing stateful applications is challenging, as it can be difficult to identify hidden dependencies...
Overview of Data Defects4J: A Database of Existing Faults to Enable Controlled Testing Studies for ...
Rather than tediously writing unit tests manually, tools can be used to generate them automatically ...
In a test suite, all the test cases should be independent: no test should affect any other test’s re...
Exception mechanisms help to ensure that a program satisfies the important robustness criterion of d...
Dependency injection (DI) is generally known to improve maintainability by keeping application class...
Dependency injection (DI) is generally known to improve maintainability by keeping application class...
Slow builds remain a plague for software developers. The fre-quency with which code can be built (co...
As software grows in size and complexity, it also becomes more interdependent. Multiple internal com...
Dependency maintenance is a critically important part of software development as vulnerabilities and...
The reuse of third-party packages has become a common practice in contemporary software development....
Automated program repair (APR) techniques have shown a promising ability to generate patches that fi...
Open source software ecosystems are essential to software development. Developers depend on packages...
Regression tests should consistently produce the same outcome when executed against the same version...
Small changes can have major and nonlocal effects in object oriented languages, due to the extensive...
Testing stateful applications is challenging, as it can be difficult to identify hidden dependencies...
Overview of Data Defects4J: A Database of Existing Faults to Enable Controlled Testing Studies for ...
Rather than tediously writing unit tests manually, tools can be used to generate them automatically ...
In a test suite, all the test cases should be independent: no test should affect any other test’s re...
Exception mechanisms help to ensure that a program satisfies the important robustness criterion of d...
Dependency injection (DI) is generally known to improve maintainability by keeping application class...
Dependency injection (DI) is generally known to improve maintainability by keeping application class...