← All Journeys

ACARA Digital Technologies Years 9–10 — Testing and Validating Programs

Proving a program works by testing it properly.

Modules (84)

1 What it means to validate an algorithm or program 2 Test cases: input, expected output, actual output 3 Working out the expected output before you run the code 4 Choosing a range of test data 5 Normal test data 6 Boundary test values 7 Abnormal test data 8 Extreme data compared with boundary data 9 Suggesting test data for a range check 10 Constructing test data for validation checks 11 Suggesting test data for length, presence and format checks 12 Edge cases with lists and strings 13 Testing compound conditions with and, or, not 14 Choosing test data for an algorithm 15 Test coverage of branches and loops 16 Dry run of an algorithm 17 Trace Tables 18 Setting up the variable columns of a trace table 19 Tracing assignments and arithmetic 20 Tracing an IF statement 21 Tracing a FOR loop 22 Tracing WHILE and REPEAT loops 23 Tracing counting and totalling 24 Tracing nested loops 25 Tracing a program that calls a function 26 Truth tables for AND, OR and NOT 27 Tracing a flowchart with test values 28 Completing a full trace table for a dry run 29 Checking a trace against the real program output 30 Comparison Operators 31 Boolean Logic 32 If Statements 33 elif Statements 34 range() 35 While Loops 36 Lists – Creation 37 Lists – Indexing 38 Functions – Defining 39 Functions – Return Values 40 Type Conversion 41 Counters and totals in a Python loop 42 Tuples – Basics 43 Tuples – Operations 44 Existence checking in code 45 Type checking in code 46 Range checking in code 47 Error Handling – try/except basics 48 Input validation with a while loop 49 Combining validation checks in a validation function 50 Test table layout 51 Recording actual results and a pass or fail verdict 52 Writing a test plan from requirements 53 Writing test cases before the code 54 Testing a Python program with test cases 55 Testing a program that uses input() 56 Storing test cases as a list of tuples 57 Looping through test cases and printing PASS or FAIL 58 Testing a function with assert 59 Testing decimal results with round() 60 Testing that invalid input is rejected 61 Testing one module in isolation 62 Judging whether a set of test cases is enough 63 Checking a solution against the requirements 64 Writing a test report conclusion 65 Finding errors in an algorithm 66 Reading an error message and traceback 67 Runtime errors in Python 68 Runtime error: index out of range 69 Runtime error: type mismatch 70 Runtime error: divide by zero 71 Logic errors in Python 72 Error: wrong relational operator 73 Error: wrong loop bounds 74 Error: variable not set to zero first 75 Using a trace table to find an error 76 Debugging with print() 77 Debugging a program with print() and trace tables 78 Setting a breakpoint 79 Stepping through code and watching variables 80 Commenting out code to isolate a bug 81 Suggesting a correction 82 Recording corrections in a testing table 83 Retesting everything after a fix 84 Modifying an existing program

Smaller journeys, one per content description

The same modules, split up so a class can take just the content description it's working on.

15
ACARA 9-10 Digital Technologies: Test cases and choosing test data — AC9TDI10P05, AC9TDI10P06 Students learn what it means to validate a program and how to design test cases using normal, boundary, invalid and edge-case data that cover every branch and loop.
14
ACARA 9-10 Digital Technologies: Tracing algorithms by hand — AC9TDI10P05, AC9TDI10P06 Students use trace tables, flowcharts and dry runs to follow sequences, selection, loops and function calls and predict the output before running the code.
14
ACARA 9-10 Digital Technologies: Python skills refresher for testing — AC9TDI10P07, AC9TDI10P09 Students revise the Python building blocks (conditions, loops, lists, functions, type conversion and tuples) that they need to write and test programs.
6
ACARA 9-10 Digital Technologies: Writing input validation in Python — AC9TDI10P07, AC9TDI10P09 Students write existence, type and range checks, handle errors with try/except and combine them into reusable validation functions that keep bad data out of a program.
15
ACARA 9-10 Digital Technologies: Test tables, test plans and Python test harnesses — AC9TDI10P05, AC9TDI10P06 Students plan and record tests in test tables, automate them in Python with tuples, loops and assert, and judge whether their testing is enough and report a conclusion.
20
ACARA 9-10 Digital Technologies: Debugging and retesting programs — AC9TDI10P05, AC9TDI10P06, AC9TDI10P07, AC9TDI10P09 Students find and fix runtime and logic errors using error messages, trace tables, print statements and breakpoints, then retest the fix and modify programs safely.

Printables for this journey

Every module above has its own free printable worksheet with an answer key. These crosswords and word searches cover the same terms:

✎
Python Crossword: Control Flow (Modules 11–20) 10 clues · Type Conversion, Comparison Operators, Boolean Logic, If Statements and more
✎
Python Crossword: Functions (Modules 21–30) 10 clues · range(), Error Handling – try/except basics, break and continue, Functions – Defining and more
✎
Python Crossword: Data Structures (Modules 31–40) 10 clues · String Methods (upper, lower, replace…), String Formatting (.format()), Lists – Creation, Lists – Indexing and more
✎
Python Crossword: Advanced (Modules 51–63) 10 clues · OOP – Methods, OOP – String Representation (__str__), OOP – Practical Application, OOP – Class Variables vs Instance Variables and more
🔎
Python Word Search: Getting Started and Control Flow (Modules 1–20) 22 words to find · print() function, input() function, Comments, Variables and more
🔎
Python Word Search: Functions and Data Structures (Modules 21–40) 20 words to find · range(), Error Handling – try/except basics, break and continue, Functions – Defining and more
🔎
Python Word Search: Advanced (Modules 41–63) 20 words to find · Sets – Operations, Nested Lists, Lists + Dictionaries, File Operations – Open and more
✎
VCE Pseudocode Crossword: if-then-else block to Reading and tracing complex pseudocode (Modules 11–28) 10 clues · if-then-else block, else if: chained selection, for loop: for i from 1 to n, Nested for loops and more
🔎
VCE Pseudocode Word Search: What is Pseudocode to Reading and tracing complex pseudocode (Modules 1–28) 20 words to find · What is Pseudocode, Pseudocode Writing Conventions, Variable Assignment: x <- value, input keyword and more
✎
Years 5–6 Creating Digital Solutions Crossword: Building visual programs and Evaluating digital solutions and their impact (Modules 61–74) 10 clues · Using a variable as a counter in a loop, Decisions inside loops in a visual program, Building a button with 'when this sprite clicked', Switching screens with backdrops and show/hide and more
🔎
Years 5–6 Creating Digital Solutions Word Search: Designing user interfaces to Evaluating digital solutions and their impact (Modules 41–74) 20 words to find · Communicating a design to others, Evaluating an interface design, Modifying an interface design, The visual programming editor: stage, sprites and scripts and more
✎
VCE Software Development U3O1 Crossword: Requirements and design tools to Naming conventions and internal documentation (Modules 10–47) 10 clues · Data dictionary, Writing a data dictionary entry, Designing classes with a class diagram, Object descriptions and more
✎
VCE Software Development U3O1 Crossword: Data sources and files to Graphical user interfaces (Modules 114–124) 10 clues · Reading an XML file with ElementTree, Validation: why data is checked on entry, Types of validation check, Existence checking in code and more
✎
VCE Software Development U3O1 Crossword: Searching and sorting algorithms and Errors and debugging (Modules 156–166) 10 clues · Comparing searching and sorting algorithms, Applying an algorithm to a task, Logic errors in Python, Runtime errors in Python and more
✎
VCE Software Development U3O1 Crossword: Errors and debugging and Testing modules (Modules 168–177) 10 clues · Debugging a program with print() and trace tables, Setting a breakpoint, Stepping through code and watching variables, Tracing nested loops and more
✎
VCE Software Development U3O1 Crossword: Testing modules and Artificial intelligence in programming (Modules 178–193) 10 clues · Testing one module in isolation, Modifying an existing program, Emerging trend: AI code generation tools, Writing a prompt to generate code and more
🔎
VCE Software Development U3O1 Word Search: Requirements and design tools to Pseudocode (Modules 10–71) 21 words to find · Data dictionary, Writing a data dictionary entry, Designing classes with a class diagram, Object descriptions and more
🔎
VCE Software Development U3O1 Word Search: Data sources and files to Object-oriented programming (Modules 114–141) 20 words to find · Reading an XML file with ElementTree, Validation: why data is checked on entry, Types of validation check, Existence checking in code and more
🔎
VCE Software Development U3O1 Word Search: Object-oriented programming to Errors and debugging (Modules 142–166) 20 words to find · OOP principle: inheritance, Calling the parent __init__ with super(), Linear search in Python, Binary search in Python and more
🔎
VCE Software Development U3O1 Word Search: Errors and debugging to Artificial intelligence in programming (Modules 168–193) 20 words to find · Debugging a program with print() and trace tables, Setting a breakpoint, Stepping through code and watching variables, Tracing nested loops and more
✎
VCE Software Development U4O1 Crossword: Code repositories, APIs, libraries and AI assistants to Beta testing (Modules 125–171) 10 clues · Keeping API keys secure, Validation versus verification, Alpha testing, Commenting out code to isolate a bug and more
🔎
VCE Software Development U4O1 Word Search: Code repositories, APIs, libraries and AI assistants to Beta testing (Modules 115–171) 22 words to find · Branches and merging, What a library is: standard vs third-party, Random numbers with import random, The math module and more
✎
Years 7–8 Creating Digital Solutions Crossword: Designing and tracing algorithms to Evaluating digital solutions (Modules 50–125) 10 clues · Choosing test data for an algorithm, Storyboarding a user's path through a system, Comparing alternative designs with a criteria table, Running a Python program and more
🔎
Years 7–8 Creating Digital Solutions Word Search: Defining and decomposing problems to Evaluating digital solutions (Modules 3–125) 21 words to find · Interviewing a user, Decomposing a problem into sub-problems, Decomposition diagrams, Non-functional requirements and more
✎
Years 9–10 Creating Digital Solutions Crossword: Defining and decomposing problems to Evaluating solutions, impact and innovation (Modules 6–132) 10 clues · Decomposing a problem into a hierarchy chart, Prioritising requirements, Truth tables for AND, OR and NOT, Logical operators in a flowchart decision and more
🔎
Years 9–10 Creating Digital Solutions Word Search: Defining and decomposing problems to Evaluating solutions, impact and innovation (Modules 6–132) 20 words to find · Decomposing a problem into a hierarchy chart, Prioritising requirements, Truth tables for AND, OR and NOT, Logical operators in a flowchart decision and more
✎
IGCSE Computer Science Paper 2 Crossword: 7a Program Development Life Cycle (Modules 71–82) 10 clues · Normal test data, Abnormal test data, Extreme test data, Boundary test data and more
✎
IGCSE Computer Science Paper 2 Crossword: 7a Program Development Life Cycle (Modules 83–92) 10 clues · Recording user prompts and INPUT values in a trace table, Tracing assignments and arithmetic, Tracing an IF statement, Tracing a FOR loop and more
✎
IGCSE Computer Science Paper 2 Crossword: 7c Pseudocode and Flowcharts (Modules 232–241) 10 clues · Explaining a flowchart, Finding errors in an algorithm, Error: = used instead of ←, Error: missing ENDIF, NEXT, ENDWHILE or UNTIL and more
✎
IGCSE Computer Science Paper 2 Crossword: 7c Pseudocode and Flowcharts (Modules 242–253) 10 clues · Error: wrong data type or undeclared variable, Errors in a flowchart, Suggesting a correction, Totalling in pseudocode and more
✎
IGCSE Computer Science Paper 2 Crossword: 8.1c Procedures and Functions (Modules 419–428) 10 clues · Common mistakes when calling procedures and functions, Choosing a procedure or a function for a task, Local variables, Global variables and more
🔎
IGCSE Computer Science Paper 2 Word Search: 7a Program Development Life Cycle (Modules 71–92) 21 words to find · Normal test data, Abnormal test data, Extreme test data, Boundary test data and more
🔎
IGCSE Computer Science Paper 2 Word Search: 7c Pseudocode and Flowcharts (Modules 232–253) 21 words to find · Explaining a flowchart, Finding errors in an algorithm, Error: = used instead of ←, Error: missing ENDIF, NEXT, ENDWHILE or UNTIL and more
🔎
IGCSE Computer Science Paper 2 Word Search: 8.1c Procedures and Functions (Modules 419–438) 21 words to find · Common mistakes when calling procedures and functions, Choosing a procedure or a function for a task, Local variables, Global variables and more
✎
Crossword: Algorithms with Logical Operators and Testing and Validating Programs (Modules 536–590) 10 clues · Choosing test data for compound conditions, What it means to validate an algorithm or program, Working out the expected output before you run the code, Edge cases with lists and strings and more
✎
Crossword: Testing and Validating Programs (Modules 591–622) 10 clues · Writing a test plan from requirements, Writing test cases before the code, Testing a program that uses input(), Storing test cases as a list of tuples and more
🔎
Word Search: Algorithms with Logical Operators and Testing and Validating Programs (Modules 536–622) 20 words to find · Choosing test data for compound conditions, What it means to validate an algorithm or program, Working out the expected output before you run the code, Edge cases with lists and strings and more

