Automation testing as an upfront software design technique

Homer showing an early design of the car he is designing called The Homer.
Credit: The Simpsons/20th Century Animation

Effective software development testing practices play a pivotal role in crafting robust, reliable, and high-quality software systems. While testing is traditionally seen as a validation mechanism, it’s increasingly being recognized as a potent tool for upfront software design.

By incorporating testing practices into the early stages of software development, teams can not only catch defects early but also shape the architecture, behavior, and interactions of the system. This proactive approach not only enhances software quality but also fosters a more streamlined development process.

In this article, we will delve into various testing practices that serve as upfront software design techniques, highlighting their significance in shaping software systems from inception.

Continue reading “Automation testing as an upfront software design technique”

Confidently make code changes with the practice of self-testing code.

In the ever-evolving landscape of software development, where change is the only constant, the need for robust testing practices has never been more critical. Martin Fowler’s insightful exploration of self-testing code has illuminated a path that not only enhances the quality of our code but empowers developers with a newfound confidence to shape and mould systems with agility.

Self-testing code is “the practice of writing comprehensive automated tests in conjunction with the functional software.”

At the heart of self-testing code lies a profound benefit: the confidence to implement changes. In traditional development cycles, every alteration, no matter how minor, can lead to a cascade of unintended consequences. This uncertainty can stifle progress and hinder innovation. However, by cultivating a culture of self-testing code, we unlock greater confidence that our changes will not break existing functionality. This confidence liberates us to experiment, optimize, and innovate, transforming the development process into a journey of continuous improvement rather than a daunting tightrope walk.

Continue reading “Confidently make code changes with the practice of self-testing code.”

Performance Testing using ab and Docker

Whenever possible I use official Docker images to run applications, services, and tools so I don’t have to install and maintain a myriad of different applications on my development machine. The Apache HTTP server benchmarking tool ab is a handy utility you can use to quickly performance test your HTTP services. It comes bundled as part of the Apache HTTP server installation, but why bother installing it when you can just use the official Docker image.

Continue reading “Performance Testing using ab and Docker”