Don’t Define Testing Around Bug Finding

I still see many testers talking about the number of bugs found as some sort of barometer of success in terms of effective testing. But lately I’ve seen this framed around the “quality” of bugs found, rather than just their quantity. Still, you have to be a bit careful here. Let’s talk about this.

Continue reading Don’t Define Testing Around Bug Finding

A False Dichotomy of Modern Testing

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?

Continue reading A False Dichotomy of Modern Testing

Should We Hire Specialist Testers?

I previously talked about some heuristics for hiring test specialists. There was an assumption in that post that you do, in fact, want to hire specialist testers. But, of course, that is just an assumption. Perhaps you don’t. And before you say “But of course we do!”, let’s talk about this a little bit.

Continue reading Should We Hire Specialist Testers?

Heuristics for Hiring Specialist Testers

I’ve talked quite a bit about the interview process for testers. Here I’ll try to distill some of that material around my experiences with hiring test specialists. By this term, I mean exactly what it sounds like: people who have chosen to specialize in the discipline of testing.

Continue reading Heuristics for Hiring Specialist Testers

Demystifying Machine Learning, Part 6

In the last post, we defined our neural network by providing it some specific hidden layers that will provide the basis for how the neural network model actually works. We were also able to dig in a bit to what’s happening behind the scenes. In this post, we’ll actually execute the neural network by feeding it the data and evaluating what gets produced as output.

Continue reading Demystifying Machine Learning, Part 6

Demystifying Machine Learning, Part 5

In the previous post in this series we implemented a neural network from top to bottom, essentially allowing you to see how everything works from the start of inputting data to getting results. In this post, we’ll start to create a very similar neural network but I’ll take a bit more time to explain some of the specifics. Fair warning: this is probably going to be the longest post in this series so far because there’s a lot to dig into.

Continue reading Demystifying Machine Learning, Part 5

Demystifying Machine Learning, Part 4

In the previous posts in this series, we got a lot of terminology placed in context, we investigated our data set, we took a dive into some math, and we talked about the life cycle of a neural network. In this post, you’re going to get a rapid-fire tour of creating a neural network from start to finish. The goal won’t be to understand every aspect, but rather just to get functionality working that I can expand on for you.

Continue reading Demystifying Machine Learning, Part 4

Demystifying Machine Learning, Part 3

In the previous post in this series we were able to dive in a bit and get coding. That was a nice balance with the first post which put more emphasis on theory. In this post we’ll deal with some of what’s going on between the coding and the theory. This is where some of the practice comes in.

Continue reading Demystifying Machine Learning, Part 3

Demystifying Machine Learning, Part 2

Here we’ll pick up from the first post and get to work with our machine learning, specifically focusing on getting a data set, exploring it a bit, and then doing some processing on the data to get it into a format that would be usable for a neural network algorithm.

Continue reading Demystifying Machine Learning, Part 2

Demystifying Machine Learning, Part 1

This series will be part of my ongoing topic around machine learning. In these posts my goal is to allow you to deep dive into a common example for those first starting out in the subject. By the end of these posts you will have written and tested a neural network to solve a classification and prediction problem and come away with some understanding of a fast-growing trend in the industry.

Continue reading Demystifying Machine Learning, Part 1

Testers and the “Just Semantics” Dismissal

I believe that semantics matter. I do realize not all semantics matter equally. But, still: semantics matter. It’s disappointing when otherwise intelligent people seem to dismiss something simply because they feel it’s just semantics. Let’s talk about this.

Continue reading Testers and the “Just Semantics” Dismissal

Can an AI Become a Tester?

If you are going to have an AI that “does testing” — as opposed to some other activity like analysis or pattern recognition — you are going to have to move from a focus solely on perception and add the dimension of actions. I’m finding a lot of folks promising “AI-based testing tools” or those eagerly hoping for them are very much confusing this distinction. So let’s talk about it and, as we do, let’s create an illustrative example.

Continue reading Can an AI Become a Tester?

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.

Continue reading Constraints and Cost of Mistake Curves

Why Have You Stayed in Testing?

I get asked this a lot. I’ve been doing some form of testing since the early 1990s and while my initial opportunities were provided by chance, my career was one of choice. Rather than say why I stay in testing, I’ll frame this around some questions and answers that may give some insight of how testing has allowed me to answer certain questions in a career-relevant way.

Continue reading Why Have You Stayed in Testing?

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.

Continue reading Reframe Non-Functional as Human Qualities

Framing Automation-Based AI

I recently talked about a focus on being able to test an AI before you trust an AI to test for you. Here I want to provide a bit more focus on how worth it this idea might be. But my goal here is not to dampen the spirits of those who want to build such tools; rather I want to suggest some of the challenges and provide a bit of the vocabulary. I want to give you a way to frame the current situation with AI and its value as a test-supporting technology.

Continue reading Framing Automation-Based AI

Testing AI … Before Testing With AI

A lot of testers are talking about how to use artificial intelligence (AI) or machine learning (ML) to be the next biggest thing in the test tooling industry. Many are in what seem to be a lemming-like hurry to abdicate their responsibilities to algorithms that will do their thinking for them. Those same testers, however, often have absolutely no idea how to actually test such systems in the first place. So let’s dive into this a bit.

Continue reading Testing AI … Before Testing With AI

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.

Continue reading The (Testing) Prison of Representation