SlideShare a Scribd company logo
CHAPTER 2 -
Testing throughout the
software life cycle
Based on ISTQB CTFL Syllabus
Presented by :
DavisThomas K
Syllabus
After completing
this lesson, you
will be able to
understand:
1. Software development models
2.Test levels
3.TestTypes
4. MaintenanceTesting
K Levels
2)Testing throughout the life-cycle: (K2)
 Software development models (K2)
 Test Levels (Eg. Unit testing, Component
testing, Integration testing.) (K2)
 Test types (Functional, non-functional,
structural, change-related testing) (K2)
 Maintenance testing (K2)
Verification
andValidation
testing
VERIFICATION TESTING VALIDATIONTESTING
Verification is a static practice of
verifying documents, design,
code and program.
Validation is a dynamic
mechanism of validating and
testing the actual product.
It does not involve executing the
code.
It always involves executing the
code.
Examples includes reviews,
inspection and walkthrough
Example includes all types of
testing like smoke, regression,
functional, systems and UAT
It generally comes first-done
before validation.
It generally follows after
verification.
Checks “Are we building the
product right”?
Checks “Are we building the right
product”?
Involves all the static testing
techniques
Includes all the dynamic testing
techniques.
Software
Development
Model –
V model
 TheV - model is SDLC model where execution of processes
happens in a sequential manner inV-shape. It is also known as
Verification andValidation model.
The corresponding testing phase of the development phase is planned in parallel.
Following are theValidation phases inV-Model:
UnitTesting: Unit tests designed in the module design phase are executed on the code during this
validation phase. Unit testing is the testing at code level and helps eliminate bugs at an early
stage, though all defects cannot be uncovered by unit testing.
IntegrationTesting: Integration testing is associated with the architectural design phase.
Integration tests are performed to test the coexistence and communication of the internal
modules within the system.
SystemTesting: System testing is directly associated with the System design phase. System tests
check the entire system functionality and the communication of the system under development
with external systems. Most of the software and hardware compatibility issues can be uncovered
during system test execution.
AcceptanceTesting: Acceptance testing is associated with the business requirement analysis
phase and involves testing the product in user environment.Acceptance tests uncover the
compatibility issues with the other systems available in the user environment. It also discovers the
non functional issues such as load and performance defects in the actual user environment.
Software
Development
Model –
Waterfall
Model
Software
Development
Model –
Incremental
Model
 Making the life cycle a “multi-waterfall” cycle .
 Cycles are divided up into smaller, more easily managed modules.
 Each module passes through the requirements, design, implementation
and testing phases
 A working version of software is produced during the first module
 we work incrementally we are adding piece by piece but expect that
each piece is fully finished
Software
Development
Model –
Rapid
Application
Development
(RAD) model
Itisatypeofincremental
model

Components or functions are developed in parallel as if they were mini projects.
RAD should be chosen only if resources with high business knowledge are
available and there is a need to produce the system in a short span of time (2-3
months).
Software
Development
Model –
Agile Model

Software
Development
Model –
Prototype
model
Whichever life cycle model is being used, there are several characteristics of good testing:
• For every development activity there is a corresponding testing
activity.
• Each test level has test objectives specific to that level.
•The analysis and design of tests for a given test level should begin
during the corresponding development activity.
•Testers should be involved in reviewing documents as soon as
drafts are avail able in the development cycle.
TEST LEVELS
1. 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. [Done by developers]
1.1.What is Stubs and Drivers ?
 Most often stubs and drivers are used to replace the missing
software and simulate the interface between the software
components in a simple manner. A stub is called from the
software component to be tested; a driver calls a component to
be tested
.
IntegrationTesting: Integration testing is associated with the architectural design phase.
Integration tests are performed to test the coexistence and communication of the internal
modules within the system.
SystemTesting: System testing is directly associated with the System design phase. System tests
check the entire system functionality and the communication of the system under development
with external systems. Most of the software and hardware compatibility issues can be uncovered
during system test execution.
AcceptanceTesting: Acceptance testing is associated with the business requirement analysis
phase and involves testing the product in user environment. It also discovers the non functional
issues such as load and performance defects in the actual user environment.
Alpha testing: Alpha testing is done at the developers site. It is done at the end of the development process
Beta testing: Beta testing is done at the customers site. It is done just before the launch of the product.
Acceptance
testing -Types
The user acceptance test focuses mainly on the functionality
thereby validating the fitness-for-use of the system by the business
user
 The operational acceptance test (also called production
acceptance test) validates whether the system meets the
requirements for operation.
 Contract acceptance testing is performed against a contract's
