Summary “Software Testing and Quality Assurance”
Module: "Models, Methodologies, and Frameworks in the Context of Software Product Quality Management"
General goal of the module
- We explore software development processes from a “helicopter view” — from general models to specific methodologies and frameworks.
- It is important to understand: each model affects the product’s quality because it defines when and how the tester gets involved in the process. The earlier they are included, the more influence they have on the final product’s quality.
Software Development Life Cycle
SDLC (Software Development Life Cycle) — a concept describing the stages of software creation from idea to maintenance.
Main development models
- Waterfall model
A linear sequence of stages, with almost no way back. Drawback — fixing errors after release is difficult.
- Prototyping model
A quick prototype (draft version of the product) is built so that the customer and the team can test functionality and make changes before full-scale development.
- Iterative & Incremental
The product is developed in parts (iterations). Provides more flexibility. Bugs and shortcomings are found earlier.
- Spiral model
Combines the iterative approach with risk analysis: each cycle includes planning, development, testing, and risk assessment before moving on. Cycles end with releases of a new version or updates of the current one.
- V-model
Testing is planned in parallel with development. Each stage corresponds to a level of testing.
- Agile (flexible approach, a kind of “philosophy” of development)
Small iterations, fast results, constant feedback. The main standard today.
Popular Agile methodologies and frameworks
Scrum — a framework where the following are important:
- roles (Product Owner, Scrum Master, Dev Team)
- events (Sprint, Daily Scrum, Planning, Sprint Review, Sprint Retrospective)
- artifacts (Product Backlog, Sprint Backlog, Increment)
- The tester is part of the development team, tests increments within sprints, and closely collaborates with developers and the Product Owner.
Kanban — a work management method where visualization and task flow are key.
- Principles: task visualization on the board, limiting Work in Progress (WIP), continuity of the process.
- Tool: Kanban board (columns representing the stages of product creation within the team).
- Focus: balance between team workload and delivery speed, reducing delays.
- The tester ensures quality at their stage of the task flow, providing quick feedback.
Lean — a process organization approach focused on delivering maximum value with minimal waste.
- Principles: customer value, waste elimination, optimization of value stream, continuous improvement.
- Tools: Value Stream Mapping, Kaizen, Just-in-Time.
- Focus: minimizing “waste” (time, resources, errors), improving quality and efficiency.
- The tester helps identify “waste” in processes, highlights errors and their causes, reduces defects, and ensures product quality with minimal effort.
Models and the tester’s role
Understanding the model = understanding where and how testing is integrated into the process.
- Waterfall — the tester gets involved at the end, checks the ready product; limited influence on quality.
- Prototyping model — the tester checks the prototype, gathers user feedback, identifies mismatches, and helps refine requirements to avoid future mistakes.
- Spiral model — the tester participates in each loop: evaluates risks, tests prototypes, and gives feedback before moving to the next cycle.
- Iterative — the tester checks each new part of the product; gradually builds up test scenarios.
- V-model — the tester is involved from the beginning, plans tests in parallel with development; each stage has its own testing level.
- Agile — testing is integrated into the team, continuous, and the tester participates in the whole process.