1/33
Vocabulary flashcards covering defensive design, authentication, validation types, maintainability, testing types, test data categories, and test planning based on OCR GCSE Computer Science J277 section 2.3.
Defensive design
Designing a program to anticipate misuse, invalid input and other likely problems.
Anticipating misuse
Considering ways a user might accidentally or deliberately use a program incorrectly and designing for them.
Authentication
Checking that a user is who they claim to be before granting access.
Simple authentication example
Checking a supplied username and password against valid credentials.
Input validation
Checking that input meets specified rules before it is accepted.
Purpose of validation
To reject unsuitable input and reduce errors caused by invalid data.
Validation correctness limitation
Validation checks whether data is sensible or follows rules, not whether it is factually correct.
Range check
Checks that a value lies between permitted minimum and maximum values.
Length check
Checks that input contains an allowed number of characters.
Type check
Checks that input is of the required data type.
Presence check
Checks that required data has been entered rather than left blank.
Format check
Checks that input follows a required pattern or structure.
Maintainability
How easily code can be understood, changed, tested and repaired.
Subprograms and maintainability
Subprograms improve maintainability by splitting a program into manageable reusable sections that can be understood and changed separately.
Naming conventions
Consistent rules for choosing meaningful names for variables, constants and subprograms.
Meaningful identifiers
Names used for variables, constants, and subprograms that make the purpose of data and code easier to understand.
Indentation
Using consistent spacing to show the structure of code clearly.
Commenting
Adding explanatory text to code that is ignored when the program runs.
Purpose of comments
They help programmers understand the purpose or reasoning of code, making maintenance easier.
Purpose of testing
To find errors and check that a program behaves as intended for suitable and unsuitable inputs.
Iterative testing
Testing parts/modules of a program during development.
Final or terminal testing
Testing the completed program at the end of development.
Syntax error
An error that breaks the grammatical rules of the programming language and prevents correct translation or execution.
Logic error
An error in the program's logic that allows it to run but produces an unexpected or incorrect result.
Normal test data
Valid data that should be accepted and processed normally.
Boundary test data
Data of the correct type at the edge of the valid range.
Invalid test data
Data of the correct data type that falls outside the permitted range or rules and should be rejected.
Erroneous test data
Data of the wrong data type and therefore should be rejected.
Purpose of using different types of test data
To check that a program accepts valid inputs, handles edge cases and rejects unsuitable inputs.
Test plan
A structured record of test data, expected outcomes and, when testing is carried out, actual outcomes/results.
Good test plan contents
Suitable test data, the reason/type of each test, expected results and actual results when executed.
Refining an algorithm
Changing an algorithm after testing or review to correct problems or improve the solution.
Process after a test exposes a problem
Identify the cause, correct/refine the algorithm or program, then test again.
OCR 2.3 practical skills required
Ability to design validation/simple authentication, select suitable test data, and create or complete a test plan.