23 – Testing Programs

23 – Testing Programs

Whilst a program is being developed and before it is released, it is important that you ensure your code is functioning correctly. This part of the development process is known as testing and takes a number of forms during development.


There are a number of different types of testing that you may need to undertake to ensure that your code is bug free:

  • Black Box
  • White Box
  • Alpha
  • Beta
  • User Acceptance

Alpha Testing

During development, you will need to ensure that your code does not have any syntax or logic errors. Most of these can be found by simply running your code as you write the syntax. However, not all are as obvious, so you can help this process by testing your code thoroughly when you think that you have solved the problem.

Different exam boards describe this kind of testing using various terms. For revision purposes, I have added these below:

  • AQA : Alpha Testing
  • CIE : Alpha Testing
  • OCR : Iterative Testing

Generally, programmers will use a test table to record the evidence that they have tested a program. These use formal titles and are used by professional developers, known as a Test Log to help identify bugs in programs.

In these test tables, test data is divided into three main types: Standard (data is correct), Erroneous / Incorrect (data is incorrect and would cause an error if not validated), Extreme / Boundary (data is correct, but just inside a range check).

Final / Terminal Testing

Different exam boards describe this kind of testing using various terms. For revision purposes, I have added these below:

  • AQA : Divided into Beta & User Acceptance Testing
  • CIE : Final Testing
  • OCR : Terminal Testing

Beta Testing

Beta testing encourages a small section of early users to try out the system before it is officially released. This encourages interest in the new system, but also allows users to identify any bugs that the programmers haven’t caught yet. As part of a beta program, users are often given free or early access in exchange for bug reports.

User Acceptance Testing

When you create a product for a client, you will have a set of project requirements. This is a list of agreed functions that your program will perform in order for the project to be a success. User acceptance testing is where the client tests your final product to ensure that it meets the agreed criteria.

It is important to mention that this testing is not whether the client is happy with the product (although that helps!), but if the product meets the agreed success criteria.

Task 1

Download the scribblit notes below and make your own revision notes using the resources above.

Task 2 – Exam Style Questions

Download the exam style questions below to test out your understanding so far.