SlideShare a Scribd company logo
1 of 44
Download to read offline
Testing throughout the software
life cycle
Unit II
Prof Mustufa I N
2.1 SOFTWARE DEVELOPMENT
MODELS
• The development process adopted for a project will
depend on the project aims and goals.
• The models specify the various stages of the process
and the order in which they are carried out.
• The way testing is organized must fit the development
life cycle or it will fail to deliver its benefit.
• If time to market is the key driver, then the testing
must be fast and efficient.
• If a fully documented software development life cycle,
with an audit trail of evidence, is required, the testing
must be fully documented.
Prof Mustufa I N
Prof Mustufa I N
2.1.1 V-model
• Before discussing the V-model, we
will look at the model which came
before it. The waterfall model was
one of the earliest models to be
designed.
• Sequential fashion.
• Design flows through into
development, which in turn flows
into build, and finally on into test.
• Testing tends to happen towards the
end of the project life cycle so
defects are detected close to the live
implementation date.
• With this model it has been difficult
to get feedback passed backwards up
the waterfall.
Prof Mustufa I N
2.1.1 V-model
• The V-model was developed to address some of the
problems experienced using the traditional waterfall
approach. Defects were being found too late in the life
cycle, as testing was not involved until the end of the
project. The V-model pro-vides guidance that testing
needs to begin as early as possible in the life cycle.
• These activities should be carried out in parallel with
development activities, and testers need to work with
developers and business analysts so they can perform
these activities and tasks and produce a set of test
deliverables.
Prof Mustufa I N
Prof Mustufa I N
• component testing: searches for defects in and verifies the
functioning of software components (e.g. modules,
programs, objects, classes etc.) that are separately testable;
• integration testing: tests interfaces between components,
interactions to different parts of a system such as an
operating system, file system and hard ware or interfaces
between systems;
• system testing: concerned with the behavior of the whole
system/product as defined by the scope of a development
project or product. The main focus of system testing is
verification against specified requirements;
• acceptance testing: validation testing with respect to user
needs, require ments, and business processes conducted to
determine whether or not to accept the system.
Prof Mustufa I N
Prof Mustufa I N
Prof Mustufa I N
• The initial increment will contain the infrastructure required to
support the initial build functionality.
• The increment produced by an iteration may be tested at
several levels as part of its development.
• Subsequent increments will need testing for the new
functionality, regression testing of the existing functionality,
and integration testing of both new and existing parts.
• 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 func-
tionality, 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.
Prof Mustufa I N
Examples of iterative or incremental development models are
prototyping, Rapid Application Development (RAD), and agile
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.
Prof Mustufa I N
Prof Mustufa I N
Prof Mustufa I N
Agile development
• Extreme Programming (XP) is currently one of the most well-known
agile development life cycle models.
• It demands an on-site customer for continual feedback and to
define and carry out functional acceptance testing.
• It promotes pair programming and shared code ownership amongst
the developers.
• It states that component test scripts shall be written before the
code is written and that those tests should be automated.
• It states that integration and testing of the code shall happen
several times a day.
• It states that we always implement the simplest solution to meet
today's problems.
Examples of iterative or incremental development models are
prototyping, Rapid Application Development (RAD), and agile
development.
Prof Mustufa I N
Prof Mustufa I N
2.2 TEST LEVELS
• The key characteristics for each test level are
discussed and defined to be able to more
clearly separate the various test levels.
• A thorough understanding and definition of
the various test levels will identify missing
areas and prevent overlap and repetition.
Prof Mustufa I N
2.2.1 Component testing
• Component testing, also known as unit,
module and program testing, searches
for defects in, and verifies the
functioning of software (e.g. modules,
programs, objects, classes, etc.) that are
separately testable.
• Component testing may be done in
isolation from the rest of the system
depending on the context of the
development life cycle and the system.
• Most often stubs and drivers are used to
replace the missing software. A stub is
called from the software component to
be tested; a driver calls a component to
be tested.
Prof Mustufa I N
Prof Mustufa I N
2.2.2 Integration testing
• Integration testing tests interfaces between
components, interactions to different parts of a
system such as an operating system, file system
and hardware or interfaces between systems.
• There may be more than one level of integration
testing and it may be carried out on test objects
of varying size. For example:
• • component integration testing tests the interactions
between software components and is done after component
testing;
• • system integration testing tests the interactions between
different systems and may be done after system testing.
Prof Mustufa I N
Prof Mustufa I N
• Non-Incremental integration or "big bang"
approach:
– Combines all the components at the same time and
then tests the program on the whole. This approach
gives a number of errors that are difficult to isolate
and trace as the whole program now is very vast.
The correction of such errors seems to go into
infinite loop.
• Incremental integration:
– constructed and tested in small increments, where
errors are easier to isolate and correct; interfaces
are more likely to be tested completely; and a
systematic test approach may be applied.
– Top-down Integration
– Bottom-up Integration
Prof Mustufa I N
Prof Mustufa I N
Top-down Integration
• Top-down integration testing is an incremental approach to
construction of program structure.
• Modules are integrated by moving downward through the
control hierarchy, beginning with the main control module (main
program).
• Modules subordinate (and ultimately subordinate) to the main
control module are incorporated into the structure in either a
depth-first or breadth-first manner.
Prof Mustufa I N
Depth-first integration & Breadth-first integration
• Depth-first integration would integrate all components on a major control
path of the structure.
• Selection of a major path is somewhat arbitrary and depends on application-
specific characteristics.
• For example, selecting the left-hand path, components M1, M2 , M5 would
be integrated first. Next, M8 or (if necessary for proper functioning of M2) M6
would be integrated.
• Breadth-first integration incorporates all components directly subordinate at
each level, moving across the structure horizontally.
• components M2, M3, and M4 would be integrated first. The next control
level, M5, M6, and so on, follows.
Prof Mustufa I N
Bottom-up Integration
• Bottom-up integration testing, as its name implies, begins construction and
testing with atomic modules i.e., components at the lowest levels in the
program structure.
• Because components are integrated from the bottom up, processing
required for components subordinate to a given level is always available and
the need for stubs is eliminated.
• A bottom-up integration strategy may be implemented with the following
steps:
– 1. Low-level components are combined into clusters (sometimes called
builds) that perform a specific software subfunction.
– 2. A driver (a control program for testing) is written to coordinate test case
input and output.
– 3. The cluster is tested.
– 4. Drivers are removed and clusters are combined moving upward in the
program structure.
Prof Mustufa I N
Prof Mustufa I N
2.2.3 System testing
• System testing is concerned with the behavior of the whole
system/product.
• It may include tests based on risks and/or requirements specification,
business processes, use cases, or other high level descriptions of
system behavior, interactions with the operating system, and system
resources.
• Its purpose may be to find as many defects as possible.
• Most often it is carried out by specialist testers that form a dedicated,
and sometimes independent, test team within development,
reporting to the development manager or project manager.
• Black box and White box testing.
Prof Mustufa I N
Prof Mustufa I N
2.2.4 Acceptance testing
• When the development organization has performed its
system test and has corrected all or most defects, the
system will be delivered to the user or customer for
acceptance testing.
• The acceptance test should answer questions such as: 'Can
the system be released?', 'What, if any, are the outstanding
(business) risks?' and 'Has development met their
obligations?'.
• Acceptance testing is most often the responsibility of the
user or customer.
• Acceptance testing is most often focused on a validation
type of testing, whereby we are trying to determine
whether the system is fit for purpose.
Prof Mustufa I N
Acceptance testing may occur at more than just a
single level, for example:
• • A Commercial Off The Shelf (COTS) software
product may be acceptance tested when it is
installed or integrated.
• • Acceptance testing of the usability of a
component may be done during component
testing.
• • Acceptance testing of a new functional
enhancement may come before system testing.
Prof Mustufa I N
Prof Mustufa I N
types of acceptance testing
• user acceptance test
focuses mainly on the functionality thereby validating the fitness-for-use
of the system by the business user
• operational acceptance test
(also called production acceptance test) validates whether the system
meets the requirements for operation.
• Contract acceptance testing
• Compliance or regulation acceptance testing.
• Alpha testing
This test takes place at the developer's site. A cross-section of potential
users and members of the developer's organization are invited to use the
system. Developers observe the users and note problems. Alpha testing
may also be carried out by an independent test team.
• Beta testing, or field testing,
sends the system to a cross-section of users who install it and use it under
real-world working conditions. The users send records of incidents with
the system to the development organization where the defects are
repaired. Prof Mustufa I N
Prof Mustufa I N
2.3 TEST TYPES: THE TARGETS OF TESTING
2.3.1 Testing of function (functional testing)
• The function of a system (or component) is 'what it does'. This
is typically described in a requirements specification, a
functional specification, or in use cases.
• Functional tests are based on these functions, described in
documents or understood by the testers and may be
performed at all test levels.
• Functional testing considers the specified behavior and is
often also referred to as black-box testing.
• Function (or functionality) testing can be done focusing on
suitability, interoperability, security, accuracy and compliance.
Security testing, for example, investigates the functions (e.g. a
firewall) relating to detection of threats, such as viruses, from
malicious outsiders.
Prof Mustufa I N
2.3.2 Testing of software product
characteristics (non-functional testing)
• We are testing something that we need to measure on a
scale of measurement, for example time to respond.
• Non-functional testing, as functional testing, is
performed at all test levels.
• Non-functional testing includes, but is not limited to,
performance testing, load testing, stress testing, usability
testing, maintainability testing, reliability testing and
portability testing. It is the testing of 'how well' the
system works.
2.3 TEST TYPES: THE TARGETS OF TESTING
Prof Mustufa I N
• reliability, which is defined further into the sub-characteristics
maturity (robustness), fault-tolerance, recoverability and compliance;
• usability, which is divided into the sub-characteristics
understandability, learnability, operability, attractiveness and
compliance;
• efficiency, which is divided into time behavior (performance),
resource utilization and compliance;
• maintainability, which consists of five sub-characteristics:
analyzability, changeability, stability, testability and compliance;
• portability, which also consists of five sub-characteristics:
adaptability, installability, co-existence, replaceability and compliance.
Prof Mustufa I N
2.3.3 Testing of software structure/architecture
(structural testing)
• Structural testing is often referred to as 'white-box'
or 'glass-box' because we are interested in what is
happening 'inside the box'.
• Structural testing is most often used as a way of
measuring the thoroughness of testing through the
coverage of a set of structural elements or
coverage items. It can occur at any test level.
2.3 TEST TYPES: THE TARGETS OF TESTING
Prof Mustufa I N
2.3.4 Testing related to changes (confirmation and
regression testing)
Confirmation testing (re-testing)
• When a test fails and we determine that the cause of the
failure is a software defect, the defect is reported, and we
can expect a new version of the software that has had the
defect fixed.
• In this case we will need to execute the test again to
confirm that the defect has indeed been fixed. This is
known as confirmation testing (also known as re-testing).
• When doing confirmation testing, it is important to ensure
that the test is executed in exactly the same way as it was
the first time, using the same inputs, data and
environment.
2.3 TEST TYPES: THE TARGETS OF TESTING
Prof Mustufa I N
2.3.4 Testing related to changes
(confirmation and regression testing)
Regression testing
• Like confirmation testing, regression testing involves
executing test cases that have been executed before.
• Executing tests with the intent of checking that the
system has not regressed (that is, it does not now have
more defects in it as a result of some change).
• More specifically, the purpose of regression testing is to
verify that modifications in the software or the
environment have not caused unintended adverse side
effects and that the system still meets its requirements.
2.3 TEST TYPES: THE TARGETS OF TESTING
Prof Mustufa I N
Prof Mustufa I N
2.4 MAINTENANCE TESTING
• Once deployed, a system is often in service for years or even
decades.
• Testing that is executed during this life cycle phase is called
'maintenance testing'.
• Test process applicable to new developments does not change
fundamentally for maintenance purposes.
• A maintenance test process usually begins with the receipt of an
application for a change or a release plan.
• A 'catching-up' operation is frequently required when systems are
maintained.
• New development and their appropriate test activities are usually
carried out as parts of a project, whereas maintenance tests are
normally executed as an activity in the regular organization.
Prof Mustufa I N
2.4.1 Impact analysis and regression
testing
Usually maintenance testing will consist of two parts:
1. testing the changes
2. regression tests to show that the rest of the system has not been
affected by the maintenance work.
• In addition to testing what has been changed, maintenance testing
includes extensive regression testing to parts of the system that
have not been changed.
• During impact analysis, together with stakeholders, a decision is
made on what parts of the system may be unintentionally affected
and therefore need careful regression testing.
• Extension or enhancement to the system may mean new areas
have been specified and tests would be drawn up just as for the
development.
Prof Mustufa I N
2.4.2 Triggers for maintenance testing
• As stated maintenance testing is done on an
existing operational system. It is triggered by
modifications, migration, or retirement of the
system.
• Modifications include planned enhancement
changes (e.g. release-based), corrective and
emergency changes, and changes of
environment, such as planned operating system
or database upgrades, or patches to newly
exposed or discovered vulnerabilities of the
operating system.
Prof Mustufa I N
• Maintenance testing for migration (e.g. from
one platform to another) should include
operational testing of the new environment,
as well as the changed software.
• Maintenance testing for the retirement of a
system may include the testing of data
migration or archiving, if long data-retention
periods are required
Prof Mustufa I N

