Unleash the Power of Approval Testing for Seamless Refactoring ๐Ÿš€

Discover how approval testing can help ensure a smooth transition during large-scale re-architectures and cloud exodus.

Welcome to the new Bug Driven Developers this week! If you enjoy this post, forward it to your developer friends so they can join us.

Hereโ€™s what we got for you today:

  • Approval Testing, what is it good for and how to use it

  • NeXT Computers

  • Giving GPT "Infinite" Knowledge

โœ…ย Kicking Off with Approval Testing

Inspired by Dave Farleyโ€™s latest video about approval testing, we decided to explore this concept further and share our perspective on its usefulness.

๐Ÿงช So What Is Approval Testing?

Approval testing is a technique employed during code refactoring. It helps developers ensure that code changes, whether for adding new features or modifying the application's structure, do not have unintended consequences. Approval tests record system interactions, store them in a file, and compare these results with previous reference outcomes to identify discrepancies. This method effectively aids in making safe code changes and reducing potential errors.

๐Ÿ—จ๏ธ Our Thoughts - The Role of Approval Testing in a Development Cycle

Recently, we've observed a trend where companies undertake extensive re-architecture, altering their deployment models. Developers like David Heinemeier Hansson, for instance, are moving their architectures from the cloud back to on-premises environments.

Moreover, companies like Amazon are shifting away from serverless architecture and returning to monolithic structures for improved performance and cost reduction (Amazon managed to decrease costs by 90% through this re-architecture!)

These re-architectures aim to maintain existing features and functionalities while significantly altering the code construction or deployment model. This is where approval testing proves valuable. If the goal is to substantially restructure the code while preserving functionality, the team can implement approval tests to ensure that all refactored functions align with the current system. Consequently, as the revised code enters production, it won't cause existing systems or dependencies to break due to the changes.

As organizations embark on extensive refactoring projects, approval testing emerges as an indispensable tool to maintain stability and consistency. By establishing a safety net of tests that monitor functionality, development teams can confidently make significant code modifications without fear of disrupting existing systems or dependencies. In a rapidly evolving tech landscape, it's crucial for businesses to adapt and optimize their architectures for performance, cost, and scalability. With approval testing in their arsenal, developers can boldly undertake these large-scale transformations, ensuring a seamless transition while retaining the core features and functionalities that make their applications successful.

For those seeking to delve deeper into the phenomenon of organizations stepping away from cloud platforms and reevaluating their deployment models, check out our analysis of this shift in the industry ๐Ÿ‘‡๏ธ

๐Ÿ”—Links in Tech

Some additional reads we liked this week

๐Ÿ˜‚ Meme of the Week

Thanks for tuning in to this weekโ€™s newsletter! If you have any questions, feel free to let us know on Twitter (Justin's Twitter) (Kevin's Twitter)


Justin + Kevin

P.S. What new things about Software Development did you learn this week?

Did you enjoy reading this week's Bug Driven Development?

Join the conversation

or to participate.