OCR · GCSE · Computer Science

    Course version: J277 · Version from Sept 2022

    Testing: The purpose of testing

    Testing is a vital part of software development designed to ensure a program functions as intended and meets its original requirements.

    Checked against the OCR J277 specification on .

    • Point 1 of 5
    • 4 key terms

    Study notes

    From the checked teaching notes for this specification point.

    The idea

    Testing is a vital part of software development designed to ensure a program functions as intended and meets its original requirements. Its primary purpose is to uncover logic errors and defects before the software is released to users. Testing also verifies that a program is robust, meaning it can handle unexpected actions without crashing. Two main approaches exist: iterative testing occurs during development to check individual modules, while terminal testing evaluates the finished program. For example, testing a calculator app ensures it adds correctly (functionality) and does not crash when dividing by zero (robustness). Exhaustive testing is usually impossible, so testing aims to build confidence in the software's reliability.

    What earns the marks

    • States that testing aims to find logic errors and defects before a program is released to users.
    • Explains that testing confirms the software meets its original requirements and functions as intended.
    • Describes how testing ensures robustness by verifying the program can handle unexpected actions without crashing.
    • Distinguishes between iterative testing (during development) and terminal testing (at the end of development).
    • Explains that exhaustive testing is usually impossible, so testing builds confidence and reduces risk rather than proving a program is completely bug-free.

    Common mistakes and how to put them right

    • Confusing testing with debugging.

      Put it right: Testing finds and reports a defect, while debugging is the process of locating and correcting the cause.

    • Assuming testing can prove a program is completely bug-free.

      Put it right: Exhaustive testing is usually impossible, so testing only builds confidence and reduces risk.

    • Believing testing only happens at the end of development.

      Put it right: Iterative testing occurs throughout the development process to catch errors early.

    Exam tips

    • If a question asks why testing is important, refer to finding defects, meeting requirements and ensuring robustness rather than just writing 'to make sure it works'.
    • Be prepared to define and distinguish between iterative testing and terminal testing in exam scenarios.

    Try the lesson

    The start of the Testing: The purpose of testing lesson, made from checked teaching notes for this specification point.

    Have a go first

    What is the main purpose of testing a program?

    Listen

    Testing is a vital part of software development designed to ensure a program functions as intended and meets its original requirements. Its primary purpose is to uncover logic errors and defects before the software is released to users. Testing also verifies that a program is robust, meaning it can handle unexpected actions without crashing. Two main approaches exist: iterative testing occurs during development to check individual modules, while terminal testing evaluates the finished program. For example, testing a calculator app ensures it adds correctly (functionality) and does not crash when dividing by zero (robustness). Exhaustive testing is usually impossible, so testing aims to build confidence in the software's reliability. A strong answer earns marks for these points. States that testing aims to find logic errors and defects before a program is released to users. Explains that testing confirms the software meets its original requirements and functions as intended. Describes how testing ensures robustness by verifying the program can handle unexpected actions without crashing. Distinguishes between iterative testing (during development) and terminal testing (at the end of development). A common slip: Confusing testing with debugging. Instead, testing finds and reports a defect, while debugging is the process of locating and correcting the cause. Exam tip: If a question asks why testing is important, refer to finding defects, meeting requirements and ensuring robustness rather than just writing 'to make sure it works'.

    See it

    A top-down flowchart. The top node is Testing. Six arrows lead from Testing to: Find logic errors and defects before release; Confirm program meets original requirements and functions as intended; Ensure robustness: handle unexpected actions without crashing; Iterative testing during development; Terminal testing on finished program; Exhaustive testing usually impossible. A final arrow leads from Exhaustive testing usually impossible to Builds confidence and reduces risk.
    Shows the purposes of testing, the two approaches of iterative and terminal testing, and that exhaustive testing is usually impossible so testing builds confidence and reduces risk.

    Key words

    Say what each word means before you turn the card.

    Finding defects

    Try answering aloud or in your head before turning the card.

    Meeting requirements

    Try answering aloud or in your head before turning the card.

    Robustness

    Try answering aloud or in your head before turning the card.

    Iterative and terminal testing

    Try answering aloud or in your head before turning the card.

    See every definition
    Finding defects
    Testing aims to uncover logic errors and defects before the software is released to users.
    Meeting requirements
    Testing confirms that a program functions as intended and meets its original requirements.
    Robustness
    Testing verifies that a program can handle unexpected actions without crashing.
    Iterative and terminal testing
    Iterative testing occurs during development to check individual modules, while terminal testing evaluates the finished program.

    Label the diagram

    Some boxes have lost their names. Pick the right name for each number.

    The diagram again, with 3 boxes numbered instead of named. A top-down flowchart. The top node is Testing. Six arrows lead from Testing to: Find logic errors and defects before release; Confirm program meets original requirements and functions as intended; Ensure robustness: handle unexpected actions without crashing; Iterative testing during development; Terminal testing on finished program; Exhaustive testing usually impossible. A final arrow leads from Exhaustive testing usually impossible to Builds confidence and reduces risk.
    • 1Box 1

    • 2Box 2

    • 3Box 3

    0 of 3 labelled

    There is more to this lesson

    The full lesson goes on to check your understanding and help you earn the marks. Create a free account to carry on, with your progress saved.

    Carry on with the full lesson

    A week of Premium from your first lesson · Then the free plan continues · No card, no charge

    Test your understanding of Testing: The purpose of testing

    Active recall beats re-reading. Take an instant quiz now to test what you’ve learned and lock it into long-term memory.

    Take topic quiz

    A week of Premium from your first lesson · Then the free plan continues · No card, no charge