What Is Software Testing? A Beginner’s Guide
Software testing helps us find problems in software and assess whether it does what users need. It includes trying out an application and reviewing the plans that describe what it should do.
If you have ever tapped “Pay” and watched an app freeze, you already know why this matters. Suddenly, your biggest question is whether you have paid for one pizza, two pizzas or no pizza at all.
Software testers investigate situations like these. Their work helps teams spot problems, understand risks and make better decisions about the software we use.
Think like a software tester
Imagine an online shop selling a pair of shoes for R500. A valid discount code promises 10% off. You would expect the price to drop to R450 before delivery charges.
That gives you one thing to check. However, a curious tester will have more questions:
– What happens if the discount code has expired?
– Can a customer apply the same discount twice?
– Does the correct price appear on a mobile phone?
– What happens if the internet connection drops during payment?
– Could tapping “Pay” twice create two orders?
Each question explores a different situation. A test case describes what to check, the actions to take and the expected result.
For example, if the code promises 10% off but removes only R10, you have found something worth investigating. A flaw in software is often called a bug or defect.
And yes, being the person who asks “But what happens if…?” can be a useful skill.
Why software testing matters
A broken button can frustrate a customer. An incorrect calculation could affect a payment. A security weakness could put personal information at risk.
Testing gives teams a chance to find these issues and address them. It also helps them understand which problems need attention first.
For our imaginary shoe shop, an incorrect payment amount deserves more urgent attention than a slightly uneven heading. Both matter, but their consequences are different.
What happens when software goes wrong
Some software failures have made headlines around the world. These two examples show how software problems can have serious consequences.
NASA and the wrong measurement units
In 1999, NASA lost its Mars Climate Orbiter following a navigation error. Ground software supplied measurements in English units, while the navigation calculations expected metric units. The mismatch contributed to the spacecraft following the wrong path.
Our testing takeaway is simple: when systems share information, check that they understand it in the same way. Units, currencies and date formats all deserve attention.
For example, 03/04 might mean 3 April to one system and 4 March to another. Both can process the date successfully while understanding it differently.
Knight Capital and millions of unwanted orders
In 2012, trading firm Knight Capital incorrectly installed new code in its trading system. This activated a defective function.
During the first 45 minutes of trading, the system sent more than four million orders while trying to fill just 212 customer orders. The company eventually lost more than US$460 million, according to the US Securities and Exchange Commission.
Our takeaway: check how software updates behave where they will actually run. Also check how the team can detect and stop unexpected activity. Careful releases and effective safeguards matter alongside testing.
How software testing works
The exact approach depends on the project, but common activities include:
-
Understand the need. Find out what the software should do and who will use it.
-
Plan the checks. Choose useful scenarios and prioritise the biggest risks.
-
Run tests. Compare what happens with the expected result.
-
Report problems. Record the steps, results and evidence clearly.
-
Check changes. Confirm fixes and look for problems introduced elsewhere.
A helpful report might say: “Apply the SAVE10 code to the R500 shoes. The total becomes R490. We expected R450.”
That gives the developer a clear starting point. “The discount thing is broken” leaves considerably more detective work.
Testing helps reveal problems. Investigating their causes and fixing them is called debugging.
Manual and automated software testing
With manual testing, a person performs checks and observes the results. For example, a tester might work through checkout and investigate a confusing error message.
With automated testing, tools run programmed checks. For example, a team could automatically check several discount calculations whenever the software changes. This is useful for checks that need repeating.
People still decide what matters, design the checks and investigate unexpected results. Teams can combine manual and automated testing to suit the work.
Common types of software testing
Different checks answer different questions. Here are five examples.
| Type of testing | What it helps you check |
|---|---|
| Functional testing | Does a feature do what it should, such as applying the correct discount? |
| Performance testing | How quickly does the system respond, including when many people use it? |
| Usability testing | Can people understand the screens and complete their tasks easily? |
| Security testing | Are there weaknesses that could allow unauthorised access or expose information? |
| Compatibility testing | Does the software work across the intended browsers, devices and operating systems? |
For example, our shoe shop might calculate every price correctly but become painfully slow during a sale. Different kinds of testing help us investigate both issues.
Three facts about software testing that might surprise you
A famous computer bug was an actual moth
In 1947, engineers working on Harvard’s Mark II computer found a moth trapped in a component. They taped it into their logbook, which is now in the Smithsonian’s collection.
The word “bug” already described technical problems before this incident. Still, the moth gave finding a bug a very literal meaning.
Fortunately, most software testing today does not require insect repellent.
Testing can start before the code exists
Testers can review requirements and designs before an application is ready to run. This can reveal unclear instructions or missing information early.
For example, “Customers get free delivery on large orders” leaves a lot unanswered. How large? Before or after a discount? To every delivery address?
Those questions can prevent confusion before anyone builds the feature.
Passing every test does not prove there are no bugs
Testing reduces uncertainty, but it cannot prove that software has no defects. For most systems, checking every possible combination is impractical.
Think about all the phones, browsers, account types and payment situations an online shop might encounter. Testers choose checks that provide useful information about the most important risks.
Three facts about software testing that might surprise you
A famous computer bug was an actual moth
In 1947, engineers working on Harvard’s Mark II computer found a moth trapped in a component. They taped it into their logbook, which is now in the Smithsonian’s collection.
The word “bug” already described technical problems before this incident. Still, the moth gave finding a bug a very literal meaning.
Fortunately, most software testing today does not require insect repellent.
Testing can start before the code exists
Testers can review requirements and designs before an application is ready to run. This can reveal unclear instructions or missing information early.
For example, “Customers get free delivery on large orders” leaves a lot unanswered. How large? Before or after a discount? To every delivery address?
Those questions can prevent confusion before anyone builds the feature.
Passing every test does not prove there are no bugs
Testing reduces uncertainty, but it cannot prove that software has no defects. For most systems, checking every possible combination is impractical.
Think about all the phones, browsers, account types and payment situations an online shop might encounter. Testers choose checks that provide useful information about the most important risks.
Skills that help you in software testing
If you enjoy solving problems, noticing details and asking thoughtful questions, software testing could be worth exploring.
Communication matters too. You need to explain what happened, why it matters and how someone else can reproduce the problem. Patience helps when an issue appears only under certain conditions.
You can start learning the basics before becoming an expert programmer. As you move towards more technical testing and automation, programming knowledge becomes increasingly useful.
Start learning with Impimpi Technologies
At Impimpi Technologies, we help people build their knowledge and skills in software testing.
Our ISTQB Foundation Level training introduces the principles, terminology and techniques used in professional testing. It is open to beginners, with live virtual and classroom training options.
If you would like to turn your curiosity into a more structured skill, this is a place to begin.
Explore ISTQB Foundation Level training or speak to our training team about getting started.
FREQUENTLY ASKED QUESTIONS
Let’s Answer Questions About Software Testing!
-
You can start learning software testing without being an expert programmer. Beginners can practise understanding requirements, planning checks and reporting problems clearly. As you progress into automated testing and more technical roles, programming skills become increasingly useful.
-
Software testing helps identify problems and assess the quality of software. Quality assurance, or QA, focuses on improving the processes used to develop and test it. Both support better software, and the people involved work together to prevent and resolve quality problems.
-
Start with a demo application designed for testing. Choose a feature, such as a login form, and write down what you expect it to do. Try different inputs and compare the results with your expectations. Then practise writing a clear report explaining any problems you find.
Ready to Build Your Software Testing Skills?
Choose Your Course. Develop Your Expertise. Take the Next Step.
Whether you’re developing your own career or building capability across an entire testing team, Impimpi Technologies can help you find the right training pathway.