More Related Content

What's hot

Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing StrategiesAlpana Bhaskar
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategiesSHREEHARI WADAWADAGI
 
A Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingA Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingFolio3 Software
 
Testing strategies -2
Testing strategies -2Testing strategies -2
Testing strategies -2Divya Tiwari
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)ShudipPal
 
Research issues in object oriented software testing
Research issues in object oriented software testingResearch issues in object oriented software testing
Research issues in object oriented software testingAnshul Vinayak
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurancelokareminakshi
 
Software testing strategies And its types
Software testing  strategies And its typesSoftware testing  strategies And its types
Software testing strategies And its typesMITULJAMANG
 
Software Reliability Testing Training Crash Course - Tonex Training
Software Reliability Testing Training Crash Course - Tonex TrainingSoftware Reliability Testing Training Crash Course - Tonex Training
Software Reliability Testing Training Crash Course - Tonex TrainingBryan Len
 
Validation & verification software engineering
Validation & verification software engineeringValidation & verification software engineering
Validation & verification software engineeringSweta Kumari Barnwal
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design Jayant Dalvi
 
Software project scheduling
Software project schedulingSoftware project scheduling
Software project schedulinglokareminakshi
 
Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)ShudipPal
 
ST-All about Test Case-p3
ST-All about Test Case-p3ST-All about Test Case-p3
ST-All about Test Case-p3Prachi Sasankar
 

