Moving from manual trace tables (10.4.13) to using an actual programming environment's built-in debugging tools.
Using a debugger's facilities:
| Tool | Purpose |
|---|---|
| Breakpoint | A marker that pauses program execution at a specific line, so you can inspect the current state |
| Watch | Lets you monitor the current value of a specific variable as the program runs |
| Trace / step-through | Lets you execute the program one line at a time, observing exactly how control flow and variable values change |
Trace tables remain useful for planning and manually verifying logic before/without a debugger, and can also be used to evaluate a program's execution efficiency (e.g. counting how many iterations a loop actually performs).
Identifying and correcting the three error types (syntax, runtime, logical — see 10.4.13) using these debugging tools.
The value of generated test data: automatically generating large volumes of realistic test data helps uncover bugs that a small, manually-chosen set of test cases might miss.
Test using standard, extreme and abnormal data (see 10.4.13) as your systematic testing strategy.
💡 Exam Tip
Breakpoints + watches are the fastest way to find a logical error in a working practical exam program — set a breakpoint just before the suspicious calculation and watch the relevant variables to see exactly where the value goes wrong.