A to Z of Software Testing: Terms, Tips, & Advice for Newbies
In today’s software world, testing is an inevitable part of the process, but if you’re new to it, it can be hard to know where to begin. The following guide will provide you with a basic understanding of some of the most frequently used terms and how they can be applied to your work. It will also have some tips that will help you improve your software testing efforts.
Table Of Contents
- 1 🤖 A – Application Under Test (AUT)
- 2 👾 B – Bugs
- 3 🙏 C – Change Requests
- 4 🎲 D – Data
- 5 🎮 E – Exploration
- 6 🔴 F – Fault / Failures
- 7 📢 G – Great Resources
- 8 ⁉️ H – Heuristics
- 9 💡 I – Ideas
- 10 🪛 J – Judgement
- 11 🧬 K – Knowledge
- 12 🎃 L – Lateral Thinking
- 13 💭 M – Mental Models
- 14 🧾 N – Note Taking
- 15 🏮 O – Oracles
- 16 ☝️ P – Priority
- 17 ❓ Q – Questioning
- 18 📒 R – Requirements
- 19 ⚙️ S – Strategy
- 20 🔧 T – Tools
- 21 🧑🤝🧑 U – Users
- 22 🔦 V – Visualization
- 23 🌍 W – World
- 24 ❄️ X – Xtreme Cases
- 25 😄 Y – Yourself
- 26 🙌 Z – Zen
🤖 A – Application Under Test (AUT)
- An application or software system that you are testing is referred to by this term.
- Some common application types:
- API, etc.
- Hardware testers often use the term DUT, which stands for Device Under Test.
👾 B – Bugs
- A bug is anything about a product that threatens the value of a product. – James Bach.
- Other related terms
- Error: Something wrong with the product
- Critical Condition: Data value or environment condition or step to reveal the problem
- Defect: Bug with Legal Implications – Used in lawsuits
- Symptom: Behavior that suggests an underlying problem
- Reference: Bug Advocacy by Rahul Parwal
🙏 C – Change Requests
- A change request is something that is not a bug or threat to value.
- Nevertheless, it is a request that the developer strives higher or maximizes what has already been worked on.
- Tip: Phrase a request like a request.
🎲 D – Data
- Think about Data Coverage rather than Test Cases
- Learn to Visualize and use the power of data!
- Testing is as good as the data that you are using.
🎮 E – Exploration
- Exploring = Discovering unknown information to find out about any possible risks.
- Exploratory Testing = Simultaneous Test Design + Execution + Learning
- Dr. Cem Kaner defines exploratory software testing as a style of software testing that optimizes the value of testing work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project.
🔴 F – Fault / Failures
- A fault is a mistake in the code
- Failure is misbehavior caused by the fault
- Ex: 404 error due to wrongly configured app.
📢 G – Great Resources
- If you are a self-learner, there are lots of great (free) resources available to you.
- Some of the most popular compilations are listed below:
⁉️ H – Heuristics
- A heuristic is a fallible way to solve a problem – James Bach & Dr. Cem Kaner
- Knife: To cut things
- Map: To find places & directions
- Rule of thumb
- Reference: Understanding Heuristics in Testing
💡 I – Ideas
- Testing is all about test ideas
- Heuristics help to think of test ideas.
- Common Sources of Ideas
- Business Requirements
- External Factors
- Reference: 37 Sources of Test Ideas
🪛 J – Judgement
- Testing is a sampling activity.
- It is common for testers to sample a small number of tests from an infinite space of possible tests.
- Your judgement will help you to identify:
- What to test?
- Why test?
- Risk areas!
- A good judgement comes from experience and time.
🧬 K – Knowledge
- Knowledge is stored in two forms:
- Tacit Knowledge: Which includes:
- Explicit Knowledge: Which includes:
- Data, Information
- Tacit Knowledge: Which includes:
- Reference: Tacit and Explicit Knowledge: Collins, Harry
🎃 L – Lateral Thinking
- Testers are often recognized as out of the box thinkers. Example:
- What can go wrong?
- What is certain to go wrong?
- What if someone tries something extreme?
- With lateral thinking, a problem can be viewed from a creative perspective.
- Additionally, it facilitates creative problem-solving.
💭 M – Mental Models
- This is a mental picture of how something works.
- Flow Charts
- Architectural Diagrams
- Maps, etc.
- It is common for professional testers to use mental models consciously.
- Reference: Heuristics & Why you should care about them?
🧾 N – Note Taking
- The importance of taking notes during tests cannot be overstated.
- What does a typical test notes document contain:
- Links to resources, etc.
- Popular Formats:
- Doc Files
- Readme files, etc.
🏮 O – Oracles
- An oracle is a heuristic principle or mechanism by which you recognize a “potential” problem.
- Some commonly used consistency oracles:
- Consistent with claims
- Consistent with History
- Consistent with Purpose
- Consistent with our image
- Consistency within product
- Consistent with user’s expectations
- Consistency with comparable product
- Consistent with standards or regulations
- Used to guide:
- Test Design
- Bug Evaluation
- Test Reporting
☝️ P – Priority
- Priority is the urgency to fix a problem.
- By default, prioritizing is a business decision.
- In general, testers don’t set the priority.
- However, stakeholders may benefit from valuable information provided by the testers as they set the priorities.
- Read more about priority and severity.
❓ Q – Questioning
- It is one of the most underrated tools of a tester
- Using questions to gather information helps guide testing.
- Questioning Toolkits:
📒 R – Requirements
- Usually the starting point of a project. This document defines your product’s various components.
- In most cases, requirements aren’t explicitly stated, and they’re often tacit.
- Question stakeholders to know their requirements (or “desire”ments).
- Reference: Exploring Requirements
⚙️ S – Strategy
- Test Strategy: Given a testing mission, how will you achieve it?
- It defines answers to questions like:
- Who’s going to run the tests?
- What potential problems are they looking for?
- What aspects are they testing?
- What tools will be used?
🔧 T – Tools
- Tools are an integral part of every testing task we perform as testers
- Tools are an assistant to one’s testing effort.
- Reference: Ultimate Productivity Toolkit
🧑🤝🧑 U – Users
- They are the consumers of your applications
- It is important to study different users in order to generate relevant test ideas.
- Here is an example of common user personas for a shopping application:
- SHOP-A-HOLICS: They make multiple purchases.
- CART-ABANDONER: They probably add things to the cart. Applies discount but does not make a purchase.
- THE PRODUCT RETURNER: They tend to return products a lot.
- THE DISCOUNT CHASER: Applied for a discount but is hunting for more. Do we allow multiple discounts?
- THE PSEUDO-SMART: Tries to reduce cart content after discount is applied. Are we giving the discount coupon when the cart value changes?
- THE WANNA BE SMART: Tries an SQL injection in place of a discount voucher input value. Are we safeguarding against these possible threats?
🔦 V – Visualization
- There is visual intelligence in all of us.
- It’s unfortunate that only a few harness it.
- Common visualization ways:
- Sketch noting, etc.
🌍 W – World
- Our expectations are that the product will be consistent with what we know or can observe in the real world
- Something that is inconsistent with how the world works is an alert of potential trouble
- Example: Map showcasing roads with blue color and water with orange color.
❄️ X – Xtreme Cases
- Normally, development occurs within defined boundaries.
- Testers often try out “Xtreme” cases to see “What If?” someone does this.
- The extreme cases are a good way to check for:
- System Boundaries
- Performance Bottlenecks
- Security Risks
😄 Y – Yourself
- Each tester is unique; each tester is different
- “You” are the most significant differentiator to the testing you do.
- Listen to yourself 🙂
🙌 Z – Zen
- Zen is a state of calm attentiveness, where intuition guides one’s actions.
- You often receive intuitive signals from your tacit brain.
- Use your intuition to analyze and act.
Hey! Thanks for sticking around. Hope this article helped you with some common software testing terms, tips, and advice. If you want to check out an open-source testing solution, check out Testsigma.