Get in touch today: 0800 133 7948 or Email us
Talk to an expert: hello@atlascode.com

The Importance of Software Testing

Posted on: January 9th, 2018 by Simon Swords

Software testing isn’t the most ‘fun’ part of a software project, but arguably it’s the most important.

Software testing is usually tacked on to the end of a software project, but it really needs to be defined at the outset of the project and time to do the testing must be scheduled into the software project. Let me explain why software testing is so important to your project’s success.

Bugs that make it out into production are costly


Studies have shown that it is over five times more expensive to fix software bugs or problems that make it out into production (the real-world), than it is to find and fix those bugs during the testing phase.

Cost of a Software Bug graphic

Thorough testing is the primary way to avoid software bugs leaking out into production. There are two unique yet related types of testing:

  • Testing performed by your software development company, which can include one or more of the following:
    • Cross browser testing – does the solution work on multiple web-browsers
    • Functional testing – does the software do what it’s supposed to do
    • Automated testing – a routine which can perform a certain set of steps to check that the outcome is as expected
    • Unit testing – lines of code which automatically check other lines of code produce the correct output given certain inputs
  • Testing performed by you, the customer, which is commonly referred to as User Acceptance Testing or UAT

Software Testing


It’s important to ensure that your software development company employs qualified and dedicated software testers as part of their development team.

ISTQB Logo

Here at Atlas all of our software testers are ISTQB (International Software Testing Qualifications Board) qualified , which means they all share an industry understanding of the importance of testing and how to go about it in a manner that will highlight the most issues in the shortest amount of time.

When you’re considering engaging with a software development company the questions you should ask them related to their software testing expertise should include:

  • Do you automate any of your tests (We do! We actually built our own web-based tool – ThingsClick to automate some of our tests)
  • Do they use unit tests?
  • Do they adhere to any industry best practices around testing?
  • What is the process used for releasing code from the development team, to a test server and finally to the live server?

If any of these questions draw blank stares, or you’re not satisfied with the answers given, always obtain a second opinion!

User Acceptance Testing (UAT) – The Final Piece of the Puzzle


User Acceptance Testing (UAT) is the testing process of verifying that the created software solution works for the end-users aka the subject matter experts. This verification has to be carried out by users who understand the software product vision statement and the business needs being addressed.

The questions you’ll be looking to answer here can include:

  • Can the end-user use the software?
  • Is it user-friendly?
  • Is it really what they need, and does it meet the overall software product vision?
  • Do they have any trouble using it?
  • Does it behave exactly as anticipated?

Getting User Acceptance Testing (UAT) Right


You must make sure that you plan ahead for UAT so that those who are undertaking that work in your company are available and can provide timely feedback to the development team. Given that UAT is carried out at the end of the testing cycle, right before the release of the software, it’s one of the most critical parts of the software project lifecycle and issues here can cause serious delays if not handled efficiently.

UAT should be pre-planned with a clear acceptance test plan in the software requirement analysis and design phase at the start of the software project.

Your acceptance test plan should be as ruthlessly prioritised as your software development plan, focussing on real-world tests and scenarios that are the most important first and working backwards from there.

Create UAT Checklists Ahead of Time


You will need to define the objectives of your UAT process well ahead of UAT. In an ideal world when you set down your software product vision statement you will begin to create the checklist of UAT questions that your UAT team will refer to when they come to test the software.

Detailed software testing plans help to make it easier for a team member to design the test and for other team members to carry it out. A user acceptance testing plan also helps you to recreate a test if you have to go over it again, which is a common testing occurrence.

Create a process for raising UAT issues back to the development team


Software developers and testers tend to reside in the same building and communicate frequently, which means their ability to raise issues is normally streamlined.

Members of the UAT team often work remotely (as they work at the company that the software solution is being created for), and so it’s absolutely essential that as part of UAT they understand the workflow for raising issues and communicating with the software development company.

A lack of understanding for how this process works can lead to significant delays in the raising of issues. An experienced software partner will understand this and provide mechanisms for your UAT team to use to raise their feedback consistently, methodically and in a timely manner.

Carry out UAT in a real-world environment


In an ideal world, you need the testing environment that the team worked on to perform UAT to be as identical to the live environment as possible. This is especially important when testing includes checking the software solution is performant and capable of processing real-world data.

IMPROPER UAT PLANNING CAN LEAD TO UAT TAKING PLACE IN A DISORGANISED MANNER, WHICH CAN THROW THE MOST ORGANISED SOFTWARE PROJECT INTO CHAOS.

 

UAT CASE STUDY

London Heathrow Airport Terminal 5 Opening – UAT failure

Just before the opening of London Heathrow’s Terminal 5 in the UK, airport staff tested the brand new baggage handling system built to carry the vast amounts of luggage checked in each day at one of the busiest airports in the world.

Engineers tested the system thoroughly before opening the new Terminal to the public with over 12,000 test pieces of luggage. It worked flawlessly on all test runs only to find on the Terminal’s opening day that the system simply could not cope.

‘Real world’ scenarios such as removing a bag from the system manually when a passenger had left an important item in their luggage, had caused the entire baggage handling system to become confused and shut down. Over the following 10 days, some 42,000 bags failed to travel with their owners, and over 500 flights were cancelled because of the chaos it caused.

In this story, it is clear that not enough real-world scenarios were included when they were carrying out the UAT for the baggage handling system in Heathrow’s new terminal. The cost of not undertaking sufficient UAT ran into the millions of pounds.

Summary


The success of your software project is dependent on you and your software partner both have the correct resources in place. User Acceptance Testing (UAT) is a key component of a successful software project, and needs to be planned well ahead of time and executed efficiently so as not to bring the software project to an untimely halt.

Simon Swords

Simon Swords

Director

Managing Director

Want to stay up to date with the latest software news, advice and technical tips?

;