SDLC for Testing
An overview of Agile methodologies, including Scrum and Kanban frameworks, writing and testing user stories, sprint planning, retrospectives, and daily stand-ups.
Software Development Life Cycle (SDLC)
SDLC defines the process of planning, designing, developing, testing, and deploying software.
Stages of SDLC
-
Requirement Analysis
- Understand user requirements, both functional and non-functional.
- Create the Requirement Specification Report (RSR) document.
-
Planning
- Analyze requirements and decide the scope, timeline, cost, and resource estimation.
- Choose the appropriate SDLC model (Waterfall, Agile, Spiral, V-Model).
-
Designing
- High-Level Design (HLD): Define system architecture, database structure, and UI/UX design.
- Low-Level Design (LLD): Define classes, methods, and internal logic.
-
Development
- Develop software features using the selected programming language.
- Write unit test cases for individual components.
-
Testing
- Ensure the developed software satisfies functional and non-functional requirements.
-
Deployment
- Deploy the software into staging/production environments.
-
Maintenance and Support
- Release updates and patches.
- Fix any bugs if they arise.
Models of SDLC
Choosing an SDLC model depends on factors like project complexity, size, available resources, client requirements, and risks.
-
Waterfall Model
- A sequential model where each stage follows the previous one.
- Best for small projects with well-defined requirements.
-
V-Model
- Similar to the Waterfall model but includes a testing phase for each development phase.
- Best for high-risk projects.
-
Incremental Model
- Software is built and delivered in increments.
- Best for medium and large projects requiring phased delivery.
-
Agile Model
- An iterative and incremental approach with continuous feedback.
- Best for medium and large projects with changing requirements.
- Requires planning and active customer involvement.
-
Spiral Model
- An iterative model with a focus on risk analysis.
- Stages: Planning → Risk Analysis → Engineering → Evaluation (repeated in spirals).
- Used for complex workflows.
-
RAD Model (Rapid Application Development)
- Minimal planning.
- Each functionality is divided and developed as parallel prototypes, which are later integrated.
Agile Methodologies
Agile is an iterative, incremental approach to software development that adapts to changing requirements. Scrum and Kanban are two popular frameworks in Agile.
Scrum and Kanban Frameworks
Scrum
- Used to manage complex projects.
- Focuses on delivering features in small, time-boxed intervals called sprints (2-4 weeks).
Key Components:
- Roles:
- Product Owner
- Scrum Master
- Development Team
- Events:
- Sprint Planning
- Daily Stand-ups
- Sprint Review
- Sprint Retrospective
- Artifacts:
- Product Backlog: A prioritized list of all features, bugs, and enhancements.
- Sprint Backlog: Tasks to be completed within a sprint.
- Increment: Shippable features completed in the sprint.
Kanban
- Focuses on visualization and the flow of work.
- Encourages continuous delivery without fixed time intervals.
- Ideal for teams with unpredictable workloads.
Key Features:
- Visualization: Kanban board with columns (e.g., To-Do, In-Progress, Done).
- Work-in-Progress (WIP) Limits: Set a limit on tasks per column to avoid bottlenecks.
- Focuses on workflow rather than time-boxing.
Aspect | Scrum | Kanban |
---|---|---|
Roles | Fixed roles (Scrum Master, Product Owner, Development Team) | No assigned roles |
Iteration | 2-4 weeks | Continuous delivery |
Planning | Requires detailed planning | Minimal planning |
Focus | Sprint backlog | Entire workflow |
Best For | Teams with clear goals and timelines | Teams with dynamic workloads and ongoing tasks |
Writing and Testing User Stories
User Story
A user story is a short, simple description of a feature or functionality from the perspective of the end user.
Format:
As a [type of user], I want to [goal or task], so that I can [benefit or value].
Characteristics of a Good User Story:
- Independent: Can be completed without dependencies on other stories.
- Small: Can be completed within a sprint.
- Testable: Acceptance criteria can be verified.
- Value-Adding: Provides value to the end user.
- Estimatable: Can be estimated in terms of effort.
Acceptance Criteria
Defines the conditions to mark the user story as complete.
Example:
Scenario 1: Adding a product to the cart Given: I am on the product page When: I click "Add to Cart" Then: The product is added to the cart, and a confirmation message is displayed.
Scenario 2: Viewing products in the cart Given: The cart contains products When: I click "View Cart" Then: The products in the cart should be displayed.
Sprint Planning, Retrospectives, and Daily Stand-Ups
Sprint Planning
- A meeting held at the start of a sprint to decide the sprint backlog.
- Prioritize Tasks: Product Owner identifies the highest-priority items.
- Task Breakdown: The development team breaks down tasks into smaller units.
- Effort Estimation: Use story points to estimate effort.
- Sprint Backlog: Finalize tasks to be completed during the sprint.
Daily Stand-Ups
- A short meeting (≤15 minutes) to enhance team collaboration.
- Focuses on:
- What you did yesterday.
- What you will do today.
- Any blockers or issues.
Retrospectives
- Conducted at the end of a sprint to reflect and improve.
- Discuss:
- What went well.
- What didn’t go well.
- Areas for improvement.
- Decide actionable steps for what to start, stop, and continue.
Quiz
SDLC
- what is SDLC ?
- The Software Development Life Cycle is a well defined procedure for producing high-quality, low-cost software in the shortest amount of time. The SDLC describes a detailed flow of phases, each with it’s own process and deliverables.
- What are the importance of SDLC?
- for effective project management and tracking
- increases visibility
- control over development process
- Explain the phases in typical SDLC process
- Requirement gathering and analysis
- Design
- Development
- Testing
- Deployment and Maintenance
- Explain difference types of SDLC models
- Waterfall model - It is sequential approach to software development where one phase’s output becomes input for the next
- Agile model - Iterative incremental approach to software development.
- Iterative Model - It is used when initial requirement to software development is well defined, but the scope of the project and features is unclear
- Spiral Model - It is a risk management strategy that combines iterative development with waterfall model.
- V-Model - In V-Model every phase of the development cycle has a testing phase that is directly linked to it.
- What is SRS ?
- Software Requirement Specification is a document that explains what the software will accomplish and how it will work. This report is created after all requirements have been collected and analyzed. It serves as a foundation for software engineering tasks.
- What is feasibility study ?
- Feasibility study determines project’s legal, techincal and commercial feasibility.
- What are the levels of testing ?
- Unit testing
- integration testing
- system testing
- acceptance testing
Agile Methodology
- What are the different types of Agile Methodology ?
- Scrum - it depends on feedback, self-management, small teams and sprints
- FDD - Feature Driven Development - It is a lightweight iterative and incremental software development process whose main purpose is to deliver stable and working software on time.
- Lean software Development - respect for people and continuous improvement
- XP - software is tested right from day one, collecting feedback so as to improve the development process
- kanban - kanban projects are generally managed through a board. This board helps team members to keep an eye on workflow for measuring it’s progress.
- What are the advantages of Agile process
-
adapts well with changing requirements
-
fast and continuous development
-
enables collaboration between client and project team
-
faster feedback from customers
-
quick delivery of projects
-
more flexibility
-
What are the disadvantages of Agile ?
-
Not good for small development projects
-
lack of formal documentation and design
-
difficult to estimate resource requirements
-
costly compared to other development methodologies
-
difficulty in testing and test construction
-
Explain Agile testing? what are the principles of Agile Testing?
- Agile testing is a software testing methodology that follows agile best practices
- principles of agile testing
- continuous testing
- continuous feedback - agile encourages taking feedback from clients to make sure that the product meets client’s requirements.
- teamwork - not only testers but developers, business analyst also perform testing
- clean code - all error should be fixed quickly within the same iteration by agile team
- Less documentation - agile encourages reusability
- Test-Driven - In agile testing is done during implementation so error can be removed on time
- customer satisfaction - During agile testing process development progress is shown to clients so that they can adapt and update their requirements.
-
What qualities should a agile tester have ?
- excellent communication skills
- critical and creative thinking
- positive and solution oriented attitude
- Basic knowledge of agile process and principles
- understanding of Customer requirements
- cope up with change.
-
What do you mean by refactoring ?
- Refactoring is changing the internal structure of software without changing the external behavior. It is normally done to maintain the code. Red-Green refactor is a popular refactoring technique.
-
What is the difference between sprint backlog and product backlog?
- sprint backlog - is the list of task the project development team plans to complete in a sprint. It is developed by and for the developers
- Product backlog - It is the list of task that must be done to complete the whole project. It is generally owned and maintained by project owner.
-
What is spike and zero sprint in Agile ?
- spike - Spike generally refers to a larger and complex user story that cannot be estimated until the development team runs a timebox investigation.
- Zero sprint - it is the preparation step that comes before first sprint. It includes activities like setting up development environment, preparing backlog etc
-
what is story points in agile ?
- story points is a way to measure effort required to completed a task.
-
what is the structure division in agile?
- Epic → stories → tasks
-
What do you mean by the term “Velocity” in Agile?
- velocity is a unit that measures, how much work an agile development team can successfully complete in one sprint.
-
What do you mean by Daily Stand UP meeting ?
- Daily Stand up meeting is a day-to-day meeting, where all team members discuss their progress, what was done yesterday, what is the plan for day and discuss any blockers. It brings everyone up to date on the information.
-
What is incremental and iterative development ?
- Incremental - break up a project into chunks and complete the chunks individually. (monalisa in blocks)
- iterative - Build up features gradually (monalisa - outline, colors) in development cycles until the product is obtained.
-
what is Agile Manifesto ? what are its values and principles ?
- Agile manifesto is a document that contains values and principles of Agile.
- 4 Agile values
- individual and interactions over processes and Tools
- working software over comprehensive documentation
- customer collaboration over contract negotiationw
- responding to change over following plan
- 12 principles of Agile
- customer satisfaction
- welcome changes
- frequent delivery
- work together
- motivated team
- face-to-face communication
- working software
- constant pace
- Good design
- simplicity
- self - organization
- reflect and adjust
-