Evidence, testing and evaluation - Computer Science IB Study Notes

Overview
# Evidence, Testing and Evaluation - Summary This lesson covers the critical processes of gathering evidence, conducting systematic testing, and evaluating computational solutions against specified criteria. Students learn to distinguish between different testing methodologies (alpha/beta, black-box/white-box), trace tables, and test data types (normal, boundary, erroneous), while developing structured evaluation techniques that assess solutions' effectiveness, efficiency, and usability. These concepts are essential for both Paper 1 (case study analysis) and Paper 2 (where students must justify testing strategies and evaluate algorithmic solutions), and form the foundation for the internal assessment where thorough testing documentation and critical evaluation comprise significant marking criteria.
Core Concepts & Theory
Evidence in Computer Science refers to documented proof that a solution meets its specified requirements and functions correctly. This includes test plans, test data, screenshots, user feedback, and evaluation reports.
Testing is the systematic process of executing a program with the intent to find errors and verify functionality. Key testing types include:
• Alpha testing: Internal testing by developers before release • Beta testing: External testing by selected users in real-world conditions • Acceptance testing: Final validation that software meets user requirements • White-box testing: Testing internal structures/workings (code-based) • Black-box testing: Testing functionality without knowing internal code
Test data categories are crucial: • Normal data: Valid inputs within expected range (e.g., age = 25) • Boundary data: Values at the limits of acceptable ranges (e.g., age = 0, 120) • Erroneous data: Invalid inputs that should be rejected (e.g., age = -5, "abc")
Evaluation is the critical analysis of how well a solution meets its objectives, considering efficiency, usability, maintainability, and reliability. The evaluation compares actual outcomes against success criteria defined in the requirements specification.
Cambridge Key Term: A test plan is a structured document specifying what will be tested, what test data will be used, expected outcomes, and actual outcomes.
Iterative refinement means using test results and evaluation feedback to improve the solution through multiple development cycles—a fundamental principle in agile methodologies.
Detailed Explanation with Real-World Examples
Think of testing like a quality control process in manufacturing. Just as a car manufacturer tests vehicles under various conditions (normal driving, extreme weather, crash scenarios), software developers must test programs with different data types.
Real-world application: When Instagram develops a new feature, they follow rigorous testing protocols:
- Alpha testing: Engineers test the photo filter internally, checking it works with various image formats (JPG, PNG, HEIC)
- Beta testing: Selected users worldwide test the feature, revealing issues like slow loading on older phones or cultural appropriateness concerns
- Boundary testing: Images at 0KB (empty file) and maximum file size limits are tested
- Erroneous data: Non-image files (PDFs, videos) are submitted to ensure proper error handling
Evaluation in context: After launch, Instagram evaluates success using metrics: • Efficiency: Does the filter apply in under 2 seconds? • Usability: Can 90% of users apply it without help? • Reliability: Does it crash less than 0.01% of the time?
Medical device analogy: A blood glucose monitor undergoes extensive testing—normal readings (4-7 mmol/L), boundaries (3.0, 20.0), and erroneous inputs (negative values). The consequences of poor testing here could be life-threatening, highlighting why systematic testing isn't optional.
Mnemonic for test data: N.B.E. = Normal, Boundary, Erroneous—test all three categories every time!
Worked Examples & Step-by-Step Solutions
**Example 1**: Create a test plan for a program that validates exam marks (0-100) **Solution**: | Test Type | Test Data | Expected Outcome | Actual Outcome | Pass/Fail | |-----------|-----------|------------------|----------------|------------| | Normal | 50 | Accepted, "Valid mark" | Accepted, "V...
Unlock 3 More Sections
Sign up free to access the complete notes, key concepts, and exam tips for this topic.
No credit card required · Free forever
Key Concepts
- Evidence: Information collected to show that a program works as intended, or to identify problems.
- Testing: The process of running a program with various inputs to check if it behaves correctly and meets its requirements.
- Evaluation: The process of reviewing test results and evidence to decide if a program is ready, or if it needs further development or fixes.
- Bug: An error or flaw in a computer program that causes it to produce an incorrect or unexpected result.
- +6 more (sign up to view)
Exam Tips
- →When asked to 'evaluate' something, remember to provide both strengths and weaknesses, backed up by evidence.
- →For 'testing', always mention specific test cases (inputs and expected outputs) that would reveal if the program works correctly.
- +3 more tips (sign up)
More Computer Science Notes