AQA 8525 3.2.11: Robust and secure programming
The free BugBot lessons that teach this point, a robot to try it on, and the past-paper questions that test it.
What it covers
Every programmer, on every day of their life, makes mistakes and reads error messages. Getting comfortable with that early is the most useful thing in this module. An error message is not the computer telling you off. It is the computer telling you where to look.
- Read the whole message
- Syntax errors: Python cannot read it
- Runtime errors: it crashes while running
- Logic errors: no message at all
- How to fix things
Or do it in the simulator, with tasks that mark themselves
Lessons that teach it
- F1.4 Errors: syntax, runtime and logic Programming basics
Reading an error message, and the three kinds of error by their exam names. - F6.1 Defensive design and validation Robust programs
Anticipating misuse; presence, type, range, length, format and look-up checks. - F6.2 Authentication Robust programs
Usernames and passwords, limiting attempts, and stronger ways to prove who someone is. - F6.3 Testing and test data Robust programs
Iterative and final testing; normal, boundary, invalid and erroneous data; test plans in code. - F6.4 Debugging logic errors Robust programs
Finding the mistake that gives no message: watching, printing, stepping and common bugs.
Try it on a robot
The task from F1.4 Errors: syntax, runtime and logic, running here. Change the program and press Run.
Past paper questions on this
Real exam questions that test this, each worked through with a program you can run.
- AQA 8525 June 2025 Paper 1, Question 4: Validate a name by length until it is accepted, test data, and a username flowchart 13 marks
- AQA 8525 June 2025 Paper 1, Question 9: Which of five algorithms correctly total an array 2 marks
- AQA 8525 June 2024 Paper 1, Question 3: random.randrange, a test plan, and a syntax and a logic error 6 marks
- AQA 8525 June 2024 Paper 1, Question 11: Authenticate against two username and password pairs until valid 7 marks
- AQA 8525 June 2023 Paper 1, Question 4: Trace a Python function with three sets of inputs, then make it robust 4 marks
- AQA 8525 June 2023 Paper 1, Question 6: Fill the gaps in a login routine 4 marks
- AQA 8525 June 2023 Paper 1, Question 10: Trace nested FOR loops over a list of scores and find the error 6 marks
- AQA 8525 June 2023 Paper 1, Question 11: Normal, erroneous and boundary test data, and a logic error 5 marks
- AQA 8525 June 2023 Paper 1, Question 13: Validate a grid reference until it is correct 6 marks
- AQA 8525 June 2022 Paper 1, Question 5: A syntax error and a logic error in a random number program 5 marks
- AQA 8525 June 2022 Paper 1, Question 13.1: Keep asking until a number is between 1 and 100 4 marks
- AQA 8525 Sample Paper 1, Question 15: Fix a loop that prints odd numbers so that it works for negative input 4 marks
The specification is AQA's own document; this page says which of our lessons teach point 3.2.11 and is not endorsed by the board.