ELEC5618 Software Quality Engineering
ELEC5618 Overview
- University of Sydney
- S1 2027
- 12 chapters
- Computer Science
ELEC5618 Software Quality Engineering is the University of Sydney's postgraduate (5000-level, 6-credit-point) unit in the School of Electrical and Computer Engineering, coordinated by Dr Huaming Chen.
- Assessed by Final Examination 50% · Assignment 1 9% · Assignment 2 16% · Assignment 3 (Targeted project) 15% · Mid-term Quiz 5% + 1 more
- Key terms Error → Fault → Failure, Verification vs Validation, QA vs QC, Cyclomatic complexity V(G)
- How to prepare Treat ELEC5618 as a standards-and-technique unit and rehearse it weekly alongside the group project…
- Most asked Where can I find past exam papers / practice for ELEC5618?
How ELEC5618 is assessed
| Component | Weight | Format |
|---|---|---|
| Final Examination | 50% | 2-hour closed-book exam in the formal examination period; covers all material including lectures and assignments |
| Assignment 1 | 9% | Individual write-up from the group project; due Week 5 |
| Assignment 2 | 16% | Individual write-up from the group project; due Week 9 |
| Assignment 3 (Targeted project) | 15% | Targeted project across Weeks 10-13; video submission with Q&A in Week 13 (due Week 12) |
| Mid-term Quiz | 5% | 1-hour quiz; question released in Week 7 |
| Weekly report check | 5% | Milestone/report checks at Weeks 3, 5, 7, 9 and 11 |
What ELEC5618 covers
ELEC5618 runs across 13 weeks of this unit of study, moving from software-quality foundations and planning (IEEE 730, ISO/IEC 25010) through requirements specification, verification and validation, testing techniques and test plans, testing tools, and quality engineering in agile and ML/AI settings.
Half the mark is the 2-hour closed-book final exam in the formal examination period; the rest is the group-project coursework, a mid-term quiz and weekly report checks. The chapters below follow the real teaching order so your revision matches how the unit was taught.
Foundations of Software Quality Engineering
quality characteristics, risk, test-strategy model · (Week 1)Week 1 of University of Sydney ELEC5618 Software Quality Engineering sets the vocabulary the rest of the unit is examined in: the error → fault → failure chain, the Heuristic Test Strategy Model (James Bach), risk as probability × impact, and a first pass over the ISO/IEC 25010 product-quality characteristics.
- The defect chain: error (human mistake) → fault (defect in the artifact) → failure (system cannot perform its required function); all three sit under 'defect'
- Heuristic Test Strategy Model (Bach): project environment · product elements · quality criteria · test techniques → perceived quality
- Test Development Life Cycle (TDLC): a management side (test planning) and an engineering side (test design)
- Risk management: risk = probability × impact (cause → threat → probability; effect → consequence → impact)
- Risk activities: assess risk → plan mitigation → mitigate risk
- ISO/IEC 25010 first exposure — the product-quality characteristics as the '-ilities' a product must satisfy
Software Quality in a Company
software failures, error causes, People CMM · (Week 2)Week 2 of University of Sydney ELEC5618 Software Quality Engineering looks at how quality is organised inside a real company: classic software failures, the nine-way classification of software error causes, the cost of quality, and the People Capability Maturity Model (P-CMM) for developing the workforce that builds quality software.
- Defining software quality: IEEE 730 (meets established requirements representing stakeholder needs) vs ISO 9000 (inherent characteristics fulfil requirements); fit-for-use vs conformance
- Classification of software error causes (nine causes: faulty requirements, communication failures, deliberate deviations, logical design, coding, non-compliance with documentation, inadequate testing, UI/procedure, documentation errors)
- Quality-factor models: McCall (product operation / revision / transition) and ISO/IEC 25010
- Cost of quality = conformance (prevention + appraisal) + nonconformance (internal + external failure), plus measurement/test-equipment cost
- Process standards vs management standards (IEEE 730 / IEEE 1012 vs CMMI / SPICE)
- People CMM five maturity levels: Initial → Repeatable → Defined → Managed → Optimizing
Software Quality Planning, Assurance and Control
SQ Plan structure, IEEE 730, QA vs QC · (Week 3)Week 3 of University of Sydney ELEC5618 Software Quality Engineering separates the three quality activities — quality planning, quality assurance (QA) and quality control (QC) — and lays out the structure of a Software Quality Plan per IEEE 730-2014, with the ISO/IEC 25010 product-quality model and the SPICE / CMM / CMMI standards landscape as resources.
- Software quality management (SQM): quality planning, quality assurance, quality control as three sub-processes, aiming at a 'quality culture'
- QA = process-oriented (build quality in, evaluate processes, free of technical/managerial pressure) vs QC = product-oriented (check results conform, leads to V&V/testing)
- IEEE 730-2014: requirements for initiating, planning, controlling and executing SQA processes; purpose = justified confidence the product meets its requirements
- Structure of a Software Quality Plan: goals, organisation/roles, tasks with entry/exit criteria, defect-source analysis, prevention/detection methods, resources
- ISO/IEC 25010 product-quality characteristics with sub-characteristics (reliability, security, maintainability, etc.)
- Defect handling: prevention (remove root causes early) → reduction (inspections + testing) → containment (fault tolerance, N-version programming)
Software Requirement Specification and Use Cases
IEEE 830 SRS, use cases, state/activity · (Week 4)Week 4 of University of Sydney ELEC5618 Software Quality Engineering builds a Software Requirements Specification (SRS) to the IEEE 830 structure — functional and non-functional requirements, product perspective and quality attributes — and models behaviour with use cases, activity diagrams and state diagrams.
- Functional vs non-functional requirements: services for the user vs constraints (reliability, security, performance, usability, portability); requirements state WHAT not HOW
- The three SRS models: data model, functional/information-flow model, behavioural model
- IEEE 830 SRS structure: 1 Introduction · 2 Overall Description (product perspective, functions, users, constraints) · 3 Specific Requirements · 4 Supporting Information
- Characteristics of a good SRS: unambiguous, complete, verifiable, consistent, modifiable, traceable, usable
- Benefits of an SRS: baseline for V&V, basis for cost/schedule estimation, prevents mixing functional/non-functional requirements
- Use cases: an actor achieving a goal; template slots (goal, scope/level, pre-condition, success/failed end conditions, actors, trigger, steps)
Verification and Validation
V&V, static vs dynamic, inspections/reviews · (Week 5)Week 5 of University of Sydney ELEC5618 Software Quality Engineering separates verification ('are we building the product right?' — conform to spec) from validation ('are we building the right product?' — meet user needs) and places both across the whole lifecycle.
- Verification ('build the product right' — conforms to spec) vs Validation ('build the right product' — meets user needs); testing shows presence of errors not absence
- IEEE 1012 V&V across the lifecycle; independence (IV&V); integrity levels (major/moderate/low)
- Static verification (inspect without executing) vs dynamic verification (execute with test data)
- Fagan inspection: roles (author, moderator, reader, inspector, scribe) and stages (planning → overview → preparation → meeting → rework → follow-up)
- Inspection checklist fault classes: data, control, input/output, interface, storage-management, exception
- Automated static analysis: control-flow, data-use, interface, information-flow, path analysis; more valuable for weakly typed languages
Software Testing Techniques
defect vs validation testing, OO & integration · (Week 6)Week 6 of University of Sydney ELEC5618 Software Quality Engineering covers the core testing techniques: defect testing versus validation testing, black-box design (equivalence partitioning, boundary-value analysis) and white-box / path testing, integration strategies (top-down, bottom-up, big-bang, sandwich) and object-oriented class testing.
- Testing consumes ~40-50% of development effort; a good test targets undiscovered errors, a successful test uncovers one; exhaustive testing is impossible
- Component (unit) testing (developer's job) vs integration testing (independent team, from the system spec)
- Test data (inputs) vs test case (inputs + predicted outputs per the spec)
- Equivalence partitioning: partition inputs into classes where behaviour is equivalent; choose one case per partition
- Boundary-value analysis: test at partition boundaries {lo−1, lo, interior, hi, hi+1} where defects concentrate
- White-box / path testing: exercise all statements/branches; independent paths from the program flow graph
The Software Test Plan
test-plan contents, types of tests · (Week 7)Week 7 of University of Sydney ELEC5618 Software Quality Engineering assembles a software test plan: its scope, the items and features to be tested, the approach, pass/fail criteria, deliverables, environment and schedule, and the types of tests it coordinates (unit, integration, system, acceptance).
- Software Test Plan (STP): objectives, scope, approach and focus of the testing effort; should be organisation-wide and start alongside the requirements
- STP structure: scope of tests · testing environment · test details (per test) · test schedule
- IEEE 829 key contents (20 items): test items, features to/not to be tested, approach, item pass/fail criteria, suspension/resumption, deliverables, staffing, schedule, risks, approvals
- Types of tests: functional, integration, user/business acceptance (UAT), performance
- Test levels and the V-model: unit ↔ component design, integration ↔ architecture, system ↔ requirements, acceptance ↔ user needs
- Test-case template (10 elements): title, type, purpose, prerequisite, input data, steps, output (expected/actual), exit criteria, recommendations, notes
Tools for Testing: FSMs and Markov Chains
finite state machines, Markov chains, test tools · (Week 8)Week 8 of University of Sydney ELEC5618 Software Quality Engineering models program behaviour for testing with finite state machines (states, inputs, transitions, outputs; Moore vs Mealy) and uses Markov chains for statistical, usage-based testing — including deriving transition probabilities from product logs.
- Finite state machine elements: States (S), Inputs (I), Transitions (S × I → S), Outputs (O); the system is always in a current state and transitions are deterministic
- Moore machine (output depends on state only) vs Mealy machine (output depends on state and input)
- FSM representations: graphical (few states), state-transition table (many states), transition list (many states, few transitions)
- FSM vs control-flow graph: FSMs capture input-driven sequences and outputs; CFGs capture paths inside one function
- FSM fault types: state faults (missing/incorrect/extra) and transition faults (missing/incorrect/extra)
- Coverage: state coverage (each state reached) and transition coverage (each edge covered)
Software Quality Engineering in Agile Environments
agile SQE, agile vs plan-driven · (Week 9)Week 9 of University of Sydney ELEC5618 Software Quality Engineering positions quality engineering inside agile development: how quality is built-in rather than inspected at the end, the Agile Manifesto and its practices (TDD, CI/CD, pair programming, Definition of Done), the Agile Testing Quadrants, the Scrum framework, and the tension between agile speed and plan-driven assurance.
- How agile redefines QA: quality built-in not inspected at the end; early and continuous testing; quality a shared responsibility
- The Agile Manifesto's four values (individuals/interactions, working software, customer collaboration, responding to change) and the twelve principles
- Agile practices that support quality: TDD, pair programming, continuous integration, continuous delivery, refactoring, Definition of Done
- Test-Driven Development: write a failing test first, then code to pass it, in short cycles → high coverage
- Agile Testing Quadrants (Crispin & Gregory): Q1 unit/component, Q2 functional/story, Q3 exploratory/UAT, Q4 performance/security; 'Shift Left'
- Agile metrics: code coverage, defect leakage, lead/cycle time, DoD adherence; velocity is a planning metric NOT a quality metric
Quality Engineering for ML/AI Systems
guest lecture: SQE for ML/AI · (Week 10)Week 10 of University of Sydney ELEC5618 Software Quality Engineering is a guest lecture applying software-quality thinking to machine-learning and AI systems: why probabilistic model behaviour breaks classical testing assumptions, the eval pipeline and launch gates, what you can and cannot unit-test in an ML system, and the three-layer quality stack that adds ML gates on top of standard software engineering.
- Deterministic (same input → same output) vs probabilistic software (same input → a distribution of outputs); quality becomes multi-dimensional and conflicting
- Model quality dimensions: correctness/accuracy, robustness, fairness, latency/efficiency, safety, consistency; 'metrics are decisions'
- The eval pipeline: model → offline eval dataset → metrics → online A/B experiment → launch decision → continuous monitoring
- Offline eval-data concerns: source (labelled/synthetic/logs), train-eval contamination (leakage), statistical power, refresh cadence
- Online experiments: top-line metrics, guardrail metrics, slice-based metrics (by language/topic/user), resource cost; human eval when metrics can't capture a dimension
- What you CAN unit-test: the system around the model (input validation, output formatting, safety filters, API contracts, latency SLOs) — not the core inference
Designing an Agile Cycle & Process Improvement
weekly agile cycle, hybrid models, CMM/CMMI · (Week 11)Week 11 of University of Sydney ELEC5618 Software Quality Engineering designs a weekly agile cycle and reconciles agility with process maturity: hybrid models, the key considerations for adopting Agile alongside CMM/CMMI, and continuous process improvement using SPICE/CMMI.
- Designing a short (one-week) agile increment: users and developers together, minimal documentation, TDD, end-of-week demo and pair programming
- CMM/CMMI maturity levels: 1 Initial → 2 Repeatable → 3 Defined → 4 Managed → 5 Optimizing
- CMM idea: improve quality by gaining statistical control of processes; SCAMPI appraisal as a certification/marketing signal
- CMM criticisms: can reward paperwork over management, focuses on management processes not product quality, heavy documentation
- Agile vs CMM comparison: adaptability, documentation weight, small releases, pair programming, continuous integration
- Hybrid models: can Agile and CMM co-exist for safety-critical software (e.g. flight control)?
Exam Revision & Course Integration
Q&A, revision, case study 2 · (Week 13)Week 13 of University of Sydney ELEC5618 Software Quality Engineering pulls the whole unit together for the 2-hour closed-book final: it re-threads the exam-critical distinctions — QA vs QC, verification vs validation, defect vs validation testing — and the standards map (IEEE 730, IEEE 830, IEEE 1028, ISO/IEC 25010).
- Consolidated review threads: SQA standards classification (process vs management), the error → fault → failure chain and nine error causes, the three quality activities (planning / assurance / control)
- Verification 'building it right' (conforms to spec) vs validation 'building the right product' (meets user needs) — the single most-examined distinction
- QA (process-oriented, build quality in) vs QC (product-oriented, check quality out); defect testing (find defects) vs validation testing (show requirements are met)
- Component vs integration testing; test-case structure (data, expected result, reports); black-box vs white-box thinking
- Practice-exam question styles: write functional requirements under an ISO/IEC 25010 sub-characteristic; remove ambiguity from an NFR; apply P-CMM; static-flow fault classes; cyclomatic complexity V(G) = E − N + 2; test-management-tool reporting
- Standards quick-reference grid: IEEE 730 (SQA plan), IEEE 830 (SRS), IEEE 1028 (reviews), ISO/IEC 25010 (product quality), plus IEEE 829 / 1012 / ISO 29119 as supporting references
It teaches how software quality is engineered — not just tested — across the whole lifecycle: the vocabulary of quality (error → fault → failure, the Heuristic Test Strategy Model, risk = probability × impact), the standards that govern it (IEEE 730 for SQA plans, IEEE 830 for requirements specifications, IEEE 1028 for reviews, ISO/IEC 25010 for the product-quality model), verification and validation, software testing techniques (black-box and white-box, integration, object-oriented class testing), the software test plan, testing tools built on finite state machines and Markov chains, and quality engineering in agile and ML/AI settings.
It is a concept-, process- and document-heavy unit rather than a mathematical one — the single recurring computation is cyclomatic complexity (V(G) = E − N + 2), and the marks reward stating the right standard, applying the right technique, and arguing quality trade-offs clearly.
Assessment, all managed through Canvas, is half exam and half coursework: a 50% final examination (2 hours, closed book, held in the formal examination period, covering all lecture and assignment material) plus a semester-long group project delivered as three individual write-ups (Assignment 1 = 9%, Assignment 2 = 16%, Assignment 3 / targeted project = 15%), a 5% mid-term quiz (1 hour, question released in Week 7) and a 5% weekly report check (milestone checks at Weeks 3, 5, 7, 9 and 11).
No component carries a hurdle in the unit materials, and the exam's section-and-marks breakdown is not published — confirm the exact weighting, format and any permitted materials on your Canvas Assessments page and the USyd unit outline. Because the whole unit is examined together, a strong ELEC5618 result rewards steady weekly work that also protects your Weighted Average Mark (WAM).
Worked example · free
Cyclomatic complexity of a grade classifier (the signature ELEC5618 computation)
- +1Build the control-flow graph. Nodes: N1 entry/read score; N2 decision score ≥ 50; N3 decision score ≥ 75; N4 grade = Distinction; N5 grade = Pass; N6 grade = Fail; N7 return (the exit, where all branches merge). That is N = 7 nodes.
- +1List the edges (control flow): N1→N2; N2→N3 (score ≥ 50 true); N2→N6 (false, score < 50); N3→N4 (score ≥ 75 true); N3→N5 (false); N4→N7; N5→N7; N6→N7. That is E = 8 edges.
- +1Apply the formula: V(G) = E − N + 2 = 8 − 7 + 2 = 3.
- +1Cross-check two ways. (a) Number of predicate (decision) nodes + 1 = 2 decisions (score ≥ 50, score ≥ 75) + 1 = 3. (b) Number of independent (basis) paths = 3: P1 = N1-N2-N6-N7 (score < 50 → Fail); P2 = N1-N2-N3-N5-N7 (50 ≤ score < 75 → Pass); P3 = N1-N2-N3-N4-N7 (score ≥ 75 → Distinction). All three agree: V(G) = 3.
- +1Write V(G) = 3 test cases, one per independent path: score = 40 → expect "Fail"; score = 60 → expect "Pass"; score = 90 → expect "Distinction". These 3 cases give full branch coverage (both outcomes of each decision are exercised).
Key terms
- Error → Fault → Failure
- The canonical defect chain. An error is a human mistake; it plants a fault (defect/bug) in the software artifact; executing that fault can produce a failure — the system's inability to perform its required function. All three sit under the umbrella term 'defect', and software quality engineering exists to prevent failures.
- Verification vs Validation
- Verification asks 'are we building the product right?' — does it conform to its specification. Validation asks 'are we building the right product?' — does the specification (and software) meet the user's real needs. Testing reveals the presence of errors, never their absence; a successful test finds at least one error.
- QA vs QC
- Quality Assurance is process-oriented — it defines and evaluates processes to build quality in, ideally free of technical/managerial/financial pressure. Quality Control is product-oriented — it monitors specific results and checks conformance to standards (it leads into V&V and testing). QC activities can sit inside QA.
- Cyclomatic complexity V(G)
- McCabe's control-flow metric: V(G) = E − N + 2 (E edges, N nodes) = number of predicate nodes + 1 = number of independent paths = minimum tests for full branch coverage. High complexity does not prove testing adequacy — covering all paths is not covering all path combinations.
- ISO/IEC 25010:2023
- The product-quality model (SQuaRE). Nine product-quality characteristics — functional suitability, performance efficiency, compatibility, interaction capability, reliability, security, maintainability, flexibility and safety — each with sub-characteristics, plus a separate 'quality in use' model. The reference frame for stating and testing non-functional requirements.
- Stub vs Driver
- Test doubles used in integration testing. A stub simulates a called (lower-level) module, returning hardcoded responses — used in top-down integration. A driver simulates a calling (higher-level) module, issuing the calls the real caller would — used in bottom-up integration. A sandwich/hybrid approach uses both.
ELEC5618 FAQ
Is ELEC5618 hard?
It is broad rather than mathematically deep. ELEC5618 is a concept-, process- and document-heavy postgraduate unit: the challenge is holding a lot of standards (IEEE 730, IEEE 830, IEEE 1028, ISO/IEC 25010), testing techniques and agile ideas straight, and being able to argue quality trade-offs, rather than any single hard calculation.
The one recurring computation is cyclomatic complexity (V(G) = E − N + 2), and the small Markov-chain probabilities read fine in plain notation.
Half the mark is the 2-hour closed-book final, and it covers lectures and assignments together, so students who keep up with the weekly group-project deliverables and rehearse the exam-critical distinctions (QA vs QC, verification vs validation, defect vs validation testing) rather than cramming tend to find it manageable — and steady work protects your WAM.
Can AI help me with ELEC5618?
Yes, as a step-by-step study aid. Sia is an AI tutor trained on how ELEC5618 is taught and assessed at the University of Sydney: it can walk you through a cyclomatic-complexity calculation, an equivalence-partitioning and boundary-value set, a QA-versus-QC classification, a use-case or SRS structure, or a Markov-chain transition-probability table one line at a time, and it checks your reasoning as you go.
Bring your own tutorial or past-paper question and ask Sia to explain each step. It does not do graded assessment for you, and the University of Sydney academic-integrity policy still applies — use it to understand the method, not to produce work you submit.
Where can I find past exam papers / practice for ELEC5618?
Start on Canvas, where the unit posts its lecture slides, the Week-13 revision material and any practice questions, and search the University of Sydney Library's past-exam-paper collection for released papers. Your weekly group-project deliverables and the mid-term quiz question are the closest match to the assessed style.
This guide also includes a re-authored practice exam that mirrors the paper's shape — quality concepts, V&V, testing techniques, FSM/Markov tools and the standards — with fresh scenarios, and you can ask Sia to generate extra practice in the same style and explain each step. Treat any third-party 'model answers' with caution and confirm what is officially provided on Canvas.
What are the ELEC5618 hurdles and assessment rules?
the unit materials list no hurdle on any component — every assessment cell reads 'No'. The marks are 50% final examination, three individual project write-ups (9% + 16% + 15%), a 5% mid-term quiz and a 5% weekly report check, totalling 100%.
That said, hurdle and pass rules can change year to year, so if Canvas or the current unit outline states an exam or overall hurdle, that governs — always confirm the exact weights, any hurdle, and the permitted materials on your Canvas Assessments page. The weekly report checks fall at Weeks 3, 5, 7, 9 and 11, so missing them quietly costs the 5% that is easiest to bank.
What is on the ELEC5618 final exam?
A single 2-hour closed-book paper, held in the University of Sydney formal examination period, that covers all material — lectures and assignments included. The Week-13 revision frames it as a mix of multiple-choice, short-answer and a scenario-based question with sub-parts, but the exact section-and-marks breakdown is not published in the unit materials, so confirm the current structure on Canvas.
Expect a spread across the whole unit: quality foundations and standards (IEEE 730/830/1028, ISO/IEC 25010), verification versus validation, testing techniques (equivalence partitioning, boundary values, cyclomatic complexity, integration and OO class testing), the software test plan, FSM and Markov testing tools, and agile and ML/AI quality.
The exam sits in the University of Sydney Semester 1, 2027 formal exam period (around June 2027) — confirm the exact date, time and room on Canvas and the USyd exam timetable.
Questions students ask in each ELEC5618 chapter
- What is the difference between an error, a fault and a failure?
- They form a causal chain. An error is a human mistake; that mistake plants a fault (a defect) in the software; when the fault is executed the system may produce a failure — it cannot do what it should. All three are covered by the umbrella word 'defect'. Naming the right link matters in exam answers: you fix faults, you prevent errors, and you observe failures. Chapter 01 · Foundations of Software Quality Engineering
- What are the software error causes I need to know?
- The unit teaches a nine-category classification: faulty definition of requirements, client–developer communication failures, deliberate deviations from requirements, logical design errors, coding errors, non-compliance with documentation/coding instructions, an inadequate (disintegrated) testing process, user-interface and procedure errors, and documentation errors. In a scenario question, name the primary cause and, where relevant, a secondary contributor. Chapter 02 · Software Quality in a Company
- What is the difference between QA and QC in ELEC5618?
- QA is process-oriented — it defines, evaluates and improves the way the team works so that quality is built in, and it should be free from schedule and budget pressure. QC is product-oriented — it checks specific deliverables and results against standards, and it leads into verification, validation and testing. A neat way to remember it: QA builds quality in, QC checks quality out, and QC activities can operate inside a QA system. Chapter 03 · Software Quality Planning, Assurance and Control
- What is the difference between functional and non-functional requirements?
- Functional requirements describe services the system provides — what it does in response to inputs. Non-functional requirements are constraints on how well it does them — reliability, security, performance, usability, portability and so on. Requirements should say what, not how, and every non-functional requirement needs a measurable target so it can be verified. Chapter 04 · Software Requirement Specification and Use Cases
- What is the difference between verification and validation?
- Verification asks 'are we building the product right?' — does the software conform to its specification. Validation asks 'are we building the right product?' — does the specification (and the software) actually meet the user's needs. A system can pass verification (matches the spec) yet fail validation (the spec was wrong). Remember too that testing reveals the presence of errors, never their absence, and a successful test is one that finds at least one error. Chapter 05 · Verification and Validation
- What is the difference between equivalence partitioning and boundary-value analysis?
- Equivalence partitioning splits the input space into classes that should behave the same and tests one value per class, cutting redundant cases. Boundary-value analysis then adds cases at the edges of those classes — just below, on, and just above each boundary — because defects cluster there. You normally use them together: partition first, then pick boundary values within and around each partition. Chapter 06 · Software Testing Techniques
- What goes into a software test plan?
- Scope (which package and basis documents), the testing environment (sites, hardware, people, training), the test details per test (identification, objective, cross-references, class and level, case requirements, data to record) and the schedule (time for preparation, testing, correction and regression). The IEEE 829 key contents add items such as features to and not to be tested, pass/fail and suspension criteria, deliverables, staffing, risks and approvals. A good plan is organisation-wide and starts alongside the requirements. Chapter 07 · The Software Test Plan
- What is the difference between a Moore and a Mealy machine?
- Both are finite state machines; they differ in where the output comes from. A Moore machine's output depends only on the current state, so it changes when the state changes. A Mealy machine's output depends on both the current state and the input, so it can change on a transition even without changing state. Otherwise they share the same states, inputs and deterministic transitions. Chapter 08 · Tools for Testing: FSMs and Markov Chains
- How does agile change the QA role?
- It moves quality from an end-of-line inspection to something built in throughout, and it shifts the QA person from a 'gatekeeper' who signs off at the end to a 'quality enabler' who writes test cases with developers, automates regression and integration tests, drives exploratory and usability testing, and joins backlog grooming and sprint planning. Quality becomes a shared responsibility of the whole team, supported by TDD, CI and a Definition of Done. Chapter 09 · Software Quality Engineering in Agile Environments
- Why does classical testing not fully work for ML/AI systems?
- Because the model's behaviour is probabilistic — the same input can produce different outputs — so you cannot simply assert an expected output the way you would for deterministic code. Quality also becomes multi-dimensional and the dimensions conflict (safety vs helpfulness, accuracy vs latency). You still test the deterministic system around the model, but the model itself is evaluated statistically with datasets, online experiments and human eval. Chapter 10 · Quality Engineering for ML/AI Systems
- What are the five CMM/CMMI maturity levels?
- Level 1 Initial (ad-hoc, unpredictable), Level 2 Repeatable (basic project management, repeatable on similar projects), Level 3 Defined (standardised, documented, communicated processes across the organisation), Level 4 Managed (statistical control of process and product quality with quantitative targets) and Level 5 Optimizing (continuous, data-driven process improvement). The key jump to remember is 3 → 4: from standardised processes to quantitatively controlled ones. Chapter 11 · Designing an Agile Cycle & Process Improvement
- What are the most examined distinctions in the ELEC5618 final?
- Three pairs recur across the multiple-choice and short-answer questions: verification (build it right — conforms to spec) vs validation (build the right thing — meets needs); QA (process-oriented, build quality in) vs QC (product-oriented, check quality out); and defect testing (find defects) vs validation testing (show requirements are met). Be able to give each in one line plus a short example where the two come apart. Alongside these, know the error → fault → failure chain and the standards map (IEEE 730 / 830 / 1028, ISO/IEC 25010). Chapter 12 · Exam Revision & Course Integration
How to study for the exam
Treat ELEC5618 as a standards-and-technique unit and rehearse it weekly alongside the group project, rather than cramming before the closed-book final. Build a one-page map of the standards and what each governs (IEEE 730 = SQA plans, IEEE 830 = SRS, IEEE 1028 = reviews, ISO/IEC 25010 = product quality, ISO/IEC/IEEE 29119 = testing) because fast recall pays off across the paper.
Drill the exam-critical distinctions until you can state each in one line with an example — QA (process) vs QC (product), verification ('building it right') vs validation ('building the right product'), defect testing vs validation testing, stub vs driver, Moore vs Mealy.
Practise the two techniques that carry method marks: cyclomatic complexity (draw the control-flow graph, apply V(G) = E − N + 2, cross-check with decisions + 1, list the independent paths and write one test per path) and black-box design (equivalence partitions plus the boundary set {lo−1, lo, interior, hi, hi+1}).
For the qualitative topics — the nine error causes, the ISO/IEC 25010 characteristics, the People CMM / CMMI levels, the Agile Manifesto and testing quadrants, and the ML/AI three-layer quality stack — rehearse writing short, structured 'The system shall…' requirements and clear trade-off arguments, because that is what the short-answer and scenario questions reward.
When a step won't click, ask Sia to explain that single step a different way and set you a fresh practice question in the same style; it teaches the method and checks your reasoning, and it never substitutes for your own graded work. Confirm the exam date, room, weighting and any hurdle on Canvas and the University of Sydney exam timetable.
Your AI Computer Science tutor for ELEC5618
Stuck on a hard ELEC5618 question? Sia is AskSia’s AI Computer Science tutor — ask any ELEC5618 Software Quality Engineering question and get a clear, step-by-step explanation grounded in how the course is actually taught and assessed. Read this whole study guide free, then take your hardest questions to Sia.