How Do Developers Structure Unit Test Cases? An Empirical Analysis of the AAA Pattern in Open Source Projects

Chenhao Wei, Lu Xiao, Tingting Yu, Sunny Wong, Abigail Clune

Research output: Contribution to journalArticlepeer-review

Abstract

The AAA (Arrange, Act, Assert) pattern provides a unified structure for unit test cases, potentially benefiting comprehension and maintenance. However, its adoption and implementation in practice remain insufficiently understood. This study investigates the prevalence of AAA pattern usage, identifies recurring deviations and design issues within AAA structures, and assesses developers' receptiveness to AAA-based improvements.We conducted an empirical study on 735 real-life unit test cases randomly selected from seven open-source projects. We manually analyzed these test cases, identified AAA-related issues, and proposed fixes to developers. Our analysis found that 77% of test cases follow the AAA structure. We identified three recurring patterns deviating from AAA and four design issues within A blocks. Comparison with classic test smells revealed unique insights provided by AAA analysis. Of 27 improvement proposals sent to developers, 78% received positive feedback. These findings show that the AAA pattern is widely adopted in practice, but deviations from and design issues within AAA patterns are common. Our analysis provides a novel perspective on test case quality, complementing traditional test smell analysis. The high acceptance rate of our improvement proposals suggests that developers value AAA-based enhancements. These findings can guide the development of tools for improving AAA practice in unit tests.

Original languageEnglish
JournalIEEE Transactions on Software Engineering
DOIs
StateAccepted/In press - 2025

Keywords

  • AAA pattern
  • Design Quality
  • Refactoring
  • Software Testing
  • Test Smell
  • Unit Testing

Fingerprint

Dive into the research topics of 'How Do Developers Structure Unit Test Cases? An Empirical Analysis of the AAA Pattern in Open Source Projects'. Together they form a unique fingerprint.

Cite this