Software Development Models
A software development model, which ISTQB calls an SDLC model, describes how the development process is organised: which activities happen, in what order and how they overlap. It arranges in time the activities from the SDLC and STLC guide. The ISTQB Foundation syllabus (CTFL v4.0) names three families: sequential models such as the waterfall model and the V-model, iterative models such as the spiral model and prototyping, and incremental models such as the Unified Process.
Take a clinic that wants an online appointment system with booking, SMS reminders and online payment. Built sequentially, all three features are specified, designed, built and tested, then released together months later. Built incrementally, booking is released first, reminders follow in the next increment and payment in the third. Built iteratively, a rough version of the whole flow is shown to receptionists and patients and reworked over several cycles. Most agile teams combine the last two.
Why it matters
The model decides when a tester can do what. CTFL v4.0 lists what the choice of lifecycle affects: the scope and timing of test activities, the level of detail of test documentation, the choice of test techniques and test approach, the extent of test automation, and the tester’s role and responsibilities.
An approach copied from another model fails: a formal test plan for a two-week increment is outdated before approval, and fortnightly releases without automated regression testing re-check a smaller share of a growing product each time. Knowing the model lets you name such a risk in a project’s first week instead of its last.
Sequential, iterative and incremental
All three contain the same work; they differ in how much of the product passes through each activity at once and how often the activities repeat. Incremental means adding pieces; iterative means repeating and refining. They are separate ideas that can be used alone or together, and they are often combined.
- Sequential: the phases run in a fixed order, each finished before the next starts, and the whole product is released once at the end. Examples: the waterfall model and the V-model.
- Iterative: the team builds a version, evaluates it and improves it in repeated cycles, returning to features that already exist. Examples: prototyping, and the spiral model, where each cycle is planned around the most important open risks.
- Incremental: the product is split into pieces; each increment is specified, designed, built and tested, and adds to what was delivered before. Example: the Unified Process.
- Both together: each short cycle delivers a usable increment, and feedback on it can change earlier work. Most agile methods, such as Scrum, work this way; some teams call any such approach simply "agile".
How testing differs in each model
Every model contains the same test activities, from test planning and analysis through design, implementation and execution to test completion. What changes are the five aspects CTFL v4.0 lists: the scope and timing of those activities, the detail of the documentation, the techniques, the extent of automation and the tester’s role.
Sequentiale.g. waterfall, V-model
- 1Specify everything
- 2Design and build everything
- 3Test everything
- 4Release once
- First code to test dynamically:
- Late, after implementation
- Re-tested in every cycle:
- No cycles: testing is concentrated near the end
- Test documentation:
- Detailed and formal
- Main testing risk:
- Requirement defects found late; test phase squeezed
Iterativee.g. spiral, prototyping
- 1Build a version of the whole
- 2Test and evaluate it with users
- 3Rework the same features
Repeats: Back to step 1
- First code to test dynamically:
- Early, a rough version
- Re-tested in every cycle:
- Reworked features; their test cases change
- Test documentation:
- Light until the design settles
- Main testing risk:
- Detailed tests written too early go out of date
Incrementale.g. Unified Process
- 1Increment 1: build, test, deliver
- 2Increment 2: add, test, re-check 1
- 3Increment 3: add, test, re-check 1 and 2
- First code to test dynamically:
- Early, the first increment
- Re-tested in every cycle:
- Earlier increments; the regression suite grows
- Test documentation:
- Per increment, plus a growing regression suite
- Main testing risk:
- Untested interactions between increments
Most agile teams, for example in Scrum, combine iterative and incremental development.
- Sequential: early on, testers review requirements and do test analysis and test design, but executable code arrives late, so dynamic testing starts late. Documentation is usually detailed and formal. The main risk: a misunderstood requirement may surface only in system or acceptance testing, and when development overruns, the test phase is squeezed.
- Iterative and incremental: CTFL v4.0 notes that when each iteration delivers a working prototype or product increment, static and dynamic testing may be performed at all test levels in every iteration. Frequent delivery needs fast feedback and extensive regression testing.
- Agile variants: change is expected throughout, so lightweight documentation and extensive test automation are favoured, and much manual testing uses experience-based techniques such as exploratory testing, in which the tester designs and runs tests at the same time, guided by what they learn from the software, often in a time-boxed session.
- Iterative rework: detailed step-by-step test cases for a feature that will be redesigned next cycle will need rewriting. Record test conditions and exploratory notes first; write detailed test cases once a part is stable.
Worked example: one clinic app, three ways
The clinic app has three features: booking (B), SMS reminders (R) and online payment (P). The timelines show when each is specified, built and tested.
- Sequential: in the first weeks the tester reviews the full specification, asks how long before an appointment a reminder is sent and what happens when a paid booking is cancelled, and designs system test cases traced to each requirement. Dynamic testing waits for the complete build.
- Incremental: increment 2 tests reminders and re-checks booking where reminders read its data: a rescheduled or cancelled appointment must update or cancel its reminder. Increment 3 adds payment and re-checks both. The regression suite grows each time, so automate the booking checks in increment 1.
- Iterative: in cycle 1 the tester explores the rough version with a receptionist and records usability problems and open questions instead of detailed test cases for screens that will change. As screens settle, key flows become regression checks; the final version gets full system and acceptance testing.
Clinic booking app: Booking (B), Reminders (R), Payment (P)
Sequential:
[specify B R P] [design] [build] [test B R P] -> release B R P
Incremental:
[B: specify, build, test] -> release B
[R: specify, build, test + regression of B] -> release B R
[P: specify, build, test + regression of B R] -> release B R P
Iterative:
[rough B R P] -> feedback -> [better B R P] -> feedback -> [final B R P] -> releaseTry it: Requirements → Test Cases Try it: Regression Scenario Generator
Choosing a model by context
No model is best in general; the choice depends on context. The organisation or project lead usually decides, but a tester who understands the reasons can adapt the test approach and point out testing risks. Ask:
- How stable are the requirements? Requirements fixed by an external document, such as a report format published by a regulator, suit a sequential plan; a consumer product whose features will change once users try it suits iterative development.
- How soon is value or feedback needed? If users must use part of the product early, deliver in increments.
- Can it be delivered in parts? A one-time data migration pushes that part towards sequential delivery.
- How costly is failure? Regulated or safety-critical products need formal, traceable test documentation in any model, including for every increment.
- Models can be combined: a payment back end integrated with a bank may be built and tested sequentially while the mobile app on top grows in increments.
Try it: Risk-Based Test Generator Try it: Acceptance Criteria Generator
Common mistakes
- Using "iterative" and "incremental" as synonyms: added pieces need regression testing of earlier increments, reworked versions need re-testing of changed features.
- Waiting for the test phase in a sequential project instead of reviewing requirements and designing tests early.
- Testing only an increment’s new features. Defects often appear where a new increment touches old data or flows.
- Writing detailed step-by-step test cases for a prototype that will be redesigned next cycle.
- Trusting the label instead of the practice: a team that "does agile" may release once a year. Ask how often working software actually reaches testers and users.
The QA perspective
On a new project, ask: When will the first testable build exist? How often does working software reach users? How stable are the requirements? What must be true before work counts as done? Record the answers in the test plan or the team’s working agreement; they shape the test approach.
Then adapt: in a sequential project, invest early in requirement reviews and traceability; in an iterative or incremental project, plan each increment’s testing with it, keep a living regression suite and automate repeated checks. Raise the risks a model creates with a concrete consequence, such as "three features share one two-week test window", so the product owner decides instead of being surprised.
Practice exercise
Choose a model for two projects and plan the testing
Project A: the finance system must produce a monthly report in a new format published by a regulator. The format is fixed, the deadline is six months away, the change ships once and an external auditor will check it. Project B: a coffee chain wants a mobile app with order-ahead, loyalty points and a store locator in customers’ hands within two months, and expects to change features based on usage.
Recommend a model family, or a combination, for each project and describe how testing would be organised.
- Note the context: requirement stability, need for early feedback, delivery in parts, cost of failure.
- Choose a model family for each project and give one reason.
- Describe when static and dynamic testing happen and how detailed the documentation is.
- Name the main testing risk and one counter-measure.
Show the model answer
Project A: fixed requirements, one delivery and an auditor point to a sequential model, often in V-model style. Review the specification against the regulator’s format first, then design test cases for every field and rule, traced to the specification, with early test data: a month with no transactions, maximum values, rounding. Dynamic testing runs at system and acceptance level; documentation is formal because the auditor reads it.
Project A risk: execution comes late and an overrun shrinks the test window. Counter-measures: agree exit criteria and a protected test window in the test plan, and ask for the calculation logic to be delivered and tested first.
Project B: uncertain requirements and the need for early feedback point to iterative and incremental development, for example with Scrum: order-ahead first, then loyalty, then the locator. In each increment, acceptance criteria are reviewed before development, new features are tested with exploratory testing, and documentation stays light.
Project B risk: increments interact, since points are earned on orders and a cancelled order must remove its points. Counter-measure: automate the core order checks in increment 1 and add order-and-points scenarios to the regression suite in increment 2.
Frequently asked questions
What is the difference between iterative and incremental development?
Incremental development adds the product in pieces, each finished and usable; iterative development builds a version and refines it in repeated cycles. For testing, incremental work needs regression testing of earlier increments, while iterative work means re-testing features whose design changed. Most agile teams use both together.
Is Agile a development model?
Not a single one. Agile is a set of values and principles described in the Manifesto for Agile Software Development. Methods that follow it, such as Scrum, usually organise work as iterative and incremental development. CTFL v4.0 lists Scrum, Kanban, extreme programming (XP) and similar approaches as methods and practices that describe development activities in more detail.
Is the V-model sequential or iterative?
Sequential. The V-model pairs each development level with a test level and starts test analysis and design for a level during the matching development phase, but test execution still happens after the code exists, and the product is delivered at the end.
Can a tester choose the development model?
Usually not: the organisation or the project lead decides. The tester’s job is to understand the model, adapt the test approach to it and report the testing risks it creates, with a concrete consequence and a proposed counter-measure.
References
- ISTQB Certified Tester Foundation Level (CTFL) v4.0The foundation syllabus of software testing: test levels and types, test design techniques, test management and tools.
- ISTQB GlossaryThe standard definitions of testing terms — test case, regression testing, severity, priority, boundary value analysis and the rest.
- Manifesto for Agile Software DevelopmentThe four values of agile software development, such as working software over comprehensive documentation and responding to change over following a plan.
- The 2020 Scrum GuideThe definition of Scrum: its accountabilities, events and artifacts, including the Definition of Done that testing helps meet.
Practise with Mutqan tools
Convert a list of numbered requirements into traceable test cases with a requirement-to-test matrix.
Generate regression scenarios from a change description and a list of affected and related modules.
Score features by likelihood and impact, then generate a prioritised risk-based test plan.
Generate Given/When/Then acceptance criteria and a definition-of-done checklist from a user story.
Go deeper
Your progress on this topic
Not started
Mark the topic complete when you have studied it and done the exercise.
Sign in to track your progress
Mark topics complete, continue where you left off and unlock specialisation exams.