Testing Algorithms (AQA GCSE Computer Science)

Revision Note

James Woodhouse

Written by: James Woodhouse

Reviewed by: Lucy Kirkham

Testing Algorithms

What is the purpose of testing algorithms?

  • Testing is carried out for many reasons, however, 4 main areas are:

    • To ensure there are no errors or bugs in the code

    • To ensure that the code performs as it was intended

    • To ensure no one can gain unauthorised access to the system

    • To check the program solves the initial problem and meets all requirements

What are the different types of testing?

  • There are two types of tests that developers and teams will do to ensure their programs are robust and meet the requirements that have been set out, they are: 

    • Iterative testing

    • Final testing

Iterative Testing

  • Each part of a program is tested

  • Every pathway through the program is tested

    • This includes each branch/pathway inside of IF statements

  • This is done during the development of the program

  • Iterative testing means repeatedly testing the program whilst continuing to make changes and make improvements

  • This method of testing ensures that the program is fully functional and working as intended

Final Testing

  • Testing that all parts (modules) of a program work together

  • Checking the program against real data to ensure it meets all of the requirements

    • Testing the program using normal, boundary and erroneous data

  • Final testing is done towards the end of the development cycle, once the entire program is complete

  • Final testing can include

    • Alpha testing

    • Beta testing

Normal, Boundary & Erroneous Tests

Categories of tests

  • The are three main categories of tests a programmer or test-user would carry out whilst performing both iterative or final testing on a program

    • Normal tests

    • Boundary tests

    • Erroneous tests

  • There is an additional test that users would always carry out to test the robustness of their program, this is known as an invalid test

  • To explain the types of tests, some example code will be used

Example code

# Ask for user's name
name = input("What is your name? ")

# Ask for user's age
age = int(input("How old are you? "))

# Check if age is between 12 and 18
if age >= 12 and age <= 18:
    print("Welcome, " + name + "! Your age is accepted.")
else:
    print("Sorry, " + name + ". Your age is not accepted.")

Normal tests

  • A normal test is when a user enters data that should be accepted in the program

  • An example would be a user entering their age as 16 into the age field of the program

Boundary tests

  • A boundary test is when a user enters data that is on the edge of what is acceptable 

  • An example would be a user entering their age as 12 or 18 into the age field of the program

  • Another example of a boundary test would be the numbers 11 or 19, even though they are outside of the accepted range

Erroneous tests

  • An erroneous test is when a user enters data that is the wrong data type

  • An example would be a user entering their age as "F" into the age field of the program

Invalid tests

  • An invalid test is when a user enters data that is the right data type but it is outside of what is accepted

  • An example would be a user entering their age as 67 into the age field of the program

Selecting Suitable Test Data

How do you select and justify suitable test data?

  • The first step when selecting suitable test data is to determine what type of input is expected from a user

  • In the example table below, a user is expected to enter a number between 12 and 18

  • Suitable checks include

    • The numbers between 12 and 18

    • Numbers outside of this range

    • Incorrect data types

  • Examples of each the the above have been summarised in the table below

A test result table with columns: "Type of Test," "Input," and "Expected Output." Results include Normal, Boundary, Erroneous, and Invalid inputs with Accepted or Rejected outputs.

Worked Example

SME Electronics is an online shop which sells electronic items.
The following flowchart shows an algorithm used to calculate the price of an item when they have a sale.

screenshot-2024-02-28-at-15-08-49
  1. Complete the following test plan for the algorithm [4]

Price Input

Test Type

Expected Price Output

50

Normal

 

100

 

 

150

 

 

200

Boundary

 

FFF

 

 

Answer

  • Marked in pairs

  • 1 mark per two correct cells

A table with three columns: Price Input, Test Type, and Expected Price Output. Rows represent test cases with various price inputs and expected outputs.

Last updated:

You've read 0 of your 5 free revision notes this week

Sign up now. It’s free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

James Woodhouse

Author: James Woodhouse

Expertise: Computer Science

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.

Lucy Kirkham

Author: Lucy Kirkham

Expertise: Head of STEM

Lucy has been a passionate Maths teacher for over 12 years, teaching maths across the UK and abroad helping to engage, interest and develop confidence in the subject at all levels.Working as a Head of Department and then Director of Maths, Lucy has advised schools and academy trusts in both Scotland and the East Midlands, where her role was to support and coach teachers to improve Maths teaching for all.