# A Large-Scale Study on the Usage of Testing Patterns that Address   Maintainability Attributes (Patterns for Ease of Modification, Diagnoses, and   Comprehension)

**Authors:** Danielle Gonzalez, Joanna C.S. Santos, Andrew Popovich, Mehdi, Mirakhorli, Mei Nagappan

arXiv: 1704.08412 · 2019-10-01

## TL;DR

This large-scale study investigates how open source projects utilize testing patterns to enhance maintainability attributes like modifiability and comprehension, revealing low adoption rates and ad-hoc usage practices.

## Contribution

It introduces automated techniques to analyze testing pattern usage across over 82,000 projects, providing novel insights into testing practices and maintainability efforts in open source development.

## Key findings

- Only 17% of projects had test cases.
- 24% of projects used patterns aiding maintainability.
- Pattern usage was often ad-hoc and developer-driven.

## Abstract

Test case maintainability is an important concern, especially in open source and distributed development environments where projects typically have high contributor turnover with varying backgrounds and experience, and where code ownership changes often. Similar to design patterns, patterns for unit testing promote maintainability quality attributes such as ease of diagnoses, modifiability, and comprehension. In this paper, we report the results of a large-scale study on the usage of four xUnit testing patterns which can be used to satisfy these maintainability attributes. This is a first-of-its-kind study which developed automated techniques to investigate these issues across 82,447 open source projects, and the findings provide more insight into testing practices in open source projects. Our results indicate that only 17% of projects had test cases, and from the 251 testing frameworks we studied, 93 of them were being used. We found 24% of projects with test files implemented patterns that could help with maintainability, while the remaining did not use these patterns. Multiple qualitative analyses indicate that usage of patterns was an ad-hoc decision by individual developers, rather than motivated by the characteristics of the project, and that developers sometimes used alternative techniques to address maintainability concerns.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1704.08412/full.md

## Figures

4 figures with captions in the complete paper: https://tomesphere.com/paper/1704.08412/full.md

## References

33 references — full list in the complete paper: https://tomesphere.com/paper/1704.08412/full.md

---
Source: https://tomesphere.com/paper/1704.08412