SE-Radio Episode 283: Alexander Tarlinder on Developer Testing

Topics covered
Popular Clips
Questions from this episode
- Asked by 4 people
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.