acceptance criteria for producing custom-developed software.
Acceptance should be formally defined when the contract is
agreed
 Compliance acceptance testing or regulation acceptance
testing is performed against the regulations which must be
adhered to, such as governmental, legal or safety regulations.
Integration
testing
When two different modules ‘Module A’ and ‘Module B’ are
integrated then the integration testing is done.
Integration testing follows two approach known as ‘Top Down’
approach and ‘Bottom Up’ approach.
In Big Bang integration testing all components or modules are
integrated simultaneously, after which everything is tested as a
whole
Integration
testing
Top down and
Bottom Up
Top-down integration testing:Testing takes place from top to
bottom, following the control flow or architectural structure (e.g.
starting from the GUI or main menu). Components or systems are
substituted by stubs.
 Drawback - Basic functionality is tested at the end of cycle
Bottom-up integration testing: Testing takes place from the bottom
of the control flow upwards. Components or systems are substituted
by drivers
TEST TYPES
 Test types are introduced as a means of clearly defining the
objective of a certain test level for a programme or project.We
need to think about different types of testing because testing the
functionality of the component or system may not be sufficient at
each level to meet the overall test objectives.
 1Testing of function (functional testing)
 2Testing of software product characteristics (non-functional
testing)
 3Testing of software structure/architecture (structural testing)
 4Testing related to changes (confirmation and regression
testing)
TEST TYPES
 Functional test tends to answer the questions like “can the user do
this” or “does this particular feature work”
The techniques used for functional testing are often specification-
based.Testing functionality can be done from two perspective:
 Requirement-based testing: In this type of testing the
requirements are prioritized depending on the risk criteria and
accordingly the tests are prioritized.This will ensure that the most
important and most critical tests are included in the testing effort.
 Business-process-based testing: In this type of testing the
scenarios involved in the day-to-day business use of the system are
described. It uses the knowledge of the business processes.
For example, a personal and payroll system may have the business
process along the lines of: someone joins the company, employee is
paid on the regular basis and employee finally leaves the company.
Functional testing considers the specified behavior and is often also
referred to as black-box testing.This is not entirely true, since
black-box testing also includes non-functional testing
FunctionalTesting.
Testing of function
(functional testing)
TEST TYPES
 In non-functional testing the quality characteristics of the
component or system is tested.
 Non-functional testing includes:
