Published Sep 3, 2019

Episode 133: Continuous Integration with Chris Read

Join Chris Read as he delves into the transformative power of continuous integration, exploring its evolution, core practices, and impact on modern software development. Discover how effective testing automation, regular commits, and developer discipline boost productivity and code quality in this insightful episode.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Automated Testing

    Automated testing is a cornerstone of continuous integration (CI), expanding beyond unit tests to include integration, functional, and performance tests. emphasizes the importance of validating tests and addressing failures promptly to maintain CI's value 1. He notes that many organizations struggle with CI due to broken builds and neglected test failures, stressing the need for a robust testing strategy 1.

    Automating testing is not just about automating your unit test, it's about automating all the testing around your software.

    ---

    and Chris discuss the challenges of testing with different database architectures, highlighting the need for efficient build pipelines to ensure rapid feedback and maintain build speed 2.

       

    Deployment Automation

    Deployment automation is crucial in modern CI pipelines, transforming stressful manual processes into seamless operations. Chris shares a case where automating deployment reduced downtime from hours to seconds, even allowing updates during active user sessions 3. This shift not only boosts confidence in the deployment process but also involves operations teams early, ensuring smoother transitions and fewer disruptions 3.

    By automating your deployment and making it part of your continuous integration ecosystem, you're testing the mechanism that puts your application into production.

    ---

    He advises using appropriate scripting languages for deployment tasks, ensuring that both developers and operations teams are comfortable and efficient 4.

       

    Test Doubles

    Advanced testing techniques, such as test doubles, enhance the efficiency and effectiveness of software testing. Chris introduces the concept of test doubles, including stubs and mocks, which simulate interactions within software components to facilitate testing 5. These tools are integral to behavior-driven development and functional testing, allowing for comprehensive evaluation of software behavior 5.

    There's a whole group of them collected together. Martin Fowler calls them test doubles.

    ---

    mentions popular testing tools like JUnit, indicating the breadth of available resources for developers to implement effective testing strategies 6.

Related Episodes