Quality Concepts For Testers
Abstract: I’ve put some resources together on techniques, tools and most importantly; new ways of thinking, that I believe would be beneficial to those within our skill-craft of testing. I know we come from a variety of backgrounds, so I wanted to share some of the quality concepts that I see as important from a testing perspective so that we have a common baseline from which to operate.
First, let’s be honest. As software testers we are not pushed by the actual work of testing to continually improve. While software developers are forced to continually adapt to new technologies to stay relevant, testers can easily get into a comfortable routine. In short, testers are more prone to become products of their environment and continue doing the same level of work, so we must be consciously pursuing information that makes us better at what we do, to ensure we do not plateau in our learning (see my other blog post entitled Improvement Continuum). Does everyone get into this rut, this plateau mindset? No way, but can we sometimes plateau and reach a point where we feel like ‘My process hasn’t changed in 6 months, am I still adding value? Am I still increasing the quality of the product as well as my own mindset?’…You bet. These are valid questions so I am hoping this information will help you feel more empowered.
Some of you might know this already, but I am a big believer in the ideals put forth in Context-Driven Testing (CDT); which states that there are no “Best” practices, but rather “Good” ones that fit the situation/team/industry that you are in. Quality is also subjective depending on the value given to it for the specific circumstance. Your stakeholders define what the value of that quality is, it does not simply inherently exist; therefore, “Quality is value to some person” as Gerald Weinberg put it; but more accurately, “Quality is value to some person who matters” – Michael Bolton/James Bach.
Many times as testers, we push forth in testing with our view of what quality is, but we do not re-evaluate that term from our stakeholder’s point of view for each project or feature/epic we work on. How do you know if you are a context-driven tester? Use the following heuristic (rule of thumb):
If you genuinely believe that quality is subjective and also believe that each story or set of stories has a different target group of stakeholders, then you must also believe that revisiting your definition of quality is a ‘must do’ when switching between projects.
But before we get too deep, here is a quick guideline that I like to give both new and veteran testers to make sure we’re in the same ballpark and moving in a common direction:
- High Level:
- What is Context-Driven Testing?: http://context-driven-testing.com/
- What kind of tester are you/do want to be?: http://www.satisfice.com/blog/archives/958
- 2014 Interview with Michael Bolton on Quality:
- Resources:
- CDT Minds To Follow:
- James Bach: http://www.satisfice.com/blog/
- Michael Bolton: http://www.developsense.com/
- Cem Kaner: http://www.kaner.com/
- Many Others…
- Other Minds/Authors:
- Gerald Weinberg: http://www.amazon.com/Gerald-M.-Weinberg/e/B000AP8TZ8/
- Daniel Pink: http://www.danpink.com/
- Daniel Kahneman: http://www.amazon.com/Daniel-Kahneman/e/B001ILFNQG/
- Videos:
- Testing in an Agile Environment: http://agiledevtest.blogspot.com/2013/04/video-testing-in-agile-environment-by.html
- Training – Blackbox Software Testing: http://www.testingeducation.org/BBST/foundations/
- Books/Reading List:
- Perfect Software and Other Illusions about Testing: http://www.geraldmweinberg.com/Site/Non-Fiction.html
- Lessons Learned in Software Testing: http://www.amazon.com/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124
- Secrets of a Buccaneer-Scholar: How Self-Education and the Pursuit of Passion Can Lead to a Lifetime of Success: http://www.amazon.com/Secrets-Buccaneer-Scholar-Self-Education-Pursuit-Lifetime-ebook/dp/B002ENBM7G
- Exploring Requirements: Quality Before Design: http://www.geraldmweinberg.com/Site/Non-Fiction.html
- Quality Software Management Vol. 1: http://www.geraldmweinberg.com/Site/Non-Fiction.html
- Quality Software Management Vol. 2: http://www.geraldmweinberg.com/Site/Non-Fiction.html
- Thinking Fast and Slow: http://www.amazon.com/Thinking-Fast-Slow-Daniel-Kahneman/dp/0374533555
- CDT Minds To Follow:
- Processes:
- Heuristic Test Strategy Model (HTSM): http://www.satisfice.com/tools/htsm.pdf
- Overview: “The Heuristic Test Strategy Model is a set of patterns for designing a test strategy. The immediate purpose of this model is to remind testers of what to think about when they are creating tests. Ultimately, it is intended to be customized and used to facilitate dialog and direct self-learning among professional testers.”
- What makes a piece of software testable?: http://www.satisfice.com/tools/testable.pdf
- Overview: “The practical testability of a product is how easy it is to test by a particular tester and test process, in a given context.”
- Good Enough Testing: http://www.satisfice.com/articles/gooden2.pdf
- Learning when to stop testing, is just as valuable as learning what to test.
- Session-Based Test Management: http://www.satisfice.com/sbtm/
- Overview: Time-boxed testing, that covers a given feature or set of features in a structured way through exploratory testing, and the produces a useful report that can be digested by the applicable parts of the development team. Extremely useful for initial testing within Agile or as a long-running model for project work.
- Heuristic Test Strategy Model (HTSM): http://www.satisfice.com/tools/htsm.pdf
- Tools:
- SBTM/Exploratory Testing:
- qTest Explorer: http://www.qasymphony.com/platform/exploratory-testing.html
- Overview: This tool is a step-by-step recorder. Unlike other screen-recorders, like Jing and SnagIt, this tool can actually be used to help write your tests. Explore a given website or set of websites, while this tool records your every step and takes screenshots alone the way. All clicks and interactions with the website will be logged in chronological order, then output to a digestible format that can save you a lot of manual data-entry/test writing time. Don’t get me wrong, this cannot replace good test-writing, but I believe it can get you from point A to B much more efficiently.
- Link Checking:
- Integrity (Mac): http://peacockmedia.software/mac/integrity/free.html
- Xenu Link Sleuth (Windows): http://home.snafu.de/tilman/xenulink.html
- qTest Explorer: http://www.qasymphony.com/platform/exploratory-testing.html
- SBTM/Exploratory Testing:
Chances are, there’s information here that is not familiar, and piques your interest. If this information does not interest you, then ask yourself if you are a detractor or a promoter. This is going to sound harsh, but it is the truth: You are either moving the testing community forward, or consciously remaining in the dark. The more I dive into the context-driven test community, the more I realize there is to be learned. My preconceptions are constantly shifted and modified as I explore this kind of information. My challenge to you: Find content within here, or related content/tools and take a deep-dive into that over the course of a few weeks or even months. Become an SME (Subject Matter Expert) in a given topic, then actively share that with your team (Community of Practice meetings, Weekly/Monthly Roundtables, etc.) and in-time become a known mentor/thought-leader on that subject which should organically draw others to you. What I’ve listed above is just the tip of the iceberg – There are so many avenues to explore here so finding something that you could get passionate about should be the easy first step. The hard part is seeing it out, but having others on a team pursuing endeavors along similar lines should give you strength.
My hopes are that this will spur cross-team brainstorming within your teams, or allow you to find some new learning pathways if you are testing on an island. A lot of these ideas and tools are great, but putting them in context through ongoing discussions is even more useful. Please feel free to make leave comments on what has and has not worked for you, and I’d love to engage. Also, the discussion will benefit others, which is the whole point of sharing these ideas to begin with.