What's hot (20)

Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing and analysis
Software testing and analysisSoftware testing and analysis
Software testing and analysis
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
A Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingA Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer Testing
 
Testing strategies -2
Testing strategies -2Testing strategies -2
Testing strategies -2
 
Lec25
Lec25Lec25
Lec25
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
Research issues in object oriented software testing
Research issues in object oriented software testingResearch issues in object oriented software testing
Research issues in object oriented software testing
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Mt s5 levels
Mt s5 levelsMt s5 levels
Mt s5 levels
 
Software testing strategies And its types
Software testing  strategies And its typesSoftware testing  strategies And its types
Software testing strategies And its types
 
Software Reliability Testing Training Crash Course - Tonex Training
Software Reliability Testing Training Crash Course - Tonex TrainingSoftware Reliability Testing Training Crash Course - Tonex Training
Software Reliability Testing Training Crash Course - Tonex Training
 
V and v model
V and v modelV and v model
V and v model
 
Validation & verification software engineering
Validation & verification software engineeringValidation & verification software engineering
Validation & verification software engineering
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design
 
Software project scheduling
Software project schedulingSoftware project scheduling
Software project scheduling
 
Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)
 
Unit 6
Unit 6Unit 6
Unit 6
 
ST-All about Test Case-p3
ST-All about Test Case-p3ST-All about Test Case-p3
ST-All about Test Case-p3
 

Similar to Testing throughout the software life cycle

Module V - Software Testing Strategies.pdf
Module V - Software Testing Strategies.pdfModule V - Software Testing Strategies.pdf
Module V - Software Testing Strategies.pdfadhithanr
 
sst ppt.pptx
sst ppt.pptxsst ppt.pptx
sst ppt.pptxPRIANKA R
 
Object Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slidesObject Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slidesPunjab University
 
System models of sdlc- v model
System models of sdlc- v modelSystem models of sdlc- v model
System models of sdlc- v modelMinal Kashyap
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process ModelsAjit Nayak
 
Software testing & its technology
Software testing & its technologySoftware testing & its technology
Software testing & its technologyHasam Panezai
 
unit-2_20-july-2018 (1).pptx
unit-2_20-july-2018 (1).pptxunit-2_20-july-2018 (1).pptx
unit-2_20-july-2018 (1).pptxPriyaFulpagare1
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineeringArun Nair
 
Software Testing Strategy
Software Testing StrategySoftware Testing Strategy
Software Testing StrategyAjeng Savitri
 
Software engineering 21 integration testing
Software engineering  21 integration testingSoftware engineering  21 integration testing
Software engineering 21 integration testingVaibhav Khanna
 
software testing strategies
software testing strategiessoftware testing strategies
software testing strategiesHemanth Gajula
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering Huda Alameen
 
Ncerc rlmca202 adm m3 ssm
Ncerc rlmca202  adm m3 ssmNcerc rlmca202  adm m3 ssm
Ncerc rlmca202 adm m3 ssmssmarar
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycleEmi Rizki Ayunanda
 
Solution Evaluation (BA Role)
Solution Evaluation (BA Role)   Solution Evaluation (BA Role)
Solution Evaluation (BA Role) Shwetha-BA
 
02. testing throughout the software life cycle
02. testing throughout the software life cycle02. testing throughout the software life cycle
02. testing throughout the software life cycleTricia Karina
 
Objectorientedtesting 160320132146
Objectorientedtesting 160320132146Objectorientedtesting 160320132146
Objectorientedtesting 160320132146vidhyyav
 

Similar to Testing throughout the software life cycle (20)

Unit 3 for st
Unit 3 for stUnit 3 for st
Unit 3 for st
 
Module V - Software Testing Strategies.pdf
Module V - Software Testing Strategies.pdfModule V - Software Testing Strategies.pdf
Module V - Software Testing Strategies.pdf
 
sst ppt.pptx
sst ppt.pptxsst ppt.pptx
sst ppt.pptx
 
Object Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slidesObject Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slides
 
System models of sdlc- v model
System models of sdlc- v modelSystem models of sdlc- v model
System models of sdlc- v model
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
 
Software testing & its technology
Software testing & its technologySoftware testing & its technology
Software testing & its technology
 
unit-2_20-july-2018 (1).pptx
unit-2_20-july-2018 (1).pptxunit-2_20-july-2018 (1).pptx
unit-2_20-july-2018 (1).pptx
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
SDLCTesting
SDLCTestingSDLCTesting
SDLCTesting
 
Software Testing Strategy
Software Testing StrategySoftware Testing Strategy
Software Testing Strategy
 
Software engineering 21 integration testing
Software engineering  21 integration testingSoftware engineering  21 integration testing
Software engineering 21 integration testing
 
software testing strategies
software testing strategiessoftware testing strategies
software testing strategies
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
Ncerc rlmca202 adm m3 ssm
Ncerc rlmca202  adm m3 ssmNcerc rlmca202  adm m3 ssm
Ncerc rlmca202 adm m3 ssm
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Solution Evaluation (BA Role)
Solution Evaluation (BA Role)   Solution Evaluation (BA Role)
Solution Evaluation (BA Role)
 
02. testing throughout the software life cycle
02. testing throughout the software life cycle02. testing throughout the software life cycle
02. testing throughout the software life cycle
 
Objectorientedtesting 160320132146
Objectorientedtesting 160320132146Objectorientedtesting 160320132146
Objectorientedtesting 160320132146
 

More from MusTufa Nullwala

More from MusTufa Nullwala (20)

Internet of Things
Internet of ThingsInternet of Things
Internet of Things
 
Operating system
Operating systemOperating system
Operating system
 
Augmented Reality
Augmented RealityAugmented Reality
Augmented Reality
 
Intro to web development
Intro to web developmentIntro to web development
Intro to web development
 
An introduction to the Internet
An introduction to the InternetAn introduction to the Internet
An introduction to the Internet
 
System center service manager
System center service managerSystem center service manager
System center service manager
 
System center orchestrator
System center orchestratorSystem center orchestrator
System center orchestrator
 
Network Design Implications of QoS and QoE
Network Design Implications of QoS and QoENetwork Design Implications of QoS and QoE
Network Design Implications of QoS and QoE
 
Microsoft System center
Microsoft System centerMicrosoft System center
Microsoft System center
 
Quality of Experience
Quality of ExperienceQuality of Experience
Quality of Experience
 
Quality of Service
Quality of ServiceQuality of Service
Quality of Service
 
Network Virtualization
Network VirtualizationNetwork Virtualization
Network Virtualization
 
NFV Functionality
NFV FunctionalityNFV Functionality
NFV Functionality
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
V-Test Model
V-Test ModelV-Test Model
V-Test Model
 
Verification and Validation
Verification and ValidationVerification and Validation
Verification and Validation
 
Network Functions Virtualization - Concepts and Architecture
Network Functions Virtualization - Concepts and ArchitectureNetwork Functions Virtualization - Concepts and Architecture
Network Functions Virtualization - Concepts and Architecture
 
Continual service improvement methods and techniques
Continual service improvement methods and techniquesContinual service improvement methods and techniques
Continual service improvement methods and techniques
 
Unit 3 chap 4 itsm
Unit 3 chap 4 itsmUnit 3 chap 4 itsm
Unit 3 chap 4 itsm
 
Unit 3 chap 2 itsm
Unit 3 chap 2 itsmUnit 3 chap 2 itsm
Unit 3 chap 2 itsm
 

Recently uploaded

DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 

Recently uploaded (20)

DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 

Testing throughout the software life cycle

  • 1. Testing throughout the software life cycle Unit II Prof Mustufa I N
  • 2. 2.1 SOFTWARE DEVELOPMENT MODELS • The development process adopted for a project will depend on the project aims and goals. • The models specify the various stages of the process and the order in which they are carried out. • The way testing is organized must fit the development life cycle or it will fail to deliver its benefit. • If time to market is the key driver, then the testing must be fast and efficient. • If a fully documented software development life cycle, with an audit trail of evidence, is required, the testing must be fully documented. Prof Mustufa I N
  • 4. 2.1.1 V-model • Before discussing the V-model, we will look at the model which came before it. The waterfall model was one of the earliest models to be designed. • Sequential fashion. • Design flows through into development, which in turn flows into build, and finally on into test. • Testing tends to happen towards the end of the project life cycle so defects are detected close to the live implementation date. • With this model it has been difficult to get feedback passed backwards up the waterfall. Prof Mustufa I N
  • 5. 2.1.1 V-model • The V-model was developed to address some of the problems experienced using the traditional waterfall approach. Defects were being found too late in the life cycle, as testing was not involved until the end of the project. The V-model pro-vides guidance that testing needs to begin as early as possible in the life cycle. • These activities should be carried out in parallel with development activities, and testers need to work with developers and business analysts so they can perform these activities and tasks and produce a set of test deliverables. Prof Mustufa I N
  • 7. • component testing: searches for defects in and verifies the functioning of software components (e.g. modules, programs, objects, classes etc.) that are separately testable; • integration testing: tests interfaces between components, interactions to different parts of a system such as an operating system, file system and hard ware or interfaces between systems; • system testing: concerned with the behavior of the whole system/product as defined by the scope of a development project or product. The main focus of system testing is verification against specified requirements; • acceptance testing: validation testing with respect to user needs, require ments, and business processes conducted to determine whether or not to accept the system. Prof Mustufa I N
  • 10. • The initial increment will contain the infrastructure required to support the initial build functionality. • The increment produced by an iteration may be tested at several levels as part of its development. • Subsequent increments will need testing for the new functionality, regression testing of the existing functionality, and integration testing of both new and existing parts. • 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 func- tionality, 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. Prof Mustufa I N
  • 11. Examples of iterative or incremental development models are prototyping, Rapid Application Development (RAD), and agile 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. Prof Mustufa I N
  • 14. Agile development • Extreme Programming (XP) is currently one of the most well-known agile development life cycle models. • It demands an on-site customer for continual feedback and to define and carry out functional acceptance testing. • It promotes pair programming and shared code ownership amongst the developers. • It states that component test scripts shall be written before the code is written and that those tests should be automated. • It states that integration and testing of the code shall happen several times a day. • It states that we always implement the simplest solution to meet today's problems. Examples of iterative or incremental development models are prototyping, Rapid Application Development (RAD), and agile development. Prof Mustufa I N
  • 16. 2.2 TEST LEVELS • The key characteristics for each test level are discussed and defined to be able to more clearly separate the various test levels. • A thorough understanding and definition of the various test levels will identify missing areas and prevent overlap and repetition. Prof Mustufa I N
  • 17. 2.2.1 Component testing • Component testing, also known as unit, module and program testing, searches for defects in, and verifies the functioning of software (e.g. modules, programs, objects, classes, etc.) that are separately testable. • Component testing may be done in isolation from the rest of the system depending on the context of the development life cycle and the system. • Most often stubs and drivers are used to replace the missing software. A stub is called from the software component to be tested; a driver calls a component to be tested. Prof Mustufa I N
  • 19. 2.2.2 Integration testing • Integration testing tests interfaces between components, interactions to different parts of a system such as an operating system, file system and hardware or interfaces between systems. • There may be more than one level of integration testing and it may be carried out on test objects of varying size. For example: • • component integration testing tests the interactions between software components and is done after component testing; • • system integration testing tests the interactions between different systems and may be done after system testing. Prof Mustufa I N
  • 21. • Non-Incremental integration or "big bang" approach: – Combines all the components at the same time and then tests the program on the whole. This approach gives a number of errors that are difficult to isolate and trace as the whole program now is very vast. The correction of such errors seems to go into infinite loop. • Incremental integration: – constructed and tested in small increments, where errors are easier to isolate and correct; interfaces are more likely to be tested completely; and a systematic test approach may be applied. – Top-down Integration – Bottom-up Integration Prof Mustufa I N
  • 23. Top-down Integration • Top-down integration testing is an incremental approach to construction of program structure. • Modules are integrated by moving downward through the control hierarchy, beginning with the main control module (main program). • Modules subordinate (and ultimately subordinate) to the main control module are incorporated into the structure in either a depth-first or breadth-first manner. Prof Mustufa I N
  • 24. Depth-first integration & Breadth-first integration • Depth-first integration would integrate all components on a major control path of the structure. • Selection of a major path is somewhat arbitrary and depends on application- specific characteristics. • For example, selecting the left-hand path, components M1, M2 , M5 would be integrated first. Next, M8 or (if necessary for proper functioning of M2) M6 would be integrated. • Breadth-first integration incorporates all components directly subordinate at each level, moving across the structure horizontally. • components M2, M3, and M4 would be integrated first. The next control level, M5, M6, and so on, follows. Prof Mustufa I N
  • 25. Bottom-up Integration • Bottom-up integration testing, as its name implies, begins construction and testing with atomic modules i.e., components at the lowest levels in the program structure. • Because components are integrated from the bottom up, processing required for components subordinate to a given level is always available and the need for stubs is eliminated. • A bottom-up integration strategy may be implemented with the following steps: – 1. Low-level components are combined into clusters (sometimes called builds) that perform a specific software subfunction. – 2. A driver (a control program for testing) is written to coordinate test case input and output. – 3. The cluster is tested. – 4. Drivers are removed and clusters are combined moving upward in the program structure. Prof Mustufa I N
  • 27. 2.2.3 System testing • System testing is concerned with the behavior of the whole system/product. • It may include tests based on risks and/or requirements specification, business processes, use cases, or other high level descriptions of system behavior, interactions with the operating system, and system resources. • Its purpose may be to find as many defects as possible. • Most often it is carried out by specialist testers that form a dedicated, and sometimes independent, test team within development, reporting to the development manager or project manager. • Black box and White box testing. Prof Mustufa I N
  • 29. 2.2.4 Acceptance testing • When the development organization has performed its system test and has corrected all or most defects, the system will be delivered to the user or customer for acceptance testing. • The acceptance test should answer questions such as: 'Can the system be released?', 'What, if any, are the outstanding (business) risks?' and 'Has development met their obligations?'. • Acceptance testing is most often the responsibility of the user or customer. • Acceptance testing is most often focused on a validation type of testing, whereby we are trying to determine whether the system is fit for purpose. Prof Mustufa I N
  • 30. Acceptance testing may occur at more than just a single level, for example: • • A Commercial Off The Shelf (COTS) software product may be acceptance tested when it is installed or integrated. • • Acceptance testing of the usability of a component may be done during component testing. • • Acceptance testing of a new functional enhancement may come before system testing. Prof Mustufa I N
  • 32. types of acceptance testing • user acceptance test focuses mainly on the functionality thereby validating the fitness-for-use of the system by the business user • operational acceptance test (also called production acceptance test) validates whether the system meets the requirements for operation. • Contract acceptance testing • Compliance or regulation acceptance testing. • Alpha testing This test takes place at the developer's site. A cross-section of potential users and members of the developer's organization are invited to use the system. Developers observe the users and note problems. Alpha testing may also be carried out by an independent test team. • Beta testing, or field testing, sends the system to a cross-section of users who install it and use it under real-world working conditions. The users send records of incidents with the system to the development organization where the defects are repaired. Prof Mustufa I N
  • 34. 2.3 TEST TYPES: THE TARGETS OF TESTING 2.3.1 Testing of function (functional testing) • The function of a system (or component) is 'what it does'. This is typically described in a requirements specification, a functional specification, or in use cases. • Functional tests are based on these functions, described in documents or understood by the testers and may be performed at all test levels. • Functional testing considers the specified behavior and is often also referred to as black-box testing. • Function (or functionality) testing can be done focusing on suitability, interoperability, security, accuracy and compliance. Security testing, for example, investigates the functions (e.g. a firewall) relating to detection of threats, such as viruses, from malicious outsiders. Prof Mustufa I N
  • 35. 2.3.2 Testing of software product characteristics (non-functional testing) • We are testing something that we need to measure on a scale of measurement, for example time to respond. • Non-functional testing, as functional testing, is performed at all test levels. • Non-functional testing includes, but is not limited to, performance testing, load testing, stress testing, usability testing, maintainability testing, reliability testing and portability testing. It is the testing of 'how well' the system works. 2.3 TEST TYPES: THE TARGETS OF TESTING Prof Mustufa I N
  • 36. • reliability, which is defined further into the sub-characteristics maturity (robustness), fault-tolerance, recoverability and compliance; • usability, which is divided into the sub-characteristics understandability, learnability, operability, attractiveness and compliance; • efficiency, which is divided into time behavior (performance), resource utilization and compliance; • maintainability, which consists of five sub-characteristics: analyzability, changeability, stability, testability and compliance; • portability, which also consists of five sub-characteristics: adaptability, installability, co-existence, replaceability and compliance. Prof Mustufa I N
  • 37. 2.3.3 Testing of software structure/architecture (structural testing) • Structural testing is often referred to as 'white-box' or 'glass-box' because we are interested in what is happening 'inside the box'. • Structural testing is most often used as a way of measuring the thoroughness of testing through the coverage of a set of structural elements or coverage items. It can occur at any test level. 2.3 TEST TYPES: THE TARGETS OF TESTING Prof Mustufa I N
  • 38. 2.3.4 Testing related to changes (confirmation and regression testing) Confirmation testing (re-testing) • When a test fails and we determine that the cause of the failure is a software defect, the defect is reported, and we can expect a new version of the software that has had the defect fixed. • In this case we will need to execute the test again to confirm that the defect has indeed been fixed. This is known as confirmation testing (also known as re-testing). • When doing confirmation testing, it is important to ensure that the test is executed in exactly the same way as it was the first time, using the same inputs, data and environment. 2.3 TEST TYPES: THE TARGETS OF TESTING Prof Mustufa I N
  • 39. 2.3.4 Testing related to changes (confirmation and regression testing) Regression testing • Like confirmation testing, regression testing involves executing test cases that have been executed before. • Executing tests with the intent of checking that the system has not regressed (that is, it does not now have more defects in it as a result of some change). • More specifically, the purpose of regression testing is to verify that modifications in the software or the environment have not caused unintended adverse side effects and that the system still meets its requirements. 2.3 TEST TYPES: THE TARGETS OF TESTING Prof Mustufa I N
  • 41. 2.4 MAINTENANCE TESTING • Once deployed, a system is often in service for years or even decades. • Testing that is executed during this life cycle phase is called 'maintenance testing'. • Test process applicable to new developments does not change fundamentally for maintenance purposes. • A maintenance test process usually begins with the receipt of an application for a change or a release plan. • A 'catching-up' operation is frequently required when systems are maintained. • New development and their appropriate test activities are usually carried out as parts of a project, whereas maintenance tests are normally executed as an activity in the regular organization. Prof Mustufa I N
  • 42. 2.4.1 Impact analysis and regression testing Usually maintenance testing will consist of two parts: 1. testing the changes 2. regression tests to show that the rest of the system has not been affected by the maintenance work. • In addition to testing what has been changed, maintenance testing includes extensive regression testing to parts of the system that have not been changed. • During impact analysis, together with stakeholders, a decision is made on what parts of the system may be unintentionally affected and therefore need careful regression testing. • Extension or enhancement to the system may mean new areas have been specified and tests would be drawn up just as for the development. Prof Mustufa I N
  • 43. 2.4.2 Triggers for maintenance testing • As stated maintenance testing is done on an existing operational system. It is triggered by modifications, migration, or retirement of the system. • Modifications include planned enhancement changes (e.g. release-based), corrective and emergency changes, and changes of environment, such as planned operating system or database upgrades, or patches to newly exposed or discovered vulnerabilities of the operating system. Prof Mustufa I N
  • 44. • Maintenance testing for migration (e.g. from one platform to another) should include operational testing of the new environment, as well as the changed software. • Maintenance testing for the retirement of a system may include the testing of data migration or archiving, if long data-retention periods are required Prof Mustufa I N