Professional Documents
Culture Documents
SDLC
Iterative &
Sequential
Incremental
Implementation
• In this model, test activities only occur after all other development
activities have been completed.
Testing
Maintenance
-----------------------------------------------------------------------------
EX2: V-Model
Unlike the Waterfall
model, the V-model
integrates the test process
throughout the
development process,
implementing the
principle of early testing.
Incremental Development
Incremental development involves establishing requirements, designing, building, and testing a
system in pieces, which means that the software’s features grow incrementally.
• The size of these feature increments vary, with some methods having larger pieces and some
smaller pieces.
• The feature increments can be as small as a single change to a user interface screen or new
query option.
Iterative Development
Iterative development occurs when groups of features are specified, designed, built, and tested
together in a series of cycles, often of a fixed duration.
• Iterations may involve changes to features developed in earlier iterations, along with changes in
project scope.
• Each iteration delivers working software which is a growing subset of the overall set of features until
the final software is delivered or development is stopped.
EX: Include
Continuous Delivery
In some cases, teams use continuous delivery or continuous deployment,
both of which involve significant automation of multiple test levels as
part of their delivery pipelines.
• For example, a V-model may be used for the development and testing of
the backend systems and their integrations, while an Agile development
model may be used to develop and test the front- end user interface (UI)
and functionality.
Integration
Testing
Component System
Integration Integration
Component integration tests and system integration tests should concentrate on
the integration itself.
•For example, if integrating module A with module B, tests should focus on the
communication between the modules, not the functionality of the individual
modules, as that should have been covered during component testing.
•If integrating system X with system Y, tests should focus on the communication
between the systems, not the functionality of the individual systems, as that should
have been covered during system testing.
Acceptance testing may produce information to assess the system’s readiness for deployment and
use by the customer (end-user).
Defects may be found during acceptance testing, but finding defects is often not an objective, and finding a
significant number of defects during acceptance testing may in some cases be considered a major project
risk.
Test Types
A test type is a group of test activities aimed at testing specific characteristics
of a software system, or a part of a system, based on specific test objectives.
Functional Testing:
Functional testing of a system involves tests that
evaluate functions that the system should perform.
• Functional requirements may be described in work products such as:
• Business requirements specifications. (BRS)
• Epics.
• User stories.
• Use cases.
• Functional specifications
• They may be undocumented.
The functions are “what” the system should do.
• Functional tests should be performed at all test levels, though the focus is
different at each level.
Functional Coverage
• Functional coverage is the extent to which some type of functional
element has been exercised by tests, and is expressed as a percentage
of the type(s) of element being covered.
Non-Functional Coverage
Nonfunctional coverage is the extent to which some type of non-
functional element has been exercised by tests, and is expressed as a
percentage of the type(s) of element being covered.
Structural coverage is the extent to which some type of structural element has been
exercised by tests, and is expressed as a percentage of the type of element being
covered.
• At the component integration testing level, white-box testing may be based on the
architecture of the system, such as interface between components, and structural
coverage may be measured in terms of the percentage of interfaces exercised by tests.
Change Related Testing
When changes are made to a system, testing should be done" to confirm that the
changes have corrected the defect or implemented the functionality correctly", and
have not caused any unforeseen adverse consequences.
1- Confirmation Testing
• After a defect is fixed, the software should be tested.
• At the very least, the steps to reproduce the failure(s) caused by
the defect must be re-executed on the new software version.
• The purpose of a confirmation test is to confirm whether the
original defect has been successfully fixed.
2- Regression Testing
Maintenance Testing
• Once deployed to production environments, software and
systems need to be maintained
The degree of risk of the change, for example, the degree to which the changed
area of software communicates with other components or systems.
The size of the existing system.
The size of the change.
Impact Analysis
Impact analysis evaluates the changes that were made for a
maintenance release to identify the intended consequences.