NivaarExam PrepOfficial exam papers ↗

19-Soft-A6 Software Quality Assurance · Undated paper

Question 1 of 8

Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)

Notes on this paper

04-Soft-A6, Software Quality Assurance — National Exams, May 2019 (3 hours, open book, 8 questions of equal value; FIVE constitute a complete exam paper, and the first five as they appear in the answer book are marked — all eight are solved here as a study resource).

Reference texts: Pressman, Software Engineering: A Practitioner's Approach, 9th ed. (SQA planning, review, testing strategies/techniques, software metrics, reliability & safety); Sommerville, Software Engineering, 10th ed. (software process, configuration management, project monitoring); ISO/IEC 25010 SQuaRE and its predecessor ISO/IEC 9126 (software quality characteristics); ISO/IEC 12207 (life-cycle/configuration-management processes).

Question 1 (10 marks)

Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.

Part (a) — the six ISO 9126 quality characteristics.

CharacteristicWhat it measures
FunctionalityWhether the software provides the functions that satisfy stated and implied needs when used under specified conditions — suitability, accuracy, interoperability, security, and compliance with functional standards.
ReliabilityThe capability of the software to maintain a specified level of performance over a stated period — maturity (freedom from failure), fault tolerance, and recoverability after a failure.
UsabilityThe effort needed to learn, operate, prepare input for, and interpret output from the software — understandability, learnability, operability, and attractiveness to the end user.
EfficiencyThe relationship between the level of performance delivered and the resources consumed (CPU time, memory, I/O, network) under stated conditions — time behaviour and resource utilization.
MaintainabilityThe effort needed to make specified modifications — analysability (diagnosing deficiencies), changeability, stability (avoiding unexpected side effects of a change), and testability.
PortabilityThe ability of the software to be transferred from one environment to another — adaptability, installability, co-existence with other software, and replaceability of a component.

Each characteristic is further decomposed into sub-characteristics in the full ISO 9126 model, and each sub-characteristic can be assessed with internal metrics (static analysis of the product) or external metrics (measured during execution/use), which is what makes the model usable as a practical quality-planning checklist rather than just a list of adjectives.

Part (b) — software quality control. Software Quality Control (SQC) is the set of activities that verify the delivered work products themselves — requirements documents, designs, code, test results — actually meet their defined quality requirements, using techniques such as walkthroughs, formal technical reviews/inspections, and testing at all levels (unit, integration, system, acceptance). SQC includes: defining measurable acceptance/exit criteria for each work product before it is checked; applying review and testing techniques appropriate to the product's stage in the lifecycle; recording and tracking every defect found to closure; and statistically analysing defect data (defect density, defect trends by phase) to judge whether the product is converging on an acceptable quality level before release. SQC is product-focused and reactive in the sense that it finds problems already present in a work product, which is what distinguishes it from Software Quality Assurance (part c and Question 2).

Part (c) — inspections vs. testing. A software inspection is a static, manual technique: a small trained team reads through a work product (most often source code, but also requirements or design documents) line by line against a checklist of known defect types, without executing the software at all. Testing is a dynamic technique: the software is actually executed with chosen input data and its observed behaviour is compared against the expected behaviour. The two are complementary rather than substitutes — inspections are effective earlier in the lifecycle (they can be applied to a requirements or design document that cannot yet be "run"), tend to find a different class of defect (missing logic branches, standards violations, unclear specifications) than testing does, and are typically cheaper per defect found because no environment or test data is needed; testing, by contrast, is the only technique that can confirm the software's actual run-time behaviour, including timing, resource use, and interactions with real external systems that a static read-through cannot reveal.

← Paper overview