STQA - Module 1
STQA - Module 1
Software Testing is the process of evaluating and verifying that a software application or system
meets the specified requirements and is free of defects.
Importance of Software Testing:
● Ensures the quality and reliability of software.
Software A process used to identify the correctness, completeness, and quality of developed
Testing software.
Validation Ensures the software meets the business needs and requirements.
Verification Ensures the product is built according to the design and technical specifications.
Phases of STLC
1. Requirement Analysis
Goal: Understand what needs to be tested.
Activities:
● Analyze functional and non-functional requirements.
● Identify testable and non-testable requirements.
● Involve QA team in requirement walkthroughs.
● Identify types of testing required (functional, performance, etc.).
● Identify test environment needs.
Deliverables:
● Requirement Traceability Matrix (RTM)
● Automation feasibility report (if applicable)
● List of testable requirements
2. Test Planning
Goal: Define the strategy and scope of testing.
Activities:
● Create a test strategy or test plan document.
● Estimate effort, time, and resources.
● Assign roles and responsibilities.
● Define tools (test management, automation, etc.).
● Identify risks and mitigation plans.
Deliverables:
● Test Plan / Strategy Document
● Effort and cost estimation
● Resource planning document
6. Test Closure
Goal: Evaluate testing outcomes and formally close testing.
Activities:
● Assess test completion criteria (e.g., % passed, defect density).
● Ensure all test cases are executed or deferred logically.
● Conduct test summary report meeting with stakeholders.
● Archive test artifacts for future reference.
● Capture lessons learned and best practices.
Deliverables:
● Test Summary Report
● Defect Analysis Report
● Final RTM
● Lessons Learned Document
Points about STLC
● STLC is iterative: Defects found during execution may require going
back to earlier phases.
● STLC is not same as SDLC: STLC is specific to testing, whereas SDLC
covers the entire software development process.
● Each phase has entry and exit criteria.
Summary Table
Aspect High-Level Design (HLD) Low-Level Design (LLD)
Focus System architecture Module-level logic
Defines system structure and Defines internal logic of
Purpose
interactions components
Ensure system meets functional Ensure module-level
Verification
and non-functional correctness, completeness, and
Goal
requirements feasibility
Pseudocode, logic diagrams,
Output Architecture diagrams, data
database schema, class
Verified flow, component specs
diagrams
Performed
Architects, Senior Developers Developers, Technical Leads
By
1. Waterfall Model
● Testing is a separate phase that comes after development.
● Follows a linear and sequential process:
Requirement → Design → Development → Testing → Deployment
Pros: Simple, easy to manage
Cons: Late bug detection, not suitable for changing requirements
5. Incremental Model
● Development and testing are done in small modules.
● Each module is tested individually and then integrated and tested.
Pros: Early bug detection and integration testing
Cons: Requires proper planning for module integration
Waterfall Model
Definition
One of the earliest software process models — proposed by Winston Royce in 1970 and
widely described by Pressman.
● Linear-sequential model: progress flows downwards through phases.
● Each phase must be completed before the next begins.
Phases
1. Requirements Analysis – Gather and document requirements.
2. System Design – Create overall system architecture and detailed design.
3. Implementation (Coding) – Translate design into executable code.
4. Integration & Testing – Combine modules and verify correctness.
5. Deployment – Deliver product to users.
6. Maintenance – Correct defects, adapt to changes.
Advantages
● Simple and easy to understand.
● Well-suited for projects with clear, stable requirements.
● Good documentation at each phase.
Disadvantages
● Inflexible to changes.
● Late testing (errors found late).
● Not suitable for complex, evolving projects.
Phases
Left Side (Development)
1. Requirements Analysis → Acceptance Testing
2. System Design → System Testing
3. Architectural Design → Integration Testing
4. Module Design → Unit Testing
5. Coding
Right Side (Testing)
● Each test phase corresponds to a development phase.
● Early planning of tests ensures verification at each stage.
Advantages
● Strong focus on verification and validation.
● Detects defects early.
● Clear mapping between development and testing.
Disadvantages
● Similar to Waterfall — rigid and not ideal for changing requirements.
Advantages
● Delivers a working product early.
● Easier to manage risks.
● Users get value earlier.
● Supports partial deployment.
Disadvantages
● Requires good planning for integration.
● May need rework for earlier increments if changes occur.
Evolutionary Models
As per Roger Pressman, evolutionary software process models like the Prototyping
Model and the Spiral Model are characterized by their iterative nature, allowing for the
delivery of increasingly complete software versions. The Prototyping Model focuses on
developing user-visible prototypes to clarify requirements, while the Spiral Model combines
iteration with systematic risk analysis and controlled development phases.
Here's a breakdown of these models as described by Pressman:
Evolutionary Models in General
● Iterative and Incremental: These models deliver software in smaller, manageable
increments over time, allowing for continuous feedback and refinement.
● Increased Completeness: Each iteration results in a more complete version of the
software.
● Flexibility and Adaptability: They are well-suited for projects where requirements
may not be fully understood upfront or are expected to change during development.
Evolutionary Model
Prototyping Model
● User Feedback: The primary mechanism for this model is the creation of a
"mock-up" or prototype that serves to identify and refine user requirements.
● User Involvement: Users get to experience the system early, which helps to align
expectations and gather feedback.
● Potential Issues: Prototypes can sometimes lead to users having unrealistic
expectations for early delivery or may neglect important quality and maintenance
issues.
Spiral Model
● Combines Strengths: This model merges the iterative nature of prototyping with the
systematic approach and control of the Waterfall Model.
● Risk Analysis: A key aspect of the Spiral Model is the systematic analysis of project
risks in each iteration.
● Phased Approach: It proceeds through several loops, with each loop encompassing
planning, risk analysis, engineering (development), and evaluation.
Concurrent Model
the Concurrent Model (or Concurrent Development Model) is a software development
approach where development activities are performed in parallel, rather than sequentially**,
to accelerate delivery and improve outcomes. Unlike the linear Waterfall Model, this model
allows for simultaneous progress on different phases, incorporating events that trigger state
transitions (e.g., an issue in analysis causing a transition to awaiting changes). It's particularly
effective for large, complex projects or those with a client/server architecture.
Key Characteristics
● Parallel Execution: Multiple activities from different development phases occur at
the same time.
● Event-Driven States: The model uses state transitions triggered by specific events to
manage progress, such as an error in the analysis phase causing a state change.
● Flexibility: It offers greater adaptability and can integrate other development models
like Waterfall or Spiral to manage specific tasks within the overall concurrent
framework.
How it Works
1. Initial Planning: The software development process is broken down into activities,
and often a more established model like Spiral or Waterfall might be used for initial
planning or specific sub-projects.
2. Concurrent Execution: Activities in different phases (e.g., design and component
realization) run simultaneously.
3. Event-Driven Management: As development progresses, events occur (e.g., design
inconsistencies, new requirements) that trigger changes in the state of activities. For
instance, a "design inconsistency" event might move the design activity into an
"awaiting changes" state.
4. Iteration and Refinement: The model allows for early feedback and adjustments,
leading to faster iteration cycles and improved product quality.
Benefits
● Faster Delivery: By overlapping activities, the overall development time is reduced.
● Improved Quality: Early identification and resolution of issues become more
feasible.
● Enhanced Flexibility: The model is more adaptable to changing requirements
compared to purely sequential models.
Applications
● Client/Server Architectures: It's well-suited for client/server systems, where
components can be designed and realized concurrently.
● Large-Scale Projects: Its ability to manage parallel activities makes it effective for
complex and large projects.
1. Agility Principles
Pressman outlines 12 core principles aligned with the Agile Customer satisfaction via early
and continuous delivery
1. Welcoming changing requirements, even late in development
2. Deliver working software frequently (weeks or months, ideally weeks)
3. Business–developer collaboration daily
4. Motivated individuals: empower and trust them
5. Face-to-face communication as the most effective means
6. Working software as the primary measure of progress
7. Sustainable pace for sponsors, users, and developers
8. Continuous attention to technical excellence and design
9. Simplicity: maximize the work not done
10.Emergent solutions from self-organizing teams
11.Regular reflection (retrospectives) and adaptation
Coding
● Test-first development via automated unit tests.
● Pair programming ensures real-time QA and collaboration
● Continuous integration of work multiple times per day
Testing
● Daily runs of unit tests; acceptance tests defined and executed by customer based on
user stories
Values & Principles
XP is grounded in five values: Communication, Simplicity, Feedback, Courage, and
Respect
These support rapid feedback, collective ownership, and incremental design.
3. Scrum – Organizational Agile Framework
Structure
● Roles: Product Owner, Scrum Master, Development Team
● Artifacts: Product Backlog, Sprint Backlog, Product Increment
● Events: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective
Workflow
● Iterative sprints of 1–4 weeks
● Daily stand-ups (max 15 min) for status sync
● Review (stakeholder demo) + Retrospective for improving process
● Delivers potentially shippable software each sprint
▶️ Diagram Gallery
● Image 1 (top-left): XP lifecycle showing Planning → Design → Coding → Testing
→ Release
● Image 2: High-level Agile principles model (ToolsQA)
● Image 3: Scrum/XP hybrid model – overlapping structures of both methods
● Image 4: A detailed Kanban board structure with WIP limits and swimlanes
📋 Comparison Table
Aspect XP Scrum Kanban
Iteration Very short, story-based Fixed-length sprints (1–4 Continuous flow, pull
Style increments weeks) system
Primary Technical rigor (TDD, Organizational structure Flow optimization & WIP
Focus refactoring, pairing) and roles control
Roles Flat team, includes Product Owner, Scrum Flexible roles based on
Defined on-site customer Master, Dev Team existing org
The meaning of Agile is swift or versatile. "Agile process model" refers to a software
development approach based on iterative development. Agile methods break tasks into
smaller iterations, or parts do not directly involve long term planning. The project scope and
requirements are laid down at the beginning of the development process. Plans regarding the
number of iterations, the duration and the scope of each iteration are clearly defined in
advance.
Each iteration is considered as a short time "frame" in the Agile process model, which
typically lasts from one to four weeks. The division of the entire project into smaller parts
helps to minimize the project risk and to reduce the overall project delivery time
requirements. Each iteration involves a team working through a full software development
life cycle including planning, requirements analysis, design, coding, and testing before a
working product is demonstrated to the client.
1. Requirements gathering: In this phase, you must define the requirements. You should
explain business opportunities and plan the time and effort needed to build the project. Based
on this information, you can evaluate technical and economic feasibility.
2. Design the requirements: When you have identified the project, work with stakeholders
to define requirements. You can use the user flow diagram or the high-level UML diagram to
show the work of new features and show how it will apply to your existing system.
3. Construction/ iteration: When the team defines the requirements, the work begins.
Designers and developers start working on their project, which aims to deploy a working
product. The product will undergo various stages of improvement, so it includes simple,
minimal functionality.
4. Testing: In this phase, the Quality Assurance team examines the product's performance
and looks for the bug.
5. Deployment: In this phase, the team issues a product for the user's work environment.
6. Feedback: After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.
Every Agile technique aims to produce functional software as quickly as feasible while
embracing and adapting to change. Each approach differs, though, in how it outlines the
stages involved in software development. The following are some of the most popular Agile
techniques:
o Scrum
o eXtreme Programming(XP)
Scrum
o Scrum Master: The scrum can set up the master team, arrange the meeting and
remove obstacles for the process
o Product owner: The product owner makes the product backlog, prioritizes the delay
and is responsible for the distribution of functionality on each repetition.
o Scrum Team: The team manages its work and organizes the work to complete the
sprint or cycle.
eXtreme Programming(XP)
Extreme programming (XP) is a methodical technique that emphasizes continuous Delivery
and speed. It encourages close cooperation, constant planning and testing, quick feedback
loops, and greater customer participation. Frequent software delivery occurs, often every one
to three weeks. The aim is to enhance software responsiveness and quality in response to
evolving client needs.
The principles of boldness, simplicity, communication, and feedback form the foundation of
the XP technique.
Crystal:
There are three concepts of this method-
1. Chartering: Multi activities are involved in this phase such as making a development
team, performing feasibility analysis, developing plans, etc.
2. Cyclic delivery: under this, two more cycles consist, these are:
o Team updates the release plan.
o Integrated product delivers to the users.
3. Wrap up: According to the user environment, this phase performs deployment,
post-deployment.