Frequently Asked Questions

Are these worksheets free?

Yes — every worksheet and its answer key is free to view, download, and print, with no account required to access any individual module.

Do I need an account?

No account is needed to view or print a worksheet. A free teacher account adds extras like assigning modules to a class and tracking progress automatically — it takes under three minutes to set up and doesn't need a credit card.

What year level is this for?

This curriculum is aligned to the Australian Curriculum (ACARA) and Victorian Curriculum, spanning roughly Years 3 to 10 — from first sequencing and variables through to object-oriented programming and advanced data structures. Start wherever matches your class's current level; each module builds on the last.

Can I print them?

Yes — every module has a one-click Print Worksheet button that generates a printable page with the practice questions and a full answer key.

Is this aligned to a curriculum?

Yes — the module sequence is mapped to the Australian Curriculum (ACARA) and Victorian Curriculum, and a class's progress is reported back against those curriculum bands (e.g. ACARA Years 5–6 sequencing and iteration, Years 7–8 functions and data structures), not just a generic difficulty scale.

Can students use this without a teacher?

Yes — students can start any module and practice directly, no class or account required. Joining a teacher's class with a class code adds progress tracking, class badges, and live Sprints, but isn't needed to work through the worksheets or modules solo.

Do I need to know ACARA Digital Technologies Years 9–10 myself to teach this?

No — every module comes with a full worked answer key, and Cloodit tracks who's stuck automatically, so you don't need to solve each exercise yourself before assigning it or be able to debug a student's work line by line.

Add to class →
For Teachers

Add this journey to your class and track every student in real time.

Create a free teacher account →

No credit card. No setup fee. Make a class and invite students in under three minutes.

For Students

Start this journey on Cloodit — track progress, earn badges, and play live sprints with your class.

Start Learning Free →

Have a class code?