Software
Development Models
1.V-model (Sequential Development Model)
Although variants of the V-model exist, a common type of
V-model uses four test levels, corresponding to the four development levels.
The four levels used in this syllabus are:
o Component (unit)
testing
o Integration testing
o System testing
o Acceptance testing
In practice, a V-model may have more, fewer or different
levels of development and testing, depending on the project and the software
product. For example, there may be component integration testing after component
testing, and system integration testing after system testing.
Software work products (such as business scenarios or use
cases, requirements specifications, design documents and code) produced during
development is often the basis of testing in one or more test levels.
References for generic work products include Capability Maturity Model
Integration (CMMI) or ‘Software life cycle processes’ (IEEE/IEC 12207).
Verification and validation (and early test design) can be carried out during
the development of the software work products.
2.Iterative-incremental Development Models
Iterative-incremental development is the process of
establishing requirements, designing, building and testing a system in a series
of short development cycles. Examples are: prototyping, Rapid Application
Development (RAD), Rational Unified Process (RUP) and agile development models.
A system that is produced using these models may be tested at several test
levels during each iteration. An increment, added to others developed
previously, forms a growing partial system, which should also be tested.
Regression testing is increasingly important on all iterations after the first
one. Verification and validation can be carried out on each increment.
3.Testing within a Life Cycle Model
In any life cycle model, there are several characteristics
of good testing:
o For every
development activity there is a corresponding testing activity
o Each test level has
test objectives specific to that level
o The analysis and
design of tests for a given test level should begin during the corresponding
development activity
o Testers should be
involved in reviewing documents as soon as drafts are available in the
development life cycle
Test levels can be combined or reorganized depending on the
nature of the project or the system architecture. For example, for the
integration of a Commercial Off-The-Shelf (COTS) software product into a
system, the purchaser may perform integration testing at the system level
(e.g.,
integration to the infrastructure and other systems, or
system deployment) and acceptance testing
(functional and/or non-functional, and user and/or
operational testing).