Testing Throughout The Software Development Lifecycle: C2 - Restricted Diffuson

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 41

Testing Throughout the

Software Development
Lifecycle
- C2 – RESTRICTED DIFFUSON - - 1 - DIFFUSON -
- C2 – RESTRICTED
SOFTWARE DEVELOPMENT
LIFECYCLE MODEL

TEST LEVELS

TEST TYPES

MAINTENANCE
TESTING

- C2 – RESTRICTED DIFFUSON - - 2 -
SOFTWARE
DEVELOPMEN
T LIFECYCLE
MODELS
- C2 – RESTRICTED DIFFUSON - - 3 -
COMMON SOFTWARE DEVELOPMENT
LIFECYCLE MODELS

• Sequential development models


• Waterfall
• V-model
• Iterative and incremental
development models
• Rational Unified Process
• Scrum
• Kanban
• Spiral (or prototyping)

- C2 – RESTRICTED DIFFUSON - - 4 -
WATERFALL

- C2 – RESTRICTED DIFFUSON - - 5 -
V-MODEL

- C2 – RESTRICTED DIFFUSON - - 6 -
ITERATIVE DEVELOPMENT

• Rational Unified Process • Kanban


• Each iteration tends to be relatively • Implemented with or without fixed-
long (e.g., two to three months), and length iterations, which can deliver
the feature increments are either a single enhancement or
correspondingly large, such as two feature upon completion, or can
or three groups of related features group features together to release at
once
• Scrum
• Each iteration tends to be relatively • Spiral (or prototyping)
short (e.g., hours, days, or a few • Involves creating experimental
weeks), and the feature increments increments, some of which may be
are correspondingly small, such as a heavily re-worked or even
few enhancements and/or two or abandoned in subsequent
three new features development work

- C2 – RESTRICTED DIFFUSON - - 7 -
TEST
LEVELS

- C2 – RESTRICTED DIFFUSON - - 8 -
TEST LEVELS

- C2 – RESTRICTED DIFFUSON - - 9 -
COMPONENT TESTING

• Purpose:
• Component testing verify that each unit of a software work as expected or not
• Code follows detailed design o Detect defect and issue early
• Ensure quality of each unit (reduce effort of testing and fixing bugs)

• Input
• Component requirements
• Detailed design
• Code

- C2 – RESTRICTED DIFFUSON - - 1 0 -
COMPONENT TESTING

• Test approach • Stub : called from software


• Prepare test cases before coding. The component to be tested
test cases are run repeatedly until the
unit passes • Driver: call a component to be
• Test cases are created based on tested
specifications, design and data model
of the unit
• Stub and drivers are used to replace
the missing software and simulate
the interface between software
components in a simple manner

- C2 – RESTRICTED DIFFUSON - - 11 -
INTEGRATION TESTING

Purpose: • Input
Integration testing focuses testing • High level design (software and
system design)
interfaces between components,
• Architecture
interactions with different parts of
• Work-flow
system such as operating system,
• User cases
file system and hardware, interfaces
between system

- C2 – RESTRICTED DIFFUSON - - 1 2 -
INTEGRATION TESTING

• Component Integration • System Integration


Interactions between software Interactions between software
components and is done after components and is done after
component testing component testing

- C2 – RESTRICTED DIFFUSON - - 1 3 -
INTEGRATION TESTING

• Approach:
• Bigbang
• Incremental

- C2 – RESTRICTED DIFFUSON - - 1 4 -
INTEGRATION TESTING

• Big bang: All components are


integrated at a time
• Advantage: All components are
finished at integration time, so we
needn’t stub and driver
• Disadvantage: - Difficult to find the
cause of bugs - Waste of resource =>
Only apply when we expect that there
is no bug

- C2 – RESTRICTED DIFFUSON - - 1 5 -
INTEGRATION TESTING

• Incremental: Each component is integrated at a time


• Advantage: Easy to find cause of bugs
• Disadvantage: - Waste effort to create stub and driver

- C2 – RESTRICTED DIFFUSON - - 1 6 -
SYSTEM TESTING

• Purpose: • Test Approach


• System testing is • Testing environment must be setup as similar as
concerned with the live environment -> minimize the risk of
behavior of a whole environment specific failures not being found in
system/product based testing
on product • Include tests based on risks and/or requirement
specification. specification, business processes, use case, high
level descriptions/models of system behavior,
interactions with OS and system resource
• Functional testing, non-functional testing and
data quality characteristics should be covered

- C2 – RESTRICTED DIFFUSON - - 1 7 -
ACCEPTANCE TESTING (AT)

• Purpose
• To establish confidence in the system, part of the system or specific non-
functional characteristics of the system and access the system readiness for
deployment and use
• Validation is focused to determine: Are requirements enough? Is system fit
for user’s needs?

• Types:
• User AT
• Operational testing
• Contract and regulation AT
• Alpha/Beta testing

- C2 – RESTRICTED DIFFUSON - - 1 8 -
ACCEPTANCE TESTING (AT) - TYPES

• User AT • Contract and regulation AT


• Verify the fitness for use of • Contract’s acceptance criteria for producing
the system - Do by: User or custom-developed software
application manager • Regulation/Rules(government, legal, safety)
• Operational testing • Alpha/Beta testing
• Backup and restore • Cost: To get feedback early from potential
• Data recovery customers to complete the software before the
• User management product is put up for sale commercially
• Maintenance tasks • Alpha testing/factory acceptance testing is
• Data load and migration tasks performed at development’s site bug not by
development team
• Security
• Beta testing/field testing is performed by
customers/potential customer at their site

- C2 – RESTRICTED DIFFUSON - - 1 9 -
TEST TYPES

- C2 – RESTRICTED DIFFUSON - - 2 0 -
TEST TYPES

Test Types

Functional Non-functional Structure Testing related


Testing Testing Testing to changes

- C2 – RESTRICTED DIFFUSON - - 2 1 -
FUNCTIONAL TESTING

• Functions may be described in work products:


• Requirement specifications
• Use cases
• Functional specification

• Functional testing focuses on external behavior of software system


(technique: black-box)

• Functional testing can be used in every levels: Unit test, Integration test,
System test, Acceptance test

- C2 – RESTRICTED DIFFUSON - - 2 2 -
FUNCTIONAL TESTING

• Characteristics that FT(ISO 9126) focuses on:


• Suitability: suitability of software for the user’s need
• Interoperability: Interaction of the software with other
systems
• Security: Prevention of accidental or deliberate unauthorized
access to program and data
• Accuracy: Accuracy of the results provided by the software
• Compliance: compliance with standards, conventions,
regulations, law and similar rules in relation to functionality

- C2 – RESTRICTED DIFFUSON - - 2 3 -
NON-FUNCTIONAL TESTING

• Concentrate on “how fast and how well something is done”


• Focus on external behavior of software system (techniques: black-
box)
• Also can be performed at all levels of testing but mostly at System
testing

- C2 – RESTRICTED DIFFUSON - - 2 4 -
NON-FUNCTIONAL TESTING

• Characteristics of non-functional requirements (ISO 9126)


(Functionality ~ functional testing)
• Usability: understandability, learnability, operability, attractiveness and
compliance
• Maintainability: analyzability, changeability, stability, testability and
compliance
• Reliability: maturity, fault-tolerant, recoverability and compliance
• Portability: adaptability, installability, co-existence, replaceability and
compliance
• Efficiency: performance, resource utilization, compliance

- C2 – RESTRICTED DIFFUSON - - 2 5 -
NON-FUNCTIONAL TESTING

• Non-functional testing mostly includes:


• Performance testing
• Load testing
• Stress testing
• Volume testing

- C2 – RESTRICTED DIFFUSON - - 2 6 -
NON-FUNCTIONAL TESTING

• Performance testing:
• Tests the performance of a system under normal load conditions
• Standard conditions:
• Standard environment
• Standard input data
• Standard process (user’s action)
• The response time of an individual transition is a typical performance
requirement

- C2 – RESTRICTED DIFFUSON - - 2 7 -
NON-FUNCTIONAL TESTING

• Load testing:
• Tests the system’s ability to perform more than one function at a time
• Associated with more than one user using the system