Non - Functional
Testing.
Testing of software
product
characteristics
Reliability testing Usability testing
Efficiency testing Maintainability testing
Portability testing Baseline testing
Compliance testing Documentation testing
Endurance testing Load testing
Performance testing Compatibility testing
Security testing Scalability testing
Volume testing Stress testing
Recovery testing Internationalization testing and
Localization testing
Reliable testing : A test is considered reliable if we get the same result repeatedly.
Usability testing: In usability testing basically the testers tests the ease with which the
user interfaces can be used. It tests that whether the application or the product built is
user-friendly or not.
Efficiency Testing – [Internal to organization]
Test efficiency = (total number of defects found in unit+integration+system) / (total
number of defects found in unit+integration+system+User acceptance testing)
Testing Efficiency = (No. of defects Resolved /Total No. of Defects Submitted)* 100
SoftwareTest Effectiveness covers three aspects:
— How much the customer’s requirements are satisfied by the system.
— How well the customer specifications are achieved by the system.
— How much effort is put in developing the system.
PortabilityTesting - It refers to the process of testing the ease with which a computer
software component or application can be moved from one environment to another, e.g.
moving of any application fromWindows 2000 to Windows XP.
Baseline testing: It refers to the validation of documents and specifications on which test cases would
be designed.The requirement specification validation is baseline testing.
Compliance testing: It is related with the IT standards followed by the company and it is the testing
done to find the deviations from the company prescribed standards.
Documentation testing:As per the IEEE Documentation describing plans for, or results of, the testing
of a system or component,Types include test case specification, test incident report, test log, test
plan, test procedure, test report. Hence the testing of all the above mentioned documents is known as
documentation testing.
Endurance testing: Endurance testing involves testing a system with a significant load extended over
a significant period of time, to discover how the system behaves under sustained use.
For example, in software testing, a system may behave exactly as expected when tested for 1 hour
but when the same system is tested for 3 hours, problems such as memory leaks cause the system to
fail or behave randomly.
Load testing: A load test is usually conducted to understand the behavior of the application under a specific
expected load. Load testing is performed to determine a system’s behavior under both normal and at peak
conditions.
E.g. If the number of users are in creased then how much CPU, memory will be consumed, what is the
network and bandwidth response time
Performance testing: Performance testing is testing that is performed, to determine how fast some aspect
of a system performs under a particular workload.
It can compare two systems to find which performs better. Or it can measure what part of the system or
workload causes the system to perform badly.
Compatibility testing : Compatibility testing is basically the testing of the application or the product built
with the computing environment [Browsers , OS , hardware]
Security testing: Security testing is basically to check that whether the application or the product is secured
or not.
Scalability testing: It is the testing of a software application for measuring its capability to scale up in terms
of any of its non-functional capability like load supported, the number of transactions, the data volume
Volume testing :Volume testing refers to testing a software application or the product with a certain amount of
data. E.g., if we want to volume test our application with a specific database size, we need to expand our database
to that size and then test the application’s performance on it.
Stress testing : It involves testing beyond normal operational capacity, often to a breaking point, in order to
observe the results.
The goals of such tests may be to ensure the software does not crash in conditions of insufficient computational
resources (such as memory or disk space).
Recovery testing : Recovery testing is done in order to check how fast and better the application can recover after
it has gone through any type of crash or hardware failure etc.
For example: When an application is receiving data from a network, unplug the connecting cable. After some time,
plug the cable back in and analyze the application’s ability to continue receiving data from the point at which the
network connection was broken. OR Restart the system while a browser has a definite number of sessions and
check whether the browser is able to recover all of them or not.
Internationalization testing and Localization testing : Internationalization is a process of designing a software
application so that it can be adapted to various languages and regions without any changes.
Whereas Localization is a process of adapting internationalized software for a specific region or language by adding
local specific components and translating text.
1) For globalized, it should allow to enter alphanumeric inputs
2) For localized (country like INDIA), it should allow only numbers in input field.
VolumeTesting = Large amounts of data
LoadTesting = Large amount of users
StressTesting =Too many users, too much data, too little
time and too little room
TEST TYPES
 Structural testing is often referred to as 'white-box' or
'glass-box' because we are interested in what is
happening 'inside the box'.
 In structural testing the testers are required to have the
knowledge of the internal implementations of the
code. Here the testers require knowledge of how the
software is implemented, how it works.
 During structural testing the tester is concentrating on
how the software does it. For example, a structural
technique wants to know how loops in the software are
working.This may be done regardless of the
functionality of the software.
Structural testing.
Testing of software
structure/architecture
TEST TYPES
Confirmation testing or re-testing:When a test fails because of
the defect then that defect is reported and now we gets a new
version of software after defect fix.
In this case we need to execute the test again to confirm that
whether the defect got actually fixed or not.This is known as
confirmation testing and also known as re-testing.
It is important to ensure that the test is executed in exactly the
same way it was the first time using the same inputs, data and
environments.
Regression testing: During confirmation testing the defect got fixed and
that part of the application started working as intended. But there might
be a possibility that the fix may have introduced or uncovered a different
defect elsewhere in the software.
The way to detect these ‘unexpected side-effects’ of fixes is to do
regression testing.
Confirmation and
regression testing .
Testing related to
changes
Maintenance
Testing
 Once a system is deployed it is in service for years and decades.
During this time the system and its operational environment is
often corrected, changed or extended.Testing that is provided
during this phase is called maintenance testing.
Usually maintenance testing is consisting of two parts:
 First one is, testing the changes that has been made because of
