TDD and Software Architecture

Rafael A. George Duval
2 min readNov 3, 2022

--

Introducing new changes in an application implies preserving the stability of previous requirements.

Test-Driven Development

New features drive the structure of any software system. TDD provides a mechanism to preserve previous requirements.

It is often the case that teams introduce new bugs due to the need for more context around previous functionality. Understanding the impact of testing for an application provides the why.

Understanding the *how* and *what* makes TDD challenging. — DHH

Unit Tests

Unit testing supports the assumptions made by the team to support such Architecture.

Unit tests support the TDD process, which drives the test suite. The test suite supports the application’s Design. The application’s Design keeps the architecture sound, supporting the business.

Fast feedback loop Unit Tests must be quick. Test parallelization and auto-loading dependencies high the root cause of problems with tests.

Unit Tests should be isolated. Unit Tests must be separated from the environment’s context —

Software Architecture and Design

If testing seems complicated — examine your Design — Sandi Metz

Software Architecture emerges from the interaction between developers and the business. Software architecture elevates the use cases of a system to first-class entities.

The primary purpose of architecture is to support the system’s life cycle. Software Architecture reveals the communication mechanism employed at the business level.

TDD serves as a sounding board to establish proper boundaries for internal communication between components while preserving the capabilities for change in the future.

--

--

Rafael A. George Duval
Rafael A. George Duval

Written by Rafael A. George Duval

✍🏼 Building a Solo Digital Media Company 🧪 Snippets of Text [https://snippetsoftext.substack.com/subscribe]

No responses yet