Stephen D. Ritchie's Blog
June 24, 2024
The Future of Software Testing
In Mark Winteringham’s latest book, “AI-Assisted Testing,” he offers a balanced guide to the future of software testing. Manning early access version: https://www.manning.com/books/ai-assisted-testing
The field of software testing is rapidly evolving, and the author conducts a thoughtful and practical exploration of how artificial intelligence (AI), particularly generative AI, can improve the testing landscape.
Mark Winteringham’s journey into software testing is somewhat unconventiona...
May 24, 2024
Introduction to Dynamic Analysis
Dynamic analysis is a powerful technique in software development, aimed at gathering comprehensive information about a program’s behavior during execution. Unlike static analysis, which examines code without running it, dynamic analysis involves running the program under various conditions to collect data on performance, memory usage, code coverage, and internal states. This process provides invaluable insights into how the software interacts with its environment, making it an essential tool for...
May 20, 2024
Lunch with Tech Leaders — Episode 80
I was interviewed me for the Lunch with Tech Leaders podcast on the topic of Crucial Skills That Make Engineers Successful. Check it out! 
May 7, 2024
Crucial Skills That Make Engineers Successful
The other day I was speaking with an engineer and they asked me to describe the crucial skills that make engineers successful. I think this is an important topic.
In a world driven by technological innovation, the role of an engineer is more crucial than ever. Yet, what separates good engineers from successful ones isn’t just technical know-how; it involves a mastery of various practical and soft skills. Let’s explore these skills.
Cultivate Core Technical SkillsProblem Solving — E...
October 29, 2020
Boundary Analysis
For every method-under-test there is a set of valid preconditions and arguments. It is the domain of all possible values that allows the method to work properly. That domain defines the method’s boundaries. Boundary testing requires analysis to determine the valid preconditions and the valid arguments. Once these are established, you can develop tests to verify that the method guards against invalid preconditions and arguments.
Boundary-value analysis is about finding the limits of acceptable...
October 27, 2020
Better Value, Sooner, Safer, Happier
Jonathan Smart says agility across the organization is about delivering Better Value, Sooner, Safer, Happier. I like that catchphrase, and I’m looking forward to reading his new book, Sooner Safer Happier: Antipatterns and Patterns for Business Agility.
But what does this phrase mean to you? Do you think other people buy it?
Better Value – The key word here is value. Value means many things to many people; managers, developers, end-users, and customers.
In general, executive and senior ...
October 23, 2020
Fakes, Stubs and Mocks
I’m frequently asked about the difference between automated testing terms like fakes, stubs and mocks.
The term fake is a general term for an object that stands in for another object; both stubs and mocks are types of fakes. The purpose of a fake is to create an object that allows the method-under-test to be tested in isolation from its dependencies, meeting one of two objectives:
1. Stub — Prevent the dependency from obstructing the method-under-test and to respond in a way that helps it ...
April 24, 2020
First, the mental creation
April 18, 2020
We are the Pakleds; You *are* smart!
As one of the weary consultants on a multi-year software development project for a major lending institution I observed what became known as the Pakled-Customer Syndrome. The Pakleds are a race of dimwitted aliens from Star Trek: The Next Generation (TNG), which are first seen in the Samaritan Snare episode (summary here). They co-opt the technology of other spaceships through manipulation, brainless praise and hostage taking. Responding in good faith to the Pakled distress call the...
April 15, 2020
You got to know your limitations
Engineers must only be limited by their intellect and available time, subject to a sustainable pace. Maturity and experience are important, too.
This quote is a paraphrase of something a boss from long ago said to me. Here are the things I did to change my professional life based on this revelation, I tried to:
Develop my intellect: Stretch my brain. Learn new skills. Acquire new knowledge. Play brain games. Start taking notes instead of always relying on my recall. Read a lot. Increase my...

