Question 28 of 28: Boundary Value Analysis for a Price Input
Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
Notes on this paper
98-Comp-B11 Advanced Software Design — National Exams, May 2016. 3 hours, closed book exam with one aid sheet allowed (written on both sides), no calculator permitted. The paper is organized into five parts, and candidates were instructed to answer any five (5) questions in Part I, any three (3) in Part II, any four (4) in Part III, any two (2) in Part IV, and any five (5) in Part V — only the first questions answered, in each part, as they appear in the answer book are marked. All questions carry equal weight, so the 19 questions actually marked (5+3+4+2+5 of 28) each count for 100/19 ≈ 5.26% of the paper. All 28 questions are answered below for completeness.
Reference texts: Sommerville, Software Engineering (10th ed., Pearson) — software processes, requirements engineering, agile methods, design principles, dependability; Pressman, Software Engineering: A Practitioner's Approach (9th ed.) — supplementary process and quality coverage; Gamma, Helm, Johnson & Vlissides (GoF), Design Patterns: Elements of Reusable Object-Oriented Software — creational/structural/behavioural pattern catalogue (Singleton, Proxy, Template Method, Observer, etc.); Sebesta, Concepts of Programming Languages (12th ed.) — polymorphism, dynamic binding, inheritance and language-level object semantics; Bertrand Meyer, Object-Oriented Software Construction — design by contract, preconditions/postconditions/invariants, the open–closed principle; Barbara Liskov's 1987 substitutability paper for Question 11; Rogers, Sharp & Preece, Interaction Design, and Nielsen, Usability Engineering, for Question 21's HMI-specific non-functional requirements; Myers, The Art of Software Testing, for Question 28's boundary value analysis.
PART I — General Principles (answer any 5 of 7)
Question 28: Boundary Value Analysis for a Price Input (Part V)
Since E is missing a data point regardless of what that value would have been, it cannot be evaluated as a complete test set and is excluded from consideration below on that basis alone, independent of its other three values.
Approach. The valid input domain is the closed interval [$10.00, $1,200.00]. Boundary Value Analysis (BVA) is the standard technique for choosing a small, high-yield set of test inputs for a bounded numeric input: rather than sampling arbitrary interior points, BVA specifically targets the boundary itself and its immediate neighbourhood, since off-by-one errors in range-checking code (> instead of ≥, < instead of ≤) manifest exactly at a boundary and nowhere else. A complete BVA set for a single bounded range covers five distinct classes: a value just BELOW the minimum (invalid), the minimum itself (valid boundary), a NOMINAL interior value (valid), the maximum itself (valid boundary), and a value just ABOVE the maximum (invalid).
Classifying each option's values against the valid range [$10.00, $1,200.00]
Both boundaries tested, with an invalid neighbour on each side
D
5.00, 600.00, 1300.00, 1500.00
invalid-low, nominal, invalid-high (x2)
Neither boundary tested; redundant second invalid-high
Selection: Option C. Only C exercises all five BVA classes: 5.12 (just below the minimum, must be rejected), 10.00 (the minimum itself, must be accepted — this is exactly the value an off-by-one >-instead-of-≥ bug would wrongly reject), 500.00 (an ordinary interior value, confirming the "obviously valid" case also works), 1,200.00 (the maximum itself, must be accepted — the value an off-by-one <-instead-of-≤ bug would wrongly reject), and 1,500.30 (just above the maximum, must be rejected). Every other option leaves at least one boundary untested: A tests neither boundary and both its invalid values sit well below the minimum rather than adjacent to it; B tests only the upper boundary and supplies no invalid-high case at all; D tests neither exact boundary value and wastes a test on a second, redundant invalid-high value that adds no new coverage.