NivaarExam PrepOfficial exam papers ↗

19-Soft-A6 Software Quality Assurance · Undated paper

Question 2 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 2 (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) — CMM and its relation to software quality. The Capability Maturity Model describes five levels of organizational process maturity that an organization progresses through, each level defined by a set of Key Process Areas it must have institutionalized:

LevelNameProcess characteristic
1InitialAd hoc, even chaotic; success depends on individual heroics, not a repeatable process.
2RepeatableBasic project management (planning, tracking, requirements management) is in place, so past successes can be repeated on similar projects.
3DefinedThe software process is documented, standardized, and integrated into a organization-wide standard process used consistently across projects.
4ManagedDetailed process and product quality measures are collected and used to quantitatively control the process.
5OptimizingContinuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas/technologies.

CMM relates directly to software quality because it is process quality used as a predictor of product quality: an organization operating at Level 1 has no institutionalized mechanism to catch or prevent defects consistently across projects, so its product quality is unpredictable project to project, whereas a Level 4/5 organization measures defect data quantitatively and feeds it back to reduce defect injection rates over time. Each successive level effectively adds the process discipline (planning → standardization → measurement → optimization) needed to make quality outcomes repeatable rather than accidental, which is why CMM level is often used as a proxy for an organization's ability to reliably deliver quality software, particularly by customers selecting a contractor/vendor.

Part (b) — the Waterfall V-lifecycle model, and how it achieves quality. The V-model is a variant of the classic waterfall model that makes verification and validation explicit by pairing every development (specification) phase on the descending left leg of the "V" with a corresponding testing phase on the ascending right leg, joined at the bottom by coding. Each test phase verifies the software against the artifact produced by its paired development phase, rather than testing being deferred to a single phase at the very end.

RequirementsSpecificationAcceptanceTestingacceptance-tests againstSystemDesignSystemTestingvalidates againstArchitectureDesignIntegrationTestingvalidates againstModuleDesignUnitTestingvalidates againstCodingDevelopment phase (left leg)Corresponding test phase (right leg)dashed = the test phase verifies/validates against that development artifact
Fig. Q2(b) — the V-model. Each development phase on the left leg is paired with the test phase on the right leg that verifies/validates against it: requirements ↔ acceptance testing, system design ↔ system testing, architecture design ↔ integration testing, module design ↔ unit testing. Coding sits at the vertex, the point where the descending specification work becomes the ascending verification work.

High quality is achieved through the V-model in three ways. First, test planning starts early: because each right-leg phase is planned against its paired left-leg artifact, the acceptance test plan can be drafted as soon as requirements are baselined, long before any code exists, so test design defects (an untestable or ambiguous requirement) surface while they are still cheap to fix. Second, each level of testing targets the defects that level's paired phase is prone to — unit testing catches module-design/coding defects, integration testing catches architecture-design (interface) defects, system testing catches system-design defects, and acceptance testing catches requirements-level defects (is this what the customer actually needed) — so no single class of defect is left uncovered by a generic "test everything at the end" approach. Third, the explicit horizontal pairing forces traceability: a defect found during, say, integration testing points directly back to the architecture-design artifact it is meant to verify, making root-cause analysis and fix faster than an undifferentiated end-of-project test phase would allow.