Enrol to start learning
Reading is open to everyone. Enrolling is free, and it is what unlocks the audio lessons, practice tests and progress tracking.
2.2. Common SDLC Models
Learn content
Interactive Audio Lesson
Unlock the classroom podcast
The transcript is free to read. A free account plays the conversation back.
Let's start with the Waterfall model. It is a linear approach to software development with clear-cut phases. Can anyone tell me what those phases are?
Isn't it requirement gathering, design, development, testing, deployment, and maintenance?
Exactly! Now, with such a model, think about the role of QA. Why might late involvement be a challenge?
Because if QA starts testing after development, any issues found could be harder to fix!
Right! And this can lead to a higher cost of fixing defects too. Remember, in the Waterfall model, changes are challenging. We can summarize it with the acronym C-R-A-M: Clear phases, Rigid changes, After development QA, Maintenance needed!
That’s a helpful acronym!
Great! So, what do you think are the advantages and disadvantages of this model? Briefly.
It's easy to manage but very inflexible.
Correct! To summarize, the Waterfall model is clear but rigid, often leading to potential issues when requirements change.
Unlock the classroom podcast
The transcript is free to read. A free account plays the conversation back.
Now let's switch gears to the Agile model! What do you perceive makes Agile different from Waterfall?
It uses sprints and is more about collaboration, right?
Absolutely! Agile is iterative and based on sprints. Can anyone describe the key roles of QA in Agile?
QA is involved right from the sprint planning. They write test cases while user stories are developed!
Excellent! Continuous testing is a critical part of Agile. This helps find defects earlier. Can someone tell me what ‘daily stand-ups’ are?
They are quick meetings to discuss progress and issues within the team.
Exactly! In Agile, the rapid feedback loop aids defect prevention. How could we sum up Agile in terms of QA involvement? Perhaps an acronym?
How about E-C-F: Early QA, Continuous feedback, Flexible?
Perfect! So, Agile fosters teamwork and allows faster adaptation to changes. Let's wrap up by comparing the two models.
Unlock the classroom podcast
The transcript is free to read. A free account plays the conversation back.
Let’s review how Agile and Waterfall differ specifically from a QA perspective. What stands out?
In Waterfall, QA comes late, while in Agile it's continuous.
That's a key distinction! Also, what about documentation?
Waterfall requires heavy upfront documentation, whereas Agile uses just-in-time documentation.
Exactly! The flexibility in Agile allows for rapid changes, enhancing quality. Any last thoughts on their feedback loops?
Waterfall has a long feedback loop, while Agile offers shorter, quicker feedback.
Well summarized! Agile's responsiveness and Waterfall's structure serve different project needs. Knowing when to use each is crucial!
Overview
Short Summary
This section covers the common models used in the Software Development Life Cycle (SDLC), particularly the Waterfall and Agile methodologies, including their pros and cons.
Medium Summary
The section outlines key SDLC models, primarily focusing on the Waterfall and Agile methodologies. It explains the structure, phases, QA involvement, advantages, and disadvantages of each model, emphasizing the role of Quality Assurance in ensuring software quality throughout the development process.
Detailed Summary
Common SDLC Models
The Software Development Life Cycle (SDLC) is essential in creating quality software. This section discusses the two commonly used models: the Waterfall and Agile models.
1. Waterfall Model
- Definition: A linear approach where each phase depends on the deliverables of the previous one. The stages include requirement gathering, design, development, testing, deployment, and maintenance.
- QA Role: QA usually begins after development completion, limiting early defect identification.
- Pros: Straightforward management and comprehensive documentation.
- Cons: Lacks flexibility for changes and delays QA involvement until later stages.
2. Agile Model
- Definition: An iterative approach comprising short development cycles called sprints, promoting adaptability and teamwork.
- QA Role: QA is actively involved from the start, writing test cases during sprint planning and conducting continuous testing.
- Pros: Robust early QA involvement leads to faster feedback and defect prevention.
- Cons: Requires high levels of collaboration and adaptability among team members.
Overall, effective QA practices enhance the quality and reliability of software, playing a vital role in various phases of the SDLC.
Audio Book
Unlock the audio lesson
The script is above and free to read. A free account plays it back, in the voice you pick.
Create a free account1. Waterfall Model
Definition:
A linear, step-by-step model where each phase must be completed before the next begins.
Phases:
- Requirements: Gather and document all requirements
- Design: Define system architecture and design
- Development: Build the software
- Testing: QA team tests the software
- Deployment: Release to production
- Maintenance: Fix issues and make minor enhancements
QA Role in Waterfall: - QA is usually involved after development, making early defect prevention difficult.
- Requirements and test plans are finalized upfront.
Pros: - Easy to manage, well-documented
Cons: - Inflexible to changes, late QA involvement
Detailed Explanation
The Waterfall Model is a structured software development approach where each phase must be finished before moving on to the next. This model is straightforward because it has clear sequential stages: Requirements, Design, Development, Testing, Deployment, and Maintenance. Each of these stages has specific goals, such as gathering requirements or testing the software. QA's role typically begins at the Testing phase when the software is built. Since QA comes in later, it may miss opportunities to prevent defects early in the process. This model is beneficial for projects where requirements are well understood, but it can struggle with changes and flexibility since everything is decided upfront.
Examples & Analogies
Think of the Waterfall Model like building a house. First, you create a blueprint (Requirements), then you construct a frame (Design), followed by building walls and roofs (Development). After constructing the house, you inspect it for issues (Testing). Once all inspections pass, you move in (Deployment) and later address any home repairs (Maintenance). If you decide to add a room after it's built, you'd need significant changes, which reflects the inflexibility of the Waterfall approach.
Unlock the audio lesson
The script is above and free to read. A free account plays it back, in the voice you pick.
Create a free account2. Agile Model
Definition:
An iterative and incremental model where development is broken into sprints (usually 1–4 weeks), promoting flexibility, collaboration, and continuous delivery.
Sprint Activities:
- Sprint Planning: Define user stories and sprint goals
- Development & QA: Dev and QA work in parallel during the sprint
- Daily Stand-up: Share progress and blockers
- Sprint Review: Demonstrate completed features
- Sprint Retrospective: Reflect on what went well and what can improve
QA Role in Agile: - QA is involved from the beginning of each sprint
- Writes test cases alongside user stories
- Performs continuous testing (manual or automated)
- Participates in backlog grooming, reviews, and retrospectives
Pros: - Early and continuous QA involvement
Cons: - Requires high collaboration and adaptability
Detailed Explanation
The Agile Model is a flexible approach to software development that breaks the project into smaller increments called sprints, which are usually 1 to 4 weeks long. This method allows teams to adapt quickly to changes and deliver parts of the product more regularly. In Agile, QA works from the beginning of the sprint. This means they create test cases as user stories are defined, allowing for continuous testing throughout the development phase. Agile emphasizes communication and collaboration within the team, enabling quicker feedback and a faster response to changes.
Examples & Analogies
Imagine running a restaurant that serves different dishes daily. Each day, you prepare a new dish based on customer feedback from previous meals. This flexibility allows you to improve the menu every day and quickly adapt to customer preferences, similar to how Agile works. You review what went well, what dishes need improvement, and keep the menu evolving, just like Agile teams assess and refine their processes during sprint retrospectives.
Unlock the audio lesson
The script is above and free to read. A free account plays it back, in the voice you pick.
Create a free accountQA Involvement in Each SDLC Phase
SDLC Phase – QA Responsibilities:
- Requirement Analysis: Review requirements for clarity, testability; identify potential gaps or risks
- Design: Review design documents; define test strategy; participate in test planning
- Development: Prepare test cases/scripts in parallel; collaborate with devs for early feedback
- Testing: Execute test cases (manual/automated); log defects; perform regression, functional tests
- Deployment: Perform sanity/smoke testing in staging/production; validate configurations
- Maintenance: Verify fixes, conduct regression tests, handle change requests.
Detailed Explanation
QA involvement is crucial throughout all phases of the SDLC. During Requirement Analysis, QA ensures the requirements are clear and testable to avoid issues later on. In the Design phase, QA reviews the design documents, which helps align testing strategies with the application needs. When development begins, QA prepares test cases and collaborates with developers for early feedback, ensuring potential defects are caught quickly. In the Testing phase, QA executes various tests to check the software's functionality. After deployment, they validate the configurations to ensure everything works as intended. Finally, during Maintenance, QA verifies any fixes and manages change requests, ensuring ongoing quality.
Examples & Analogies
Think of QA in software development like quality checks in a car manufacturing plant. At every stage—designing the car, building the parts, assembling the car, and even after it hits the road—there are inspections to ensure safety and performance. Just as these checks prevent faults in the car, thorough QA involvement at each stage of the SDLC helps catch problems early and maintain product quality.
--
Key concepts
Core takeaways and short definitions to help you quickly recall the key ideas from this section.
- Waterfall Model:
A linear SDLC process emphasizing defined phases.
- Agile Model:
An iterative approach focusing on collaboration and adaptability.
- QA Involvement:
Quality Assurance preserved at every phase of the SDLC.
Examples
Step-by-step examples to apply the section's ideas and test your understanding.
In the Waterfall model, if a requirement changes at the development phase, it may lead to significant project delays.
In Agile, if a defect is found during a sprint, it can be addressed immediately before the project continues.
Memory aids
Imagine a factory assembly line (Waterfall) where each part must be made before the final product. In contrast, visualize a team of chefs (Agile) collaborating in the kitchen, adjusting recipes as they go along to ensure the best meal outcome.
WATER for Waterfall: Written phases, After development QA, Testing is late, Each step is rigid, Rough for changes.
Flash Cards
Glossary
SDLC
Software Development Life Cycle, the process used for software development.
Waterfall Model
A linear SDLC model where each phase must be completed before the next begins.
Agile Model
An iterative and incremental SDLC model focusing on flexibility and collaboration.
Sprint
A set period during which specific work has to be completed in Agile methodology.
QA
Quality Assurance, activities ensuring software quality through various stages of development.