NivaarExam PrepOfficial exam papers ↗

19-Soft-A6 Software Quality Assurance · May 2016

Question 6 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 2016 (3 hours, open book, 8 questions of equal value; 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, cyclomatic complexity, basis path testing); Sommerville, Software Engineering, 10th ed. (software process, agile practice, configuration management); ISO/IEC 25010 SQuaRE (software quality characteristics); ISO/IEC 12207 (life-cycle/configuration-management processes).

Question 6 (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) — OO equivalents of unit and integration testing. In an object-oriented system, the smallest meaningfully-testable unit is not usually a single method in isolation but the class (or cluster of tightly-collaborating classes), because a method's behaviour is entangled with the object's state (encapsulated attributes), inheritance, and polymorphism — testing a method with no regard for object state is often meaningless. So OO "unit" testing becomes class testing: testing all methods and attributes together, across the states an object can legitimately be in, including any inherited/overridden behaviour. OO "integration" testing becomes cluster testing (testing a small group of collaborating classes together) followed by use-based / thread-based testing, which integrates classes in the order their collaborations actually occur in a use case, rather than the top-down/bottom-up control-hierarchy order used for procedural code (there is no single "main" control module to integrate downward from in an OO design).

Part (b) — quality and usability. Usability is one of the quality characteristics that make up overall software quality (ISO/IEC 25010), alongside functionality, reliability, maintainability, efficiency and portability — so raising usability (clearer UI, better error recovery, lower learning curve) directly raises the software's measured quality, and conversely a functionally correct but hard-to-use system is, by the standard's own definition, LOWER quality even though it "works." The relationship also runs practically: poor usability drives real-world defect reports (users misusing a confusing interface and reporting the result as a "bug"), so improving usability reduces the field-defect rate that other quality metrics (such as customer-reported problems) measure.

Part (c) — HR management's effect on software quality. Human resource management affects software quality through several concrete channels: