N this chapter, we will introduce you to the fundamentals of testing: why testing is


part of its development. Subsequent increments will need testing for the new



tải về 6.34 Mb.
Chế độ xem pdf
trang2/25
Chuyển đổi dữ liệu03.04.2023
Kích6.34 Mb.
#54490
1   2   3   4   5   6   7   8   9   ...   25
Foundations of Software Testing ISTQB Certification 3rd ed


part of its development. Subsequent increments will need testing for the new
functionality, regression testing of the existing functionality, and integration testing
need, wish,
policy, law
User
requirements
Operational
system
Acceptance
test execution
System
test execution
Integration
test execution
Component
test execution
System
requirements
Global
design
Detailed
design
Implementation
Preparation
Acceptance test
Preparation
System test
Preparation
Integration test
F I G U R E 2 . 2
V-model
Off-the-shelf software
(commercial off-the-
shelf software,
COTS) A software
product that is developed
for the general market,
i.e. for a large number of
customers, and that is
delivered to many
customers in identical
format.
Performance The
degree to which a system
or component
accomplishes its
designated functions
within given constraints
regarding processing
time and throughput
rate.
30
Chapter 2 Testing throughout the software life cycle


of both new and existing parts. Regression testing is increasingly important on all
iterations after the first one. This means that more testing will be required at each
subsequent delivery phase which must be allowed for in the project plans. This life
cycle can give early market presence with critical functionality, can be simpler to
manage because the workload is divided into smaller pieces, and can reduce initial
investment although it may cost more in the long run. Also early market presence
will mean validation testing is carried out at each increment, thereby giving early
feedback on the business value and fitness-for-use of the product.
Examples of iterative or incremental development models are prototyping, Rapid
Application Development (RAD), Rational Unified Process (RUP) and agile devel-
opment (e.g. Scrum). For the purpose of better understanding iterative development
models shown in Figure 2.3 and the changing role of testing a short explanation of
both RAD and agile development is provided.
Rapid Application Development
Rapid Application Development (RAD) is formally a parallel development of
functions and subsequent integration.
Components/functions are developed in parallel as if they were mini projects, the
developments are time-boxed, delivered, and then assembled into a working prototype.
This can very quickly give the customer something to see and use and to provide
feedback regarding the delivery and their requirements. Rapid change and development
of the product is possible using this methodology. However the product specification will
need to be developed for the product at some point, and the project will need to be placed
under more formal controls prior to going into production. This methodology allows early
validation of technology risks and a rapid response to changing customer requirements.
Dynamic System Development Methodology [DSDM] is a refined RAD process that
allows controls to be put in place in order to stop the process from getting out of control.
Remember we still need to have the essentials of good development practice in place in
order for these methodologies to work. We need to maintain strict configuration manage-
ment of the rapid changes that we are making in a number of parallel development cycles.
From the testing perspective we need to plan this very carefully and update our plans
regularly as things will be changing very rapidly (see Chapter 5 for more on test plans).
The RAD development process shown in Figure 2.4, encourages active customer
feedback. The customer gets early visibility of the product, can provide feedback on
the design and can decide, based on the existing functionality, whether to proceed
with the development, what functionality to include in the next delivery cycle or even
F I G U R E 2 . 3
Iterative development model
Incremental
development model
A development lifecycle
where a project is broken
into a series of
increments, each of
which delivers a portion
of the functionality in the
overall project
requirements. The
requirements are
prioritized and delivered
in priority order in the
appropriate increment. In
some (but not all)
versions of this lifecycle
model, each subproject
follows a
‘mini V-model’
with its own design,
coding and testing
phases.
Iterative development
model A development
lifecycle where a project
is broken into a usually
large number of
iterations. An iteration is
a complete development
loop resulting in a release
(internal or external) of
an executable product, a
subset of the final
product under
development, which
grows from iteration to
iteration to become the
final product.
Section 1 Software Development Models 31


to halt the project if it is not delivering the expected value. An early business-focused
solution in the market place gives an early return on investment (ROI) and can
provide valuable marketing information for the business. Validation with the RAD
development process is thus an early and major activity.
Agile development
In this section, we will describe what agile development is and then cover the changes
that this way of working brings to testing. Agile software development is a group of
software development methodologies based on iterative incremental development,
where requirements and solutions evolve through collaboration between self-organizing
cross-functional teams. Most agile teams use Scrum, a management framework for
iterative incremental development projects. Typical agile teams are 5 to 9 people, and
the agile manifesto describes ways of working that are ideal for small teams, and that
counteract problems prevalent in the late 1990s with its emphasis on process and
documentation. The agile manifesto consists of four statements describing what is
valued in this way of working:
l
individuals and interactions over processes and tools
l
working software over comprehensive documentation
l
customer collaboration over contract negotiation
l
responding to change over following a plan.
While there are a number of agile methodologies in practice, the industry seems
to have settled on the use of Scrum as an agile management approach, and Extreme
Programming (XP) as the main source of agile development ideas. Some character-
istics of project teams using Scrum and XP are:
l
The generation of business stories (a form of lightweight use cases) to define
the functionality, rather than highly detailed requirements specifications.
l
The incorporation of business representatives into the development process, as
tải về 6.34 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   25




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương