article thumbnail

AoAD2 Practice: Test-Driven Development

James Shore

Test-driven development, , or TDD, is a rapid cycle of testing, coding, and refactoring. Done well, TDD eliminates an entire class of programming errors. When used properly, TDD also helps you improve your design, documents the behavior of your code, enables refactoring, and guards against future mistakes. Why TDD Works.

article thumbnail

AoAD2 Practice: Fast, Reliable Tests

James Shore

With TDD, you run the tests as often as one or two times every minute. If they don’t, you won’t be able to get feedback within 1-5 seconds, and that’s crucial for the TDD loop to work effectively. The “Application Infrastructure” episode of [Shore2020b] has an example. Use Broad Tests Only as a Safety Net.

Insiders

Sign Up for our Newsletter

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Trending Sources

article thumbnail

LLMs Demand Observability-Driven Development

Honeycomb

Neural nets are also inherently stochastic, because GPU calculations around floating point operations are inherently nondeterministic. You can’t really write unit tests for this (nor practice TDD). Modern applications are dramatically more complex than they were a decade ago. Users will do things you can’t possibly predict.

article thumbnail

AoAD2 Practice: Incremental Design

James Shore

As “A TDD Example” on p.XX Refactorings occur every few minutes, during the “Refactoring” step of the TDD cycle. When TDD is performed well, the design of individual modules and classes is beautiful: they’re simple, elegant, and convenient to use. During TDD, navigators should also consider the wider scope.

article thumbnail

Global Software Architecture Summit 2022 Recap

Apiumhub

He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. His main specialties are software development practices, TDD, Refactoring, Legacy Code Revitalization, and team dynamics. He holds a Masters in Software Engineering from Carnegie Mell.

article thumbnail

Interview with Evgeny Predein – CEO of Apiumhub

Apiumhub

He has been one of the former practitioners of Agile Methodologies, particularly eXtreme Programming with a great experience in difficult practices like TDD, Continuous Integration, build pipelines and evolutionary design. It starts building software with a focus on the architecture, applying best practices, and TDD & CI.

article thumbnail

Testing Without Mocks: A Pattern Language

James Shore

The application reads a string from the command line, encodes it using ROT-13 , and outputs the result. App is the application entry point. A web application and microservice that performs ROT-13 encoding. JavaScript and Node.js) TDD Lunch & Learn Screencast. For a safety net, use Smoke Tests.

Testing 138