II - Testing Throughout the Software Development Lifecycle Flashcards
Functional Testing
Evaluates “what“ the system should do. Work products would include: business requirements, functional specs, epics and user stories, and use cases.
Non-Functional Testing
Evaluates “how well“ the system behaves.
Change Related Testing
Required when functions have been changed or added, to confirm the fix. Ex. Confirmation Testing and Regression Testing
Confirmation Testing
A type of Change Related Testing.
Confirms whether the original defect has been successfully fixed.
Regression Testing
A type of Change Related Testing.
Re-testing an already tested program after its modification (or a modification in the environment) to make sure that:
- the behavior of other code parts is not influenced unintentionally.
- no new defects are built in.
- no existing defects have been exposed.
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 activities (starting with test analysis and design) for a given test level begin during the corresponding development.
- Testers participate in discussions to define and refine requirements and design.
- Testers are involved in reviewing work products (e.g.,requirements, design, user stories, etc.)
Sequential Development Models
A type of Software Development Lifecycle Model. Linear, sequential process (step by step).
Typically done for long-term projects.
Ex. Waterfall or V model.
(terms like validation/verification, usually referring to V model).
Waterfall Model
An example of a Sequential Development Model.
- Testing is a “one time only” activity.
- “Final testing” at test closure of a software project.
- The model does not include error correction or a continuation of the project.
V Model
An example of a Sequential Development Model.
One side is developer activities, the other side is tester activities.
The V-model integrates the test process throughout the development process, implementing the principle of early testing: Development step, then a Verification + Validation step.
Iterative and Incremental Models
A type of Software Development Lifecycle Model. When groups of features are specified, designed, built, and tested together in a series of cycles.
The software’s features grow incrementally.
Typically for shorter-term projects, as it works in weekly increments
Ex. Rational Unified Process (RUP), Scrum/Agile, Kanban, and Spiral (Prototyping).
Rational Unified Process (RUP)
An example of an Iterative and Incremental Model.
An outdated model, not used much anymore.
Business value is delivered incrementally in time-boxed cross-disciplined iterations.
Scrum/Agile
An example of an Iterative and Incremental Model.
Pull user stories from the Backlog. Items are developed + tested over a short period of time (ex. days or weeks), to produce a potentially shippable product.
Kanban
An example of an Iterative and Incremental Model.
Work to do is categorized under 3 categories: To Do, Doing, Done.
Implemented with or without fixed-length iterations,
which can deliver either a single enhancement or feature upon completion, or can group features together to release at once.
Spiral (Prototyping)
An example of an Iterative and Incremental Model.
Involves creating experimental increments,
some of which may be heavily re-worked or even abandoned in subsequent development work.
Work with client to prototype the product. Testing begins once client signs off on the “final” prototype.
Software Development Lifecycle Model Selection
Software development lifecycle models must be selected and adapted to the context of project and product characteristics.
High-risk / long-term projects should use Sequential models.
Low-risk / shorter-term projects should use Iterative models.
Can also combine models together, depending on the project.