2.1-Objectives of testing
2.1.1 - Software Development and Software Testing
It is an important part of a tester's role to be familiar with the common software development lifecycle models so that appropriate test activities can take place.
In any software development lifecycle model, there are several characteristics of good testing:
- For every development activity, there is a corresponding test activity
- Each test level has test objectives specific to that level
- Test analysis and design for a given test level begin during the corresponding development activity
- Testers participate in discussions to define and refine requirements and design, and are involved in reviewing work products (e.g., requirements, design, user stories, etc.) as soon as drafts are available.
This syllabus categorizes common software development lifecycle models as follows:
- Sequential development models
- Iterative and incremental development models
-
Sequential model:
A sequential development model describes the software development process as a linear, sequential flow of activities. This means that any phase in the development process should begin when the previous phase is complete.
Typically require months or years for delivery to stakeholders and users.
Example:
-
Waterfall
-
Iterative model:
Iterative development occurs when groups of features are specified, designed, built, and tested together in a series of cycles, often of a fixed duration.
Examples:
- Rational Unified Process
- Scrum
- Kanban
- Spiral
2.1.2 - Software Development Lifecycle Models in Context
-
Software development lifecycle models must be selected and adapted to the context of project and product characteristics. An appropriate software development lifecycle model should be selected and adapted based on the project goal, the type of product being developed, business priorities (e.g., time-tomarket), and identified product and project risks.
-
Depending on the context of the project, it may be necessary to combine or reorganize test levels and/or test activities.
Reasons why software development models must be adapted to the context of project and product characteristics can be:
- Difference in product risks of systems (complex or simple project)
- Many business units can be part of a project or program (combination of sequential and agile development)
- Short time to deliver a product to the market (merge of test levels and/or integration of test types in test levels)