Testing vs Validation vs Evaluation

Confusing these three terms in the C1-2 writing test or C1-3 interview drops marks instantly — they belong to the same PSM stage (Development) except Evaluation, which is its own stage entirely.


flowchart TB
    subgraph DEV["PSM Stage 3 — Development"]
        direction LR
        T["**Testing**<br/>──────────<br/>Does the program<br/>work correctly?<br/><br/>Example: enter 25<br/>in age field →<br/>correct output"]
        V["**Validation**<br/>──────────<br/>Is the input<br/>reasonable?<br/><br/>Example: reject −3<br/>as an age before<br/>processing starts"]
    end
    subgraph EVAL["PSM Stage 4 — Evaluation"]
        direction LR
        E["**Evaluation**<br/>──────────<br/>Does the solution<br/>meet its criteria?<br/><br/>Example: does the<br/>finished app satisfy<br/>all requirements?"]
    end
    DEV --> EVAL

Testing

Testing checks that the program runs correctly — given an input, does it produce the expected output? You write test cases before or during coding and run them as you build. Testing catches bugs: wrong calculations, broken logic, features that don't behave as designed. It happens inside the Development stage.

Example: You enter 25 into an age field and expect the program to calculate a result based on that age. If the output matches what you designed, the test passes. If the program crashes or returns the wrong value, testing has found a bug to fix.

Validation

Validation checks that data entered by the user is reasonable or acceptable before the program processes it. It runs at the point of input — not after — and prevents garbage data from reaching the rest of the program. Like testing, validation is part of the Development stage.

Example: The same age field should reject −3 — that is not a valid age. Validation code checks for this (e.g. if age < 0: display error) and stops the bad value from being used in any calculation. The program hasn't "crashed" without validation; it just silently produces a wrong answer.

Key distinction: testing checks whether the program works; validation checks whether the data is acceptable.

Evaluation

Evaluation judges whether the completed solution meets the evaluation criteria set during the Design stage and addresses the original problem. It is its own PSM stage — Stage 4 — separate from Development. You are not checking individual inputs or features here; you are assessing the solution as a whole against measurable standards.

Example: "Does the finished app allow 90% of beta testers to complete onboarding in under 2 minutes?" That criterion was written in Design. Evaluation collects evidence (surveys, observation, usage data) and checks whether the criterion was met.

Common mistake: saying your solution "works" as part of Evaluation. Whether it works is testing. Evaluation asks whether it meets user needs and requirements.


Quick reference

Term PSM stage What it checks Example
Testing Development Program runs correctly Entering 25 in age field → correct output
Validation Development Input is reasonable/acceptable Rejecting −3 as an age before processing
Evaluation Evaluation Solution meets evaluation criteria "Does it satisfy all functional requirements?"

Why it matters at validation

The C1-2 writing test and C1-3 interview both probe PSM knowledge directly. A question like "which Development activities does your project plan include?" expects you to name validation, testing, and documentation separately — not lump them together. At the C1-3 interview, you may be asked to point to evidence of each activity in your GitHub Projects board. If your plan only shows "testing" with no separate validation tasks, that signals a gap. At Stage 4, markers also check that you are measuring against your Design-stage criteria, not just describing whether the app runs.

See C013-Annotate-Project-Plan.md for guidance on annotating your plan so each PSM activity is visible to the interviewer.


See also


← Back to VCE Software Development Hub

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9