← ACARA Digital Technologies Years 9–10

Writing a test plan from requirements

A list, made before testing, of normal, boundary and invalid test cases for each requirement, with the expected result for every test.

Understanding Writing a test plan from requirements in ACARA Digital Technologies Years 9–10

What it does: All three test types are listed for the same requirement (R2), and each has an expected result. That is the full coverage a test plan aims for. A test plan is made before testing. It says what you will test and what you expect to happen. Invalid data breaks the rule, so the expected result is a rejection. A 10-character password is normal data. Testing only normal values can miss errors at the edges and with data that is not allowed. A plan does not prove the program works. It organises the testing so important cases are not forgotten. Boundary tests sit on the edge of the range: 13 is the lowest valid value and 12 is the first invalid one. The plan records both with expected results.

Common mistakes: A test plan must be finished before testing starts. The flag should be True so that testing only begins once the plan exists. 100 is inside the allowed range (it is a boundary value), so it is not invalid. An invalid test for R1 must be outside the range, such as 101.

Class: _____________________  ·  Name: _____________________  ·  Date: _________

Free printable worksheet with full answer key — or add this module to a class and your students practise it interactively.

This module's key terms are also in a printable crossword (Modules 591–622) and word search (Modules 536–622).

Take this worksheet further — free with Cloodit

Each concept is reinforced from every angle — learned, then applied, then tested.

Learning
Duo
Which describes a test plan?
A list of bugs you found after running the program, written once testing is finishedA list of test cases for each requirement, with expected results, written before testing starts
Matches
R3 | name = 'Sam' | normal | (no expected result)
↓
The test case has no expected result, so there is nothing to compare the actual result with. Every test in a plan needs an expected result.
Applying
Meanings
Term
test plan
Meaning
A list, made before testing, of normal, boundary and invalid test cases for each requirement, with the expected result for every test.
Practice
R1: Age must be 13 to 18
Testing
Gaps
test = ("", "normal", 15, "accept")
Check Answer
Spots
1plan_done = False
2if plan_done:

Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.

The 'Cosmic Dragon' badge — Orbit Master, one of Cloodit's 106 collectible badges
Students earn collectable badges

Over 100 of them, across seven natural biomes.

Study Buddy
Students build a real study resource

Turns their work into revision material ready for Flash Cards and Exam study.

Diamond Dash — one of Cloodit's live, competitive Sprint games
Students lock in with Sprints

Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.

A Cloodit certificate of achievement, ready to personalise and print
Custom printable certificates

Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.

Quick Questions

1. Which describes a test plan?
A. A list of test cases for each requirement, with expected results, written before testing starts ✓
B. A list of bugs you found after running the program, written once testing is finished
A test plan is made before testing. It says what you will test and what you expect to happen.
2. Requirement: 'The program accepts ages from 13 to 18.' Which test case should a test plan include for this requirement?
A. Test 13 and 18 as boundary values, with the expected result 'accepted' ✓
B. Test only the age 15 because it is in the middle of the range
A good plan covers normal, boundary and invalid data for each requirement, not just one normal value.
3. What should every row in a test plan be linked to?
A. A requirement that the test is checking ✓
B. The line number where the code was written
Linking each test to a requirement shows which requirements have been checked and which have been missed.
4. Requirement: 'Reject a password shorter than 8 characters.' Which is an invalid test case?
A. A password with 10 characters, expected result: accepted
B. A password with 5 characters, expected result: rejected ✓
Invalid data breaks the rule, so the expected result is a rejection. A 10-character password is normal data.
5. When should you write the expected result for a test in a test plan?
A. After running the program, by copying what it displays
B. Before running the program ✓
If you copy the output, a wrong program will look correct. Decide the expected result from the requirement first.

Match the Pairs

Requirement R1: Age must be 13 to 18 Test 1: age = 15, expected: accepted → A normal test case linked to requirement R1, with its expected result written in the plan before testing
R1 | 13 | boundary | accepted R1 | 12 | boundary | rejected → Two boundary test cases for requirement R1, just inside and just outside the limit, each with an expected result
A good test plan covers each requirement with a normal, a boundary and an invalid test case → R2 | score = 50 | normal | accepted R2 | score = 100 | boundary | accepted R2 | score = -5 | invalid | rejected
A test plan is written before testing, so the expected result is decided before the code is run → Expected: 'Pass' (written in the plan) Actual: ______ (filled in after running)
R3 | name = 'Sam' | normal | (no expected result) → The test case has no expected result, so there is nothing to compare the actual result with. Every test in a plan needs an expected result.
Test 4 | age = 20 | normal | accepted → The test is not linked to a requirement, so nobody can tell which requirement it checks or whether all requirements are covered.

Key Term

test plan
A list, made before testing, of normal, boundary and invalid test cases for each requirement, with the expected result for every test.

Fill in the Blanks

1. # R1: age must be 13 to 18 test = ("R1", "normal", 15, "accept")
Hint: Type the requirement ID that this test links back to
2. # R1: age must be 13 to 18 test = ("R1", "boundary", 18, "accept")
Hint: Type the test type for a value at the very edge of the allowed range
3. # R1: age must be 13 to 18 test = ("R1", "invalid", "abc", "reject")
Hint: Type the test type for data that the program should reject
4. # Plan results before testing starts header = ("req", "type", "input", "expected")
Hint: Type the column name for the result predicted before the code is run
5. # R3: password needs 8 or more characters test = ("R3", "boundary", "a" * 8, "accept")
Hint: Type the minimum number of characters that requirement R3 allows

Spot the Error

Question 1
A plan_done = False
B if plan_done:
C print("Start testing")
Line A — A test plan must be finished before testing starts. The flag should be True so that testing only begins once the plan exists.
Question 2
A # R1: score 0 to 100
B normal = 50
C boundary = 100
D invalid = 100
Line D — 100 is inside the allowed range (it is a boundary value), so it is not invalid. An invalid test for R1 must be outside the range, such as 101.
Question 3
A plan = [
B "R1,normal,50,accept",
C "R1,boundary,0,accept",
D "R1,invalid,-1,accept",
E ]
Line D — The expected result for an invalid test must be reject. -1 is outside the 0 to 100 range, so the plan should say reject, not accept.
Question 4
A reqs = 2
B kinds = 3
C total = reqs + kinds
D print(total)
Line C — Each requirement needs a normal, boundary and invalid test, so the total number of tests is requirements multiplied by kinds (2 * 3 = 6), not added.
Question 5
A req = "Password 8+ chars"
B normal = "sunshine99"
C boundary = "abcdefg"
D invalid = "abc"
Line C — The boundary for 'at least 8 characters' is exactly 8 characters. 'abcdefg' has only 7, so it is an invalid test. The boundary should be 'abcdefgh'.

Student with a class code? Join your class →