NivaarExam PrepOfficial exam papers ↗

19-Soft-A6 Software Quality Assurance · May 2015

Question 4 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 4 (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) — strategy vs. technique. A testing strategy is the roadmap that describes the steps to be conducted as part of testing, when those steps are planned, and how much effort/time/resources will be required — it incorporates test planning, test-case design, execution, and resulting data collection/evaluation, and it moves outward from unit → integration → validation → system testing. A testing technique (or method) is a specific procedure used to design individual test cases within one of those steps — e.g. equivalence partitioning, boundary value analysis, or basis path testing are techniques applied inside a unit-testing strategy. In short: strategy = the "when/what order/how much" plan across the whole project; technique = the "how do I derive this specific test case" method used at a given step.

Part (b) — integration testing approaches.

Part (c) — regression testing in agile development. Yes — it is not just reasonable, it is essential. Agile relies on very short iterations with continuous, incremental changes to a growing code base; without regression testing after every change, there is no way to know that new/changed functionality has not broken previously-working features. Agile teams make this practical by automating the regression suite (unit tests run in continuous integration on every commit/build) so the otherwise-prohibitive cost of manually re-running a growing test suite every iteration is avoided; frameworks such as JUnit and CI pipelines exist specifically to make this "test early, test often, test automatically" loop affordable within a one-to-four-week sprint.