the correction in the system or if the system is extended or
because of some additional features added to it.
 Second one is regression tests to prove that the rest of the system
has not been affected by the maintenance work.
Impact analysis
in software
testing
 Impact analysis is basically analyzing the impact of the changes in
the deployed application or product.
 It tells us about the parts of the system that may be
unintentionally affected because of the change in the application
and therefore need careful regression testing.
This decision is taken together with the stakeholders.
Q &A
Lets try to answer few questions based
on chapter 02
Question 1 What are good practices for testing within the
development life cycle?
a. Early test analysis and design.
b. Different test levels are defined with specific objectives.
c.Testers will start to get involved as soon as coding is done.
d. A and B above.
Question 2Which option best describes objectives for test levels with
a life cycle model?
a. Objectives should be generic for any test level.
b. Objectives are the same for each test level.
c.The objectives of a test level don't need to be defined in advance.
d. Each level has objectives specific to that level
Question 3 Which of the following is a test type?
a. Component testing
b. Functional testing
c. System testing
d. Acceptance testing
Question 4 Beta testing is:
a. Performed by customers at their own site.
b. Performed by customers at the software developer's site.
c. Performed by an independent test team.
d. Useful to test software developed for a specific customer or user.
Question 5 : A regression test:
a. Is only run once.
b.Will always be automated.
c.Will check unchanged areas of the software to see if they have been affected.
d.Will check changed areas of the software to see if they have been affected.

More Related Content

PPTX
CTFL Module 03
PPTX
CTFL Module 01
PPTX
CTFL chapter 05
PPTX
CTFL chapter 06
PPTX
Chapter 6 - Tool Support for Testing
PPTX
Chapter 2 - Testing Throughout the Development LifeCycle
PPTX
Software Testing or Quality Assurance
PPTX
Chapter 5 - Test Management
CTFL Module 03
CTFL Module 01
CTFL chapter 05
CTFL chapter 06
Chapter 6 - Tool Support for Testing
Chapter 2 - Testing Throughout the Development LifeCycle
Software Testing or Quality Assurance
Chapter 5 - Test Management

What's hot (20)

PPTX
CTFL Module 04
PPTX
Chapter 3 - Static Testing
PDF
Software testing and what i can do as a developer
PDF
STLC (Software Testing Life Cycle)
PPTX
Istqb foundation level day 1
PPTX
Fundamentals of Testing
PPTX
Chapter 1 - Fundamentals of Testing
PPTX
Chapter 4 - Test Design Techniques
PPTX
ISTQB Foundation Level Basic
PPT
Testing fundamentals
PPS
ISTQB Foundation - Chapter 2
PDF
QA Interview Questions With Answers
PPTX
Software Testing Basics
PPT
Software Testing Process
PDF
Types of software testing
PPTX
Types of testing
PPT
Basic Guide to Manual Testing
DOC
Manual Testing Notes
PPTX
Chapter 6 - Test Tools and Automation
PPT
ISTQB / ISEB Foundation Exam Practice -1
CTFL Module 04
Chapter 3 - Static Testing
Software testing and what i can do as a developer
STLC (Software Testing Life Cycle)
Istqb foundation level day 1
Fundamentals of Testing
Chapter 1 - Fundamentals of Testing
Chapter 4 - Test Design Techniques
ISTQB Foundation Level Basic
Testing fundamentals
ISTQB Foundation - Chapter 2
QA Interview Questions With Answers
Software Testing Basics
Software Testing Process
Types of software testing
Types of testing
Basic Guide to Manual Testing
Manual Testing Notes
Chapter 6 - Test Tools and Automation
ISTQB / ISEB Foundation Exam Practice -1
Ad

Viewers also liked (16)