Example: 1000 users trying to buy tickets to Ha Anh Tuan’s concert at the same
time

- C2 – RESTRICTED DIFFUSON - - 2 8 -
NON-FUNCTIONAL TESTING

• Stress testing:
• Tests the performance of a system under abnormal conditions to:
• Determine how the performance of the system degrades as the system loading is
increased
• Determine the manner in which the system ultimately fails when the system load
exceeds it capacity
• Volume testing: Test with large amounts of data to determine if limits
are reached that cause the software to fail (one kind of stress testing)

- C2 – RESTRICTED DIFFUSON - - 2 9 -
NON-FUNCTIONAL TESTING

• Recovery testing:
• Tests that the system can be recovered in the event of a failure
• Types of failure that as system may need to recover from include:
• Program errors
• Hardware failures (power failure, etc.)
• Transmission errors ( noise, line disconnected, etc.)
• Data errors

- C2 – RESTRICTED DIFFUSON - - 3 0 -
STRUCTURE TESTING

• Tests thoroughness of the system to evaluate coverage of a structure’s type

• Structure testing may be performed at all test levels (mostly used for
component testing and component integration testing)

• Structure testing often bases on percentage of the items being covered. If


coverage is not 100%, then more tests may be designed to test those items
to increase coverage

- C2 – RESTRICTED DIFFUSON - - 3 1 -
TESTING RELATED TO CHANGES

• Whenever having changes in the system, the changes may influence to


functional/non-functional/structure of the software. So we need to test
the changes
• Testing related to changes includes:
• Confirmation testing
• Regression testing

- C2 – RESTRICTED DIFFUSON - - 3 2 -
TESTING RELATED TO CHANGES

• Confirmation testing: • Regression testing:


• Needed when there is a defect fixed • Test to ensure there is no defect is
or change requirement made due to change of source code
• Test to confirm defect has indeed • Execute test cases that are executed
fixed or new change is correct before. There should be a regression
• Testing is performed exactly the test suite that executed every time a
same step/data of original bug new version of source code produced
=> Apply automation

- C2 – RESTRICTED DIFFUSON - - 3 3 -
MAINTENANCE
TESTING

- C2 – RESTRICTED DIFFUSON - - 3 4 -
MAINTENANCE TESTING

• Trigger for maintenance testing


• Impact analysis and regression testing
• Risks of maintenance testing

- C2 – RESTRICTED DIFFUSON - - 3 5 -
MAINTENANCE TESTING

• Once deployed, a software system is often in service for years or


decades. During this time the system, its configuration data, or its
environment are often corrected, changed or extended. Maintenance
testing is done on a existing operational system
• When receiving the changes, test cases need to be
created/updated/integrated, so that right after we have test objects, test
suite will be executed.

- C2 – RESTRICTED DIFFUSON - - 3 6 -
MAINTENANCE TESTING

• Trigger of maintenance testing:


• Modification
• Migration
• Retirement
• Archive data
• Cut off servers

- C2 – RESTRICTED DIFFUSON - - 3 7 -
MAINTENANCE TESTING

• Modifications include:
• Enhancement changes
• Emergency changes
• Correction (fix bug)
• Changes of environment/upgrade data/upgrade OS
• Modification is the most common trigger

- C2 – RESTRICTED DIFFUSON - - 3 8 -
MAINTENANCE TESTING

• Maintenance testing for migration should include:


• Operational tests of the new environment (from one platform to another
platform)
• When data from another application will be migrated into the system being
maintained

• Retirement - includes testing of data migration or archiving if long


data-retention periods are required

- C2 – RESTRICTED DIFFUSON - - 3 9 -
MAINTENANCE TESTING
Impact analysis and regression testing

• Maintenance testing includes two • Scope of maintenance testing


parts: depends on
• Testing the changes • Risk of changes
• Regression testing to show that the • Size of existing system
rest of the system has not been • Size of changes
affected by the maintenance work

- C2 – RESTRICTED DIFFUSON - - 4 0 -
MAINTENANCE TESTING

• Risks of maintenance testing


• Specifications are out of date or
missing
• Testers with domain knowledge are
not available

- C2 – RESTRICTED DIFFUSON - - 4 1 -

You might also like