Revise Computing
Revision notesQuestionsFor schools
Log inStart revising free
Revision notesQuestionsFor schoolsLog in
GCSE Computer Science/Paper 2/Defensive Design

Input validation

2.3.1 Defensive Design

Practise exam questions

Defensive Design — Note 2 of 3

Practical experience of designing input validation and simple authentication (e.g. username and password)

What you need to know

Input validation checks that data entered by a user is reasonable and appropriate before the program processes it. Common types include presence checks (data was entered), range checks (value falls within limits), length checks (correct number of characters), type checks (correct data type), and format checks (correct pattern).

What to know

  • Validation does NOT check if data is CORRECT, only that it is reasonable and in the right format.
  • Validation is usually implemented using loops (while) that keep asking until valid data is entered.
  • The presence, range, length and look-up examples check the input once. To keep asking until the input is valid, put the check in a while loop.

Key terms

Exam tipCommon mistake

Range check

Ensures a value falls within an acceptable range, e.g. nights >= 1 AND nights <= 5.

  • Exam tip: In range checks, you must compare the variable in BOTH parts: if h >= 40 AND h <= 180. NOT: if h >= 40 AND <= 180 (missing variable reference).
  • Exam tip: Name the validation type AND explain HOW it applies to the scenario. E.g. 'Range check — make sure the player's answer is between 2 and 20 inclusive'.
Presence check

Ensures data has been entered and is not blank (e.g. firstname != "").

Length check

Ensures the input has the correct number of characters, e.g. code.length == 3.

Type check

A validation check that ensures data is of the correct data type (e.g. integer, string).

Format check

A validation check that ensures data follows a specific pattern or structure (e.g. DD/MM/YYYY).

Look-up check

A validation check that compares input data against a predefined list of valid values.

  • An existence check is the same idea as a look-up check: the input must match one of a list of allowed values.

Exam technique

  • Tip:When checking MULTIPLE validations, all must pass for ALLOWED and any failure gives NOT ALLOWED. Use a Boolean flag (e.g. valid = True) and set to False if any check fails.
  • Tip:Use >= and <= in code, NOT the maths symbols ≥ or ≤ (not available on a keyboard). Also =< is WRONG — must be <=.
  • Mistake:if room == "basic" or "premium" is WRONG. You must compare the variable each time: if room == "basic" or room == "premium".
  • Mistake:if room != "basic" or room != "premium" is ALWAYS True (any value will fail one test). Use AND: if room != "basic" AND room != "premium".
  • Tip:Validation only applies to USER inputs. Do not validate randomly generated values.

Code examples

Input validation examples
python
# Range check
num = int(input("Enter a number 1-10: "))
while num < 1 or num > 10:
    print("Out of range!")
    num = int(input("Enter a number 1-10: "))

# Presence check
name = input("Enter your name: ")
while name == "":
    name = input("Name cannot be blank: ")

# Length check
password = input("Enter password (min 8 chars): ")
while len(password) < 8:
    password = input("Too short! Try again: ")
Presence, range, length and look-up checks
python
# Presence check: something must be entered
name = input("Enter your name: ")
if name == "":
    print("You must enter a name.")

# Range check: value must be inside the allowed limits
age = int(input("Enter your age: "))
if age >= 0 and age <= 120:
    print("Valid age")

# Length check: minimum number of characters
password = input("Enter password: ")
if len(password) < 8:
    print("Too short")

# Look-up (existence) check: value must be in a list
items = ["pen", "pencil", "ruler"]
item = input("Enter an item: ")
found = False
for i in range(len(items)):
    if items[i] == item:
        found = True
if not found:
    print("Item not recognised")

Ready to test yourself?

Practise 2.3.1 questions
← Previous noteAnticipating misuse, Authentication2.3.1 Defensive DesignNext note →Use of sub programs; Naming conventions; Indentation; Commenting2.3.1 Defensive Design

Back to Defensive Design

Revise another OCR GCSE topic: Testing

Defensive Design

Note 2 of 3

  1. 1Anticipating misuse, Authentication
  2. 2Input validation
  3. 3Use of sub programs; Naming conventions; Indentation; Commenting
Topic overview

© 2026 Revise Computing · revisecomputing.co.uk

Privacy noticeTermsContact

Revise Computing is an independent revision resource. It is not affiliated with, or endorsed by, OCR (Oxford Cambridge and RSA Examinations).