PDF
MORTILIFT_EFX_11T
PDF
FEA ANALYSIS
PPTX
Test case management with MTM 2013
PPT
72463735 11-empaquetados-densos
DOCX
Research review diet and depression
PDF
Picassoo1
PDF
XS BROCHURE
PPTX
Data information1
PPT
эффекты Ifran view
PDF
Conichiwa brochure
PPTX
Who would be the audience for your media
PPTX
Proceso del papel
PPT
Magento: a ferramenta e suas possibilidades para o e-commerce
PPTX
Proceso de fabricación del papel
PPTX
Procesos productivos paso a paso
PPT
Plano De IntervençãO PedagóGica[Sre]
MORTILIFT_EFX_11T
FEA ANALYSIS
Test case management with MTM 2013
72463735 11-empaquetados-densos
Research review diet and depression
Picassoo1
XS BROCHURE
Data information1
эффекты Ifran view
Conichiwa brochure
Who would be the audience for your media
Proceso del papel
Magento: a ferramenta e suas possibilidades para o e-commerce
Proceso de fabricación del papel
Procesos productivos paso a paso
Plano De IntervençãO PedagóGica[Sre]
Ad

Similar to CTFL Module 02 (20)

PDF
Real Time software Training in Nagercoil
PPTX
Software testing
PPTX
Software testing
PPT
Testing strategies in Software Engineering
PPTX
Software Testing
DOCX
Unit 4 Software engineering deatiled notes.docx
PPTX
SDET UNIT 2.pptx
PPTX
Qa analyst training
PPTX
Testing Throughout the Software Life Cycle - Section 2
PPTX
Software testing sengu
PPSX
Manual testing
PPTX
Different Software Testing Types and CMM Standard
PPTX
Software testing career
PPSX
Manual testing
DOCX
Testing in Software Engineering.docx
PPTX
Learn sqa from expert class 2reviewed
PPTX
Software testing career 20180929 update
PPTX
Sftwre engg.testng
PDF
Validation & verification software engineering
Real Time software Training in Nagercoil
Software testing
Software testing
Testing strategies in Software Engineering
Software Testing
Unit 4 Software engineering deatiled notes.docx
SDET UNIT 2.pptx
Qa analyst training
Testing Throughout the Software Life Cycle - Section 2
Software testing sengu
Manual testing
Different Software Testing Types and CMM Standard
Software testing career
Manual testing
Testing in Software Engineering.docx
Learn sqa from expert class 2reviewed
Software testing career 20180929 update
Sftwre engg.testng
Validation & verification software engineering

Recently uploaded (20)

PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Transform Your Business with a Software ERP System
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPT
Introduction Database Management System for Course Database
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
history of c programming in notes for students .pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Digital Strategies for Manufacturing Companies
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
L1 - Introduction to python Backend.pptx
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
System and Network Administration Chapter 2
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
Odoo Companies in India – Driving Business Transformation.pdf
Transform Your Business with a Software ERP System
Online Work Permit System for Fast Permit Processing
Navsoft: AI-Powered Business Solutions & Custom Software Development
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Design an Analysis of Algorithms II-SECS-1021-03
Introduction Database Management System for Course Database
Upgrade and Innovation Strategies for SAP ERP Customers
history of c programming in notes for students .pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Digital Strategies for Manufacturing Companies
Design an Analysis of Algorithms I-SECS-1021-03
Understanding Forklifts - TECH EHS Solution
L1 - Introduction to python Backend.pptx
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
System and Network Administration Chapter 2
How to Migrate SBCGlobal Email to Yahoo Easily
ManageIQ - Sprint 268 Review - Slide Deck

