You’ll often see questions about the practice of software testing that essentially boil down to this: “Which is better: manual testing or automated testing?” This is how many engineering managers do view the world and while they may throw in more words, what they are asking is that question. And the answer they generally come down to is: “Automated testing is better.” How do testers combat that? And should they?
Category: Testing
Constraints and Cost of Mistake Curves
In this post I want to explore how a theory of constraints can be combined with cost of mistake curves to consider how testing operates, first and foremost, around the concept of design. Keeping design cheap at all times is a value of testing that I rarely see articulated. So here I’ll give that articulation a shot.
Reframe Non-Functional as Human Qualities
My contention is that specialist testers know enough to not use the term “non-functional.” And if they are in environments where this term is used, they seek to shift people from this vocabulary. This is one of the ways that I spot specialist testers. Let’s talk about my rationale for this and why I think it’s important.
The (Testing) Prison of Representation
The general idea of a prison of representation is when you are locked into some means or method of being understood. This means of “being locked” can come from the past and, interestingly enough, from the future. I believe testing, as a discipline, is in danger of being in such a prison. Let’s talk about this.
The Constraints of (Testing) History
As a specialist tester, one has been doing this since the early 1990s, it’s interesting to follow the contours of a notoriously fractious discipline. A discipline that is often populated by articulate but frustratingly argumentative practitioners. I say “frustratingly” not because argumentation is bad (it isn’t) but because that argumentation often turns into becoming an instinctive contrarian and a ruthless, rather than pragmatic, skeptic.
An Ode to Testability, Part 7
We made it! The final post in the testability series. Here we bring the Benchmarker application to a reasonable close. Then we’ll take a bit of time to briefly cover the journey we’ve taken together here.
An Ode to Testability, Part 6
We’re continuing to build out our Benchmarker application, putting pressure on design as we go and keeping testability front-and-center as the quality attribute we want to provide, enhance, and maintain. Keep in mind we’re still slogging toward value, assuming that, for the most part, we’re handling correctness as we go along.
An Ode to Testability, Part 5
In the previous post we ended up creating tests with a context. And that context was allowing us to bridge the gap between correctness and value while also continuing to put focus on testability. We saw some warning signs along the way but, overall, made progress. Here we’ll continue that progress and also start to see how while testability is something to strive for, just doing so by itself guarantees us very little.
An Ode to Testability, Part 4
Here we’ll continue on from the previous posts, getting more and more into aligning correctness of implementation with value for the business. We’re also going to look a bit at that line where the “unit test” starts to shade into an “integration test” and thus where a “programmer test” might start becoming a “customer test.”
An Ode to Testability, Part 3
An Ode to Testability, Part 2
We’re going to continue on from the first post in this series by starting to build our Benchmarker application. In the first post we considered design pressure on value. Now we’re going to get into correctness. Value and correctness are two sides of the testability coin. So let’s get started.
An Ode to Testability, Part 1
I talked before about whether testers should be developers and I also talked about the intersection of development and testing with a focus on testability. Here I want to make that intersection a little more actionable by considering an example over a series of posts.
A Plea for Testability
Part of achieving quality in software means treating testability as a primary quality attribute. Once you do that, you can then adapt your requirements and development styles from that point of view. Whether you call that “agile”, “lean”, “scrappy” or whatever else is largely beside the point. The focus is on testability. But let’s talk about what that means.
Testers and Received Wisdom
Like most disciplines, testing has some so-called truisms that get passed around, many often being blindly accepted. The problem is often that our discipline requires a bit of nuance that the truisms — even if accurate — tend to gloss over. So let’s dig into a few of these.
Does Testing Fit into DevOps?
I personally think the answer to my title question is an obvious “yes.” But I do see a lot of discussions about how the DevOps movement and/or culture has “killed” testing or has removed the need for testers. Let’s talk about that.
Manual Testing Deniers
There are groups of testers out there right now denying that the term “manual testing” — or the reality of the term — does exist or has ever existed. To me this is a bit of historical revisionism. Let’s talk about this.
Let’s Broaden Our Testing Wisdom
I talked before about tradition and dogma in the testing field. It’s often interesting to see how the idea that get passed off for wisdom in the testing world come about. Let’s take one example and break it down.
Testers and Future Angst
I see a lot of vocal pundits in the testing world saying that artificial intelligence (by however they choose to define that) is no threat to future testing. I’ll ignore for a moment that most of these pundits get AI wrong — equating it, as they do, with “better algorithms” — but I won’t ignore that they seem to forget a key point: will there be a perception that AI can handle future testing?
Should Testers Become Developers?
There is a distinction between “being a programmer” and “being a developer.” Yet those two terms get conflated in our industry quite a bit. The idea of a tester also gets conflated with … which? Programmer or Developer? That very much depends. Combine what I just said with the idea that many testers feel that DevOps has caused a decline in testing. Is there a correlation there? And should testers become developers? Let’s talk about this.
Don’t Be Such a Tester
There’s a book I really enjoyed that I believe every tester should read. Actually, anybody who has to communicate should read it. The book is called Don’t Be Such a Scientist by Randy Olson. And it talks about the need to have effective means at communicating by framing issues in a way that is interesting and not just recitations of things that people have been doing or saying. Let’s talk about this.