NivaarExam PrepOfficial exam papers ↗

19-Soft-A6 Software Quality Assurance · May 2015

Question 3 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 2015 (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, configuration management); ISO/IEC 25010 SQuaRE (software quality characteristics); ISO/IEC 12207 (life-cycle/configuration-management processes).

Question 3 (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) — main testing objectives (Glen Myers's classic framing, adopted by Pressman): testing is a process of executing a program with the intent of finding errors — not of showing the program works. A good test case is one with a high probability of finding an as-yet-undiscovered error, and a successful test is one that uncovers such an error. Testing cannot prove the absence of defects, only their presence; it increases confidence that the software does what it is intended to do, within the bounds actually exercised.

Part (b) — three principles for designing effective test cases.

  1. All test cases should be traceable to requirements. Every requirement should have at least one test case that would fail if that requirement were not met, so the most severe defects (from the customer's point of view) are the ones caught first.
  2. Tests should be planned long before testing begins. Test-case design can start as soon as the requirements model is complete (or even during it), which finds specification defects earlier and avoids designing tests around implementation quirks.
  3. The Pareto principle applies to testing. Roughly 80% of the errors uncovered during testing will likely be traceable to about 20% of the program modules; test-case design should isolate and heavily target those suspect modules once they're identified.

Part (c) — characteristics of testability (things that make software easy to test):