This mini-lesson covers AQA 4.13 โ Systematic approach to problem solving: the five stages every serious piece of software goes through, and the testing discipline that stops it shipping broken.
Work through each screen, answer the questions as you go (some are recall, some are calculations you must actually work out) and collect โญ stars. Press Start when you're ready.
The stage where you find out what the problem actually is โ before a single line of code is written.
The most expensive mistake in software is made here. A requirement misunderstood in analysis and discovered after release costs orders of magnitude more to fix than one caught on day one. Every requirement must be written so that it can be tested โ "the system should be fast" is not a requirement; "search must return within 2 seconds for 10 000 records" is.
Design decides how the solution will work โ still without writing production code.
Why write the test plan before the code: if you design the tests afterwards, you unconsciously write tests your code already passes. Deriving them from the requirements instead means they test what the system was supposed to do.
| Type | What it means |
|---|---|
| Black-box | Test from the outside: given this input, is the output correct? The tester ignores (or cannot see) the code. |
| White-box | Test from the inside: examine the code and design tests that exercise every path and every branch. |
| Unit | Test each subroutine in isolation. |
| Integration | Test that the modules work together. |
| Alpha | Testing in-house, by the developers and their own testers. |
| Beta | Testing by real users outside the company, on real hardware, in real conditions. |
Test data must cover three categories:
Boundaries are where bugs live. Almost every off-by-one error hides at the edge of a range โ a < written where a <= was meant. Testing 50 in a 1โ100 range proves nothing. Testing 0, 1, 100 and 101 finds the bug.
Implementation is writing, translating and installing the code โ with meaningful identifiers, comments, and a modular structure that mirrors the design. Then comes installation: direct changeover, parallel running, phased, or pilot.
Evaluation judges the finished system against the original requirements specification โ not against how proud you feel of it. It asks:
The mark-scheme trap: "it works and I am pleased with it" scores nothing. Evaluation is evidence-based comparison against a specification, requirement by requirement, including the ones you failed to meet. Naming a shortcoming honestly, and explaining how you would fix it, earns marks. Pretending there are none does not.
Two diagrams do most of the work in this topic.
A data flow diagram (DFD) models how data moves through a system. It uses just four symbols: external entities (sources and sinks of data), processes (which transform it), data stores (where it rests), and data flows (arrows). A DFD deliberately says nothing about timing, hardware or control flow โ it is a pure abstraction of the movement of information.
A structure chart models the hierarchy of the solution: which module calls which, and what parameters pass between them. It is the visual form of top-down decomposition.
Why draw the current system first? Because you cannot improve what you do not understand. Modelling the existing process almost always exposes duplicated data entry, a step nobody can justify, or a data store two departments each believe they own.
The five stages are not always walked through once, in order. Two alternatives matter:
The classic failure mode: a strictly linear process discovers a misunderstood requirement during testing โ the most expensive possible moment. Iteration exists to bring that discovery forward. The cost is a moving target for scope, which is why the requirements must still be written down.
Software is not finished when it ships. Maintenance is usually the largest part of a system's total cost, and it comes in four kinds:
Why maintainability is designed in, not added on: meaningful identifiers, modular subroutines, comments and clear documentation cost a little now and save enormously later โ because the person maintaining this code in three years will almost certainly not be you, and will have no idea what you were thinking.
Tap the activity, then tap the stage it belongs to.
Tap an item on the left, then its partner on the right.
Analysis: problem definition ยท fact finding ยท requirements (functional and non-functional) ยท feasibility ยท data flow diagrams
Design: decomposition ยท algorithms ยท data structures ยท file and interface design ยท the test plan
Implementation: modular code, meaningful identifiers, comments; then installation
Testing: black-box vs white-box ยท unit and integration ยท alpha (in-house) and beta (real users)
Test data: normal ยท boundary (0, 1, 100, 101) ยท erroneous โ boundaries are where the bugs live
Evaluation: evidence-based comparison against the requirements specification, limitations included
That is the whole of AQA 4.13. Press Finish to see your score.
You've worked through Systematic approach to problem solving for AQA A-level Computer Science (7517). ๐
Your stars: 0 / 0
Next: test yourself in the Evaluate stage Confidence Quiz, then lock it in with Verify.