Published Sep 3, 2019

SE-Radio Episode 283: Alexander Tarlinder on Developer Testing

Alexander Tarlinder delves into the nuances of developer testing, emphasizing specification-based testing, design by contract, and the importance of writing testable code. He discusses balancing test-driven development with practical approaches, while focusing on enhancing software quality through formalized testing responsibilities and methodologies.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Questions from this episode

Episode Highlights

  • Testable Code

    In the realm of software development, testable code is defined by its observability and controllability. explains that testable code should be observable, meaning its behavior can be monitored, and controllable, allowing developers to manipulate its state for testing purposes 1. He highlights the challenges of achieving these attributes, especially when dealing with external dependencies like databases or live data, which can hinder controllability 2. shares an example from his experience with stock trading systems, where testing was complicated by the uncontrollable nature of live data 1.

    If you scale that's on unit test level. And again, now I got carried away here, but I'm just gonna slow down it scales, because if you look at systems, for example, an entire system may be untestable because of external dependencies that you simply can't control.

    ---

    Understanding these concepts is crucial for developers aiming to write robust and testable code.

       

    Developer Testing

    Developer testing is distinguished by its intentional and systematic approach to ensuring software correctness. emphasizes that developers must actively engage with testing tools and techniques to achieve high code quality 3. He acknowledges the potential for bias, as developers may overlook scenarios in their own code, but argues that this bias is outweighed by the benefits of developers testing their own work 4. also notes the gap in existing literature, which often focuses on testing tools rather than what to test, highlighting the need for guidance on creating meaningful tests 5.

    Developer testing is a lot about preventing, it's about prevention.

    ---

    This systematic approach helps developers anticipate and address potential issues early in the development process.

Related Episodes