SLIDE 1
CSZone.co.uk
Click to advance · Arrow keys also work
AQA 8525 · Section 3.8 · Software Development

Development
& Testing

Iterative Development · Testing Strategies · Test Data Types · Debugging

CSZoneAQA GCSE Computer Science 8525
Iterative Development

Build, Test, Refine, Repeat

Iterative development means building a program in cycles: design a small part → implement it → test it → refine it → move on. This approach allows problems to be caught early and requirements to evolve. Used in Agile methodology.
Contrast with waterfall — complete each phase fully before moving to the next (analyse → design → build → test → deploy)
Iterative is more flexible; waterfall is more structured
Types of Test Data

Testing with Different Inputs

TypeDefinitionExample (age 0–120)
NormalValid data the system should accept25, 40, 70
BoundaryValues at the edges of valid range0, 1, 119, 120
ErroneousInvalid data the system should reject-1, 121, "hello", 5.5
Exam tip:AQA expects you to know all three types and give appropriate examples for a given scenario.
Debugging and Error Types

Identifying and Fixing Problems

Syntax error — code that breaks the grammar rules of the language. Caught by the translator before running. e.g. missing colon, misspelled keyword.
Logic error — program runs but gives wrong results. Hardest to find — no error message. e.g. using < instead of <=
Runtime error — program crashes during execution. e.g. division by zero, accessing index out of range
Debugging tools: breakpoints (pause execution), trace tables (track variable values), print statements
Exam Practice

Have a go at this question

AQA-style question
A program asks for a number between 1 and 10. Give one example of normal, boundary, and erroneous test data for this input.
3 marks
Normal: 5 (valid data in range) [1]
Boundary: 1 or 10 (at the edge of valid range) [1]
Erroneous: 0, 11, "cat", or -3 (invalid data that should be rejected) [1]
Key Takeaways

What to Remember

Iterative development: build in cycles — design, implement, test, refine
Test data: Normal (valid) · Boundary (edge) · Erroneous (invalid)
Errors: Syntax (grammar) · Logic (wrong output) · Runtime (crash)
Logic errors are the hardest to find — no error message is given