Exploring a definition of testing

If we google the definition of testing, it says:

Testing is revealing a person’s capabilities by putting them under strain; challenging.”

Let’s change the definition slightly to make it in line with software.

Testing is revealing a software’s capabilities by putting them under strain.

When I think about strain, it brings back a random memory of playing tug of war in team sports. It makes me think about tactics we use as teams to pull them over the line. Digging in the heels, good grip and pulling with all your might. Did anyone else play this game?

Moving on from my random story and relating it to software testing. If we think about the word strain, we could brainstorm a number of ways to see what we could do to reveal how the software reacts in situations — whether that be high quantities of data, time zones, different devices, alternate flows through the application and so on. This brainstorming part is important because you need to have the right mindset, techniques and knowledge to know what factors could result in revealing interesting information about your software.

Let’s create a new definition of software testing.

Testing is revealing a software’s capabilities by carrying out experiments to determine whether something might be true or not.

For example, a time zone may affect the dates in the system. We have knowledge of time zones — does it have an affect on the system?

What would your definition of testing be? Feel free to give me feedback on here or send me a comment on twitter(fishoutthebox)/linkedin (melissajfisher)