There is a growing software development dynamic of teams without Testers.
When I first went into Software Quality, I learned one thing right away: My role was user advocate. My main job was to find bugs. This is the Lean principle called Amplified Learning. We learn about behavior by testing. Even then, validation was not the main job. We validate by finding bugs. There is a current movement happening in software development towards having Developers validating software without Testers or Test Teams.
Now, in this new paradigm without Testers—who is doing that?
The current movement toward Developers validating software without Testers or Test Team to test is risky—for a lot of reasons. First, let’s look at the role of a Tester:
What is a Tester’s job, or at least—what are some expectations of Testers?
- Think like a user.
- Act like a user.
- Find bugs to cut user support calls.
Let’s look again at the Venn Diagram describing the main skills I look for on a Test Team (Figure 1).
Let’s say Developers take over all technical testing—both white-box and gray-box tests. That is a big ask, and the subject of its own discussion. Will a Developer really set blocks of time aside—or will they do “happy path” acceptance criteria validation and call it done?
The gap between Dev Mindset and Testing Mindset has narrowed significantly.
Developers work toward building and validating. Testers design tests thinking about externals: Inputs, platforms, alternative paths, boundary cases, and corner cases. Testers even think about the ever-elusive user expectations.
Subject Matter Testing – BAs and/or POs
In a perfect world, if you want to reduce Test Engineers, you have business analysts (BAs) or Product Owners (POs) and User Experience teams (UX) who will provide extensive, complete, well-thought-out user stories or requirements with lots of acceptance criteria. These people are Subject Matter Experts (SMEs) or Domain Experts, having Domain Knowledge. These folks will be very involved at the beginning of the project assisting with TDD (test-driven development) analysis of what to test. They will also run and execute System Tests (fully integrated end-to-end transaction/workflow testing on an environment very similar to production.) These folks will also run a User Acceptance Test, a pre-release test phase executed by Users.
Testing Skill – and There are Testers Being Testers
There are tests designed and Tester skills independent to Domain/Subject Matter Expertise.
Exploratory Testing—the Lean principle of “Just in Time” (JIT Test Design)—tests the system the way it was actually built—not what a design doc or release plan test skill. New tests are designed as tests are executed based on observations, clues, and behaviors.
Good Testers can test any system. Testing is definitely not solely reliant on Subject Matter Knowledge. And actually, the more and better BAs, POs, UX teams, the less of that style testing you want.
Testing focuses on: boundaries, under stress, error cases, complex cases, boundary data, wrong data, less common platforms, problematic devices or browsers, different character sets and date/address/phone formats… the lists and tasks go on. This is where Test Teams thrive and Developers run out of steam and time to test. This is not the forte of BAs or POs—this is Test Engineer 101! This mindset, skill set, and sets of tasks cannot get lost and usually cannot be effectively distributed among other staff. It isn’t their focus.
We mainly use Exploratory Testing as a tool to learn—how does the function or system behave when I try this data, that platform, when I repeat the task but do it under a different memory condition or, even If I do it concurrently with another task? This is the basis of testing. It’s fundamental to software development. It’s a mindset. When this mindset is minimized or removed from a software development team you need, at least, 3 things:
- Very understanding users who are fine with having bugs/unexpected behavior, as long as they get value fast and get fast roll-backs and fixes.
- A substantial support system that can scale with more customer calls, customer cases, immediate feedback, and hand-holding to fix customer found issues.
- Not to be worried about competitors, reviews, or lost customers.
Test Teams still have a place in Modern SDLCs. Test Teams give a unique and important perspective, judgment, and feedback. It is this kind of thinking that is still needed. More specifically, the Tester’s thinking is still needed. Especially when it comes to meeting customer expectations. Even if speedy development is hoping for immediate feedback; initiatives like Continuous Testing can help to meet this need for immediate feedback in systems like DevOps.
“In this Issue” of LogiGear Magazine, we hope to inspire you to Modernize your SDLC. Our Cover Story is a special 2-part article which covers Developer testing. Our VP of Business Solutions, Clay Simmons discusses using Agile Testing Quadrants to solve Automation headaches. We have a delightful infographic on where QA Fits in Agile, and our Blogger of the Month feature is from Manish John as he dispenses lessons learned in 5 years as a Software Engineer. We’re also debuting a new survey series to capture what your work life has been like during this pandemic. I encourage you to take it and share it with your teammates, we will be releasing results in the upcoming December issue!