Blog

Task 2. What is software testing?

Yoda Magister · March 1, 2019

There are many aspects of software testing. Testing is not always about using the product. And it's not only about finding errors. Testing starts already at the requirements analysis stage. When you think about what the product should do, what risks may exist, and how the user / customer manages the product, testing begins.

Start this task by writing down on paper your thoughts on what, in your opinion, software testing is and what a software tester does.

One discussion I recently had about whether customers should be considered your users gave me an insight into the definitions we use to represent stakeholders. In my opinion, stakeholders include everyone who is interested in the software product. After all, you'll agree that the person paying for your software may not be the one actually using it.

This is a great example of how software testers should look at things from different perspectives. Below are examples taken from discussions with other testers about what, in their opinion, testing is or isn't.

What testing is (next ✅):

✅ Checking whether the software meets the expected utility for its users.

Researching the product to find any information that is valuable for our stakeholders.

That's not what testing is (see below ❌). Not at all, even if you really wanted to 😅.

Simple, fast, and predictable process.

Only checking that the product meets its description.

Eliminating and mitigating surprises. An attempt to find problems before the software is released to users.

Quality improvement is a parameter of the entire development team, not just QA.

Proof that software worked correctly once.

Product Study.

A deeply meaningful activity in software development, but often misunderstood due to its unpredictable and creative nature.

Easy to understand and highly valued by everyone process. (Unfortunately, there is none in reality)

Testing is a fixed process where imagination is not needed and which is best governed by strict rules.

Testing is communication — with all stakeholders (clients, users, developers, etc.). It's also collaborative work to find out whether the product is improving.

A stage that a project must go through to become successful. (Some products may be tested by users themselves)

An infinite process. Any testing is a limited sample of tests. For each non-trivial product, there is an unimaginable number of parameters with a large number of possible values. Think about where you know that you are testing important things?

A very limited area of activity. Yes, we can make decisions about stopping criteria for testing, but there's an infinite number of combinations that can be checked.

What to do next (Practical part):

Read this list of what testers do and do not do. Try to ask people around you how they understand what testing is. Ask people you work with and talk to (testers and non-testers), ask people through messaging, and maybe even ask your family. Write whether your understanding of the testing process has changed significantly after reading, compared to what you initially thought. How different were the answers you received? Explore other industries, such as pharmaceuticals, household appliances, etc. What is their approach to testing? How different is it from the IT industry? Has your opinion on how you now approach testing changed?

#TestingandDevelopment