CTFL Module 02

  • 1. CHAPTER 2 - Testing throughout the software life cycle Based on ISTQB CTFL Syllabus Presented by : DavisThomas K
  • 3. After completing this lesson, you will be able to understand: 1. Software development models 2.Test levels 3.TestTypes 4. MaintenanceTesting
  • 4. K Levels 2)Testing throughout the life-cycle: (K2)  Software development models (K2)  Test Levels (Eg. Unit testing, Component testing, Integration testing.) (K2)  Test types (Functional, non-functional, structural, change-related testing) (K2)  Maintenance testing (K2)
  • 5. Verification andValidation testing VERIFICATION TESTING VALIDATIONTESTING Verification is a static practice of verifying documents, design, code and program. Validation is a dynamic mechanism of validating and testing the actual product. It does not involve executing the code. It always involves executing the code. Examples includes reviews, inspection and walkthrough Example includes all types of testing like smoke, regression, functional, systems and UAT It generally comes first-done before validation. It generally follows after verification. Checks “Are we building the product right”? Checks “Are we building the right product”? Involves all the static testing techniques Includes all the dynamic testing techniques.
  • 6. Software Development Model – V model  TheV - model is SDLC model where execution of processes happens in a sequential manner inV-shape. It is also known as Verification andValidation model. The corresponding testing phase of the development phase is planned in parallel.
  • 7. Following are theValidation phases inV-Model: UnitTesting: Unit tests designed in the module design phase are executed on the code during this validation phase. Unit testing is the testing at code level and helps eliminate bugs at an early stage, though all defects cannot be uncovered by unit testing. IntegrationTesting: Integration testing is associated with the architectural design phase. Integration tests are performed to test the coexistence and communication of the internal modules within the system. SystemTesting: System testing is directly associated with the System design phase. System tests check the entire system functionality and the communication of the system under development with external systems. Most of the software and hardware compatibility issues can be uncovered during system test execution. AcceptanceTesting: Acceptance testing is associated with the business requirement analysis phase and involves testing the product in user environment.Acceptance tests uncover the compatibility issues with the other systems available in the user environment. It also discovers the non functional issues such as load and performance defects in the actual user environment.
  • 9. Software Development Model – Incremental Model  Making the life cycle a “multi-waterfall” cycle .  Cycles are divided up into smaller, more easily managed modules.  Each module passes through the requirements, design, implementation and testing phases  A working version of software is produced during the first module  we work incrementally we are adding piece by piece but expect that each piece is fully finished
  • 10. Software Development Model – Rapid Application Development (RAD) model Itisatypeofincremental model  Components or functions are developed in parallel as if they were mini projects. RAD should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short span of time (2-3 months).
  • 13. Whichever life cycle model is being used, there are several characteristics of good testing: • For every development activity there is a corresponding testing activity. • Each test level has test objectives specific to that level. •The analysis and design of tests for a given test level should begin during the corresponding development activity. •Testers should be involved in reviewing documents as soon as drafts are avail able in the development cycle.
  • 14. TEST LEVELS 1. 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. [Done by developers] 1.1.What is Stubs and Drivers ?  Most often stubs and drivers are used to replace the missing software and simulate the interface between the software components in a simple manner. A stub is called from the software component to be tested; a driver calls a component to be tested .
  • 15. IntegrationTesting: Integration testing is associated with the architectural design phase. Integration tests are performed to test the coexistence and communication of the internal modules within the system. SystemTesting: System testing is directly associated with the System design phase. System tests check the entire system functionality and the communication of the system under development with external systems. Most of the software and hardware compatibility issues can be uncovered during system test execution. AcceptanceTesting: Acceptance testing is associated with the business requirement analysis phase and involves testing the product in user environment. It also discovers the non functional issues such as load and performance defects in the actual user environment. Alpha testing: Alpha testing is done at the developers site. It is done at the end of the development process Beta testing: Beta testing is done at the customers site. It is done just before the launch of the product.
  • 16. Acceptance testing -Types The user acceptance test focuses mainly on the functionality thereby validating the fitness-for-use of the system by the business user  The operational acceptance test (also called production acceptance test) validates whether the system meets the requirements for operation.  Contract acceptance testing is performed against a contract's acceptance criteria for producing custom-developed software. Acceptance should be formally defined when the contract is agreed  Compliance acceptance testing or regulation acceptance testing is performed against the regulations which must be adhered to, such as governmental, legal or safety regulations.
  • 17. Integration testing When two different modules ‘Module A’ and ‘Module B’ are integrated then the integration testing is done. Integration testing follows two approach known as ‘Top Down’ approach and ‘Bottom Up’ approach. In Big Bang integration testing all components or modules are integrated simultaneously, after which everything is tested as a whole
  • 18. Integration testing Top down and Bottom Up Top-down integration testing:Testing takes place from top to bottom, following the control flow or architectural structure (e.g. starting from the GUI or main menu). Components or systems are substituted by stubs.  Drawback - Basic functionality is tested at the end of cycle Bottom-up integration testing: Testing takes place from the bottom of the control flow upwards. Components or systems are substituted by drivers
  • 19. TEST TYPES  Test types are introduced as a means of clearly defining the objective of a certain test level for a programme or project.We need to think about different types of testing because testing the functionality of the component or system may not be sufficient at each level to meet the overall test objectives.  1Testing of function (functional testing)  2Testing of software product characteristics (non-functional testing)  3Testing of software structure/architecture (structural testing)  4Testing related to changes (confirmation and regression testing)
  • 20. TEST TYPES  Functional test tends to answer the questions like “can the user do this” or “does this particular feature work” The techniques used for functional testing are often specification- based.Testing functionality can be done from two perspective:  Requirement-based testing: In this type of testing the requirements are prioritized depending on the risk criteria and accordingly the tests are prioritized.This will ensure that the most important and most critical tests are included in the testing effort.  Business-process-based testing: In this type of testing the scenarios involved in the day-to-day business use of the system are described. It uses the knowledge of the business processes. For example, a personal and payroll system may have the business process along the lines of: someone joins the company, employee is paid on the regular basis and employee finally leaves the company. Functional testing considers the specified behavior and is often also referred to as black-box testing.This is not entirely true, since black-box testing also includes non-functional testing FunctionalTesting. Testing of function (functional testing)
  • 21. TEST TYPES  In non-functional testing the quality characteristics of the component or system is tested.  Non-functional testing includes: Non - Functional Testing. Testing of software product characteristics Reliability testing Usability testing Efficiency testing Maintainability testing Portability testing Baseline testing Compliance testing Documentation testing Endurance testing Load testing Performance testing Compatibility testing Security testing Scalability testing Volume testing Stress testing Recovery testing Internationalization testing and Localization testing
  • 22. Reliable testing : A test is considered reliable if we get the same result repeatedly. Usability testing: In usability testing basically the testers tests the ease with which the user interfaces can be used. It tests that whether the application or the product built is user-friendly or not. Efficiency Testing – [Internal to organization] Test efficiency = (total number of defects found in unit+integration+system) / (total number of defects found in unit+integration+system+User acceptance testing) Testing Efficiency = (No. of defects Resolved /Total No. of Defects Submitted)* 100 SoftwareTest Effectiveness covers three aspects: — How much the customer’s requirements are satisfied by the system. — How well the customer specifications are achieved by the system. — How much effort is put in developing the system. PortabilityTesting - It refers to the process of testing the ease with which a computer software component or application can be moved from one environment to another, e.g. moving of any application fromWindows 2000 to Windows XP.
  • 23. Baseline testing: It refers to the validation of documents and specifications on which test cases would be designed.The requirement specification validation is baseline testing. Compliance testing: It is related with the IT standards followed by the company and it is the testing done to find the deviations from the company prescribed standards. Documentation testing:As per the IEEE Documentation describing plans for, or results of, the testing of a system or component,Types include test case specification, test incident report, test log, test plan, test procedure, test report. Hence the testing of all the above mentioned documents is known as documentation testing. Endurance testing: Endurance testing involves testing a system with a significant load extended over a significant period of time, to discover how the system behaves under sustained use. For example, in software testing, a system may behave exactly as expected when tested for 1 hour but when the same system is tested for 3 hours, problems such as memory leaks cause the system to fail or behave randomly.
  • 24. Load testing: A load test is usually conducted to understand the behavior of the application under a specific expected load. Load testing is performed to determine a system’s behavior under both normal and at peak conditions. E.g. If the number of users are in creased then how much CPU, memory will be consumed, what is the network and bandwidth response time Performance testing: Performance testing is testing that is performed, to determine how fast some aspect of a system performs under a particular workload. It can compare two systems to find which performs better. Or it can measure what part of the system or workload causes the system to perform badly. Compatibility testing : Compatibility testing is basically the testing of the application or the product built with the computing environment [Browsers , OS , hardware] Security testing: Security testing is basically to check that whether the application or the product is secured or not. Scalability testing: It is the testing of a software application for measuring its capability to scale up in terms of any of its non-functional capability like load supported, the number of transactions, the data volume
  • 25. Volume testing :Volume testing refers to testing a software application or the product with a certain amount of data. E.g., if we want to volume test our application with a specific database size, we need to expand our database to that size and then test the application’s performance on it. Stress testing : It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results. The goals of such tests may be to ensure the software does not crash in conditions of insufficient computational resources (such as memory or disk space). Recovery testing : Recovery testing is done in order to check how fast and better the application can recover after it has gone through any type of crash or hardware failure etc. For example: When an application is receiving data from a network, unplug the connecting cable. After some time, plug the cable back in and analyze the application’s ability to continue receiving data from the point at which the network connection was broken. OR Restart the system while a browser has a definite number of sessions and check whether the browser is able to recover all of them or not. Internationalization testing and Localization testing : Internationalization is a process of designing a software application so that it can be adapted to various languages and regions without any changes. Whereas Localization is a process of adapting internationalized software for a specific region or language by adding local specific components and translating text. 1) For globalized, it should allow to enter alphanumeric inputs 2) For localized (country like INDIA), it should allow only numbers in input field.
  • 26. VolumeTesting = Large amounts of data LoadTesting = Large amount of users StressTesting =Too many users, too much data, too little time and too little room
  • 27. TEST TYPES  Structural testing is often referred to as 'white-box' or 'glass-box' because we are interested in what is happening 'inside the box'.  In structural testing the testers are required to have the knowledge of the internal implementations of the code. Here the testers require knowledge of how the software is implemented, how it works.  During structural testing the tester is concentrating on how the software does it. For example, a structural technique wants to know how loops in the software are working.This may be done regardless of the functionality of the software. Structural testing. Testing of software structure/architecture
  • 28. TEST TYPES Confirmation testing or re-testing:When a test fails because of the defect then that defect is reported and now we gets a new version of software after defect fix. In this case we need to execute the test again to confirm that whether the defect got actually fixed or not.This is known as confirmation testing and also known as re-testing. It is important to ensure that the test is executed in exactly the same way it was the first time using the same inputs, data and environments. Regression testing: During confirmation testing the defect got fixed and that part of the application started working as intended. But there might be a possibility that the fix may have introduced or uncovered a different defect elsewhere in the software. The way to detect these ‘unexpected side-effects’ of fixes is to do regression testing. Confirmation and regression testing . Testing related to changes
  • 29. Maintenance Testing  Once a system is deployed it is in service for years and decades. During this time the system and its operational environment is often corrected, changed or extended.Testing that is provided during this phase is called maintenance testing. Usually maintenance testing is consisting of two parts:  First one is, testing the changes that has been made because of the correction in the system or if the system is extended or because of some additional features added to it.  Second one is regression tests to prove that the rest of the system has not been affected by the maintenance work.
  • 30. Impact analysis in software testing  Impact analysis is basically analyzing the impact of the changes in the deployed application or product.  It tells us about the parts of the system that may be unintentionally affected because of the change in the application and therefore need careful regression testing. This decision is taken together with the stakeholders.
  • 31. Q &A Lets try to answer few questions based on chapter 02
  • 32. Question 1 What are good practices for testing within the development life cycle? a. Early test analysis and design. b. Different test levels are defined with specific objectives. c.Testers will start to get involved as soon as coding is done. d. A and B above.
  • 33. Question 2Which option best describes objectives for test levels with a life cycle model? a. Objectives should be generic for any test level. b. Objectives are the same for each test level. c.The objectives of a test level don't need to be defined in advance. d. Each level has objectives specific to that level
  • 34. Question 3 Which of the following is a test type? a. Component testing b. Functional testing c. System testing d. Acceptance testing
  • 35. Question 4 Beta testing is: a. Performed by customers at their own site. b. Performed by customers at the software developer's site. c. Performed by an independent test team. d. Useful to test software developed for a specific customer or user.
  • 36. Question 5 : A regression test: a. Is only run once. b.Will always be automated. c.Will check unchanged areas of the software to see if they have been affected. d.Will check changed areas of the software to see if they have been affected.

Editor's Notes