SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
TESTING
Process Improvement
Objectives
• To introduce Testing and its importance.
• To explain the difference b/w testing and
debugging.
• To explain the methodologies of Testing.
• To explain different levels of testing.
• To explain the steps involved in testing life
cycle.
2
Introduction
• Testing is the process of validating and
verifying whether the software product
– is reached all its specifications or not
– is giving the expected results from the set of
possible inputs or not.
• Validation : are we building the right product
• Verification: are we building the product right
3
Introduction
• Software testing can be stated as the process of validating
and verifying that a software program/application/product:
– does not contain defects;
– does not behave in any undesirable way;
– meets the requirements that guided its design and development;
– works as expected; and
– can be implemented with the same characteristics.
• A primary purpose of testing is to detect software failures so that defects
may be discovered and corrected.
• Testing cannot establish that a product functions properly under all
conditions but can only establish that it does not function properly under
specific conditions.
Testing vs Debugging
• A software bug is the common term used to describe an
error, flaw, mistake, failure, or fault in a computer program or
system that produces an incorrect or unexpected result, or
can uses it to behave in unintended ways.
• Testing is identifying the bug and is done by tester.
• Debugging is removing the bug and is done by developer.
• Debugging is the consequence of successful testing.
Debugging starts with the results from the execution of test cases.
• Testing is nothing but finding an error/bug and its done by testers, where
as debugging is nothing but finding the root cause for the error/bug and
resolving them, that is taken care by developers.
5
Introduction
• The scope of software testing often includes
examination of code as well as execution of that
code in various environments and conditions as well
as examining the aspects of code: does it do what it
is supposed to do and do what it needs to do.
• In the current culture of software development, a
testing organization may be separate from the
development team.
Difference between defect , error , bug , failure and fault
• Error : A discrepancy between a computed, observed, or measured value
or condition and the true, specified, or theoretically correct value or
condition.
• Failure: The inability of a system or component to perform its required
functions within specified performance requirements.
• Bug: A fault in a program which causes the program to perform in an
unintended or unanticipated manner.
• Fault: An incorrect step, process, or data definition in a computer
program which causes the program to perform in an unintended or
unanticipated manner.
• Defect: Mismatch between the requirements.
7
Functional vs non-functional testing
• Functional testing refers to activities that verify a specific action or function of the
code.
• These are usually found in the code requirements documentation, although some
development methodologies work from use cases or user stories.
• Functional tests tend to answer the question of "can the user do this" or "does this
particular feature work".
• Non-functional testing refers to aspects of the software that may not be related to
a specific function or user action, such as scalability or other performance
behavior under certain constraints , or security.
• Non-functional requirements tend to be those that reflect the quality of the
product, particularly in the context of the suitability perspective of its users.
Software verification and validation
• Verification: Have we built the software right? (i.e., does
it match the specification).
• Validation: Have we built the right software? (i.e., is this
what the customer wants).
– Verification is the process of evaluating a system or component
to determine whether the products of a given development
phase satisfy the conditions imposed at the start of that phase.
– Validation is the process of evaluating a system or component
during or at the end of the development process to determine
whether it satisfies specified requirements.
Testing methods
• Software testing methods are traditionally divided into
• white-box
• black-box testing.
• These two approaches are used to describe the point of view that a test
engineer takes when designing test cases.
• White box testing
• White box testing is when the tester has access to the internal data structures
and algorithms including the code that implement these.
• Black box testing
• Black box testing treats the software as a "black box"—without any
knowledge of internal implementation.
Types of white box testing
• The following types of white box testing exist:
• API testing (application programming interface) - testing of the application
using public and private APIs
• Code coverage - creating tests to satisfy some criteria of code coverage (e.g.,
the test designer can create tests to cause all statements in the program to be
executed at least once)
• Fault injection methods - improving the coverage of a test by introducing
faults to test code paths
White Box Testing
• Test coverage:
• White box testing methods can also be used to evaluate the completeness of a
test suite that was created with black box testing methods.
• This allows the software team to examine parts of a system that are rarely tested
and ensures that the most important function points have been tested.
• Two common forms of code coverage are:
• Function coverage, which reports on functions executed
• Statement coverage, which reports on the number of lines executed to complete the test
• They both return a code coverage metric, measured as a percentage
Types of Black box testing
• Black box testing methods include:
• equivalence partitioning
• boundary value analysis
Black Box Testing
• Advantages and disadvantages:
• The black box tester has no "bonds" with the code, and a tester's perception is
very simple: a code must have bugs.
• Using the principle, "Ask and you shall receive," black box testers find bugs where
programmers do not.
• The tester doesn't know how the software being tested was actually constructed.
• As a result, there are situations when (1) a tester writes many test cases to check
something that could have been tested by only one test case, and/or (2) some
parts of the back-end are not tested at all.
• Therefore, black box testing has the advantage of "an unaffiliated opinion", on the
one hand, and the disadvantage of "blind exploring", on the other.
Gray box testing
• Gray box testing involves having knowledge of internal data
structures and algorithms for purposes of designing the test cases,
but testing at the user, or black-box level.
• Manipulating input data and formatting output do not qualify as
grey box, because the input and output are clearly outside of the
"black-box" that we are calling the system under test.
• This distinction is particularly important when conducting integration
testing between two modules of code written by two different
developers, where only the interfaces are exposed for test.
• However, modifying a data repository does qualify as grey box, as the user
would not normally be able to change the data outside of the system
under test.
• Grey box testing may also include reverse engineering to determine, for
instance, boundary values or error messages.
Testing levels
• Unit testing
• Integration testing
• Module level Testing
• System testing
• System integration testing
Unit Testing
• Unit testing refers to tests that verify the
functionality of a specific section of code,
usually at the function level.
• In an object-oriented environment, this is
usually at the class level, and the minimal unit
tests include the constructors and destructors.
• Unit testing is also called component testing.
Integration and Module Testing
• Integration testing is any type of software testing that seeks to verify the
interfaces between components against a software design. Software
components may be integrated in an iterative way or all together .
• Normally the former is considered a better practice since it allows
interface issues to be localized more quickly and fixed.
• Module testing refers to tests that verify the functionality of a specific
module usually at the function level.
System and System Integration testing
• System testing tests a completely integrated system to verify that it
meets its requirements
• System testing falls within the scope of black box testing, and as such,
should require no knowledge of the inner design of the code or logic.
• System integration testing verifies that a system is integrated to any
external or third-party systems defined in the system requirements.
• System integration testing is the process of verifying the synchronization
between two or more software systems and which can be performed
after software system collaboration is completed.
A sample testing cycle
• Test planning: Test strategy, test plan, testbed creation. Since many
activities will be carried out during testing, a plan is needed.
• Test development: Test procedures, test scenarios, test cases, test
datasets, test scripts to use in testing software.
• Test execution: Testers execute the software based on the plans and test
documents then report any errors found to the development team.
• Test reporting: Once testing is completed, testers generate metrics and
make final reports on their test effort and whether or not the software
tested is ready for release.
• Defect Retesting: Once a defect has been dealt with by the development
team, it is retested by the testing team. AKA Resolution testing.
• Regression testing: It is common to have a small test program built of a
subset of tests, for each integration of new, modified, or fixed software, in
order to ensure that the latest delivery has not ruined anything, and that
the software product as a whole is still working correctly.
A sample testing cycle
• Test Closure: Once the test meets the exit criteria, the activities such as
capturing the key outputs, lessons learned, results, logs, documents
related to the project are archived and used as a reference for future
projects.
• Test result analysis: Or Defect Analysis, is done by the development team
usually along with the client, in order to decide what defects should be
treated, fixed, rejected (i.e. found software working properly) or deferred
to be dealt with later.
• Test strategy is an outline that describes the testing portion of the
software development cycle. It is created to inform project managers,
testers, and developers about some key issues of the testing process. This
includes the testing objective, methods of testing new functions, total
time and resources required for the project, and the testing environment.
A sample testing cycle
• A test plan is a document detailing a systematic approach to testing a
system such as a machine or software. The plan typically contains a
detailed understanding of what the eventual workflow will be.
• A test bed is a platform for experimentation of large development
projects.
• A typical testbed could include software, hardware, and networking
components]
• The term is used across many disciplines to describe a development
environment that is shielded from the hazards of testing in a live or
production environment.
IEEE Test Plan Structure
• Test plan identifier
• Introduction
• Test items
• Features to be tested
• Features not to be tested
• Approach
• Item pass/fail criteria
• Suspension criteria and resumption requirements
• Test deliverables
• Testing tasks
• Environmental needs
• Responsibilities
• Staffing and training needs
• Schedule
• Risks and contingencies
• Approvals
Different ways of Testing
• A test case in software engineering is a set of conditions or variables
under which a tester will determine whether an application or software
system is working correctly or not
• Manual testing is the process of manually testing software for defects. It
requires a tester to play the role of an end user, and use most of all
features of the application to ensure correct behavior. To ensure
completeness of testing, the tester often follows a written test plan that
leads them through a set of important test cases.
• Automated testing is the use of software to control the execution of
tests, the comparison of actual outcomes to predicted outcomes, the
setting up of test preconditions, and other test control and test reporting
functions.
• Commonly, test automation involves automating a manual process
already in place that uses a formalized testing process.
Key Points
• Verification and validation are the basics of
Testing
• Testing must be done properly to reach the
specifications given.
• Different Levels of testing are to be performed
as per the methodologies .
• Test plan is very important to start with the
testing.
25

Más contenido relacionado

La actualidad más candente

Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.pptKomal Garg
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1Raghu Kiran
 
ISTQB - What's testing
ISTQB - What's testingISTQB - What's testing
ISTQB - What's testingHoangThiHien1
 
Software Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s GuideSoftware Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s GuideSyed Hassan Raza
 
Functional Testing Tutorial | Edureka
Functional Testing Tutorial | EdurekaFunctional Testing Tutorial | Edureka
Functional Testing Tutorial | EdurekaEdureka!
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing BasicsBelal Raslan
 
A Research Study on importance of Testing and Quality Assurance in Software D...
A Research Study on importance of Testing and Quality Assurance in Software D...A Research Study on importance of Testing and Quality Assurance in Software D...
A Research Study on importance of Testing and Quality Assurance in Software D...Sehrish Asif
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual TestingDirecti Group
 
Fundamentals of Software Testing
Fundamentals of Software TestingFundamentals of Software Testing
Fundamentals of Software TestingSagar Joshi
 
Software Testing
Software TestingSoftware Testing
Software TestingSengu Msc
 
Basic Guide to Manual Testing
Basic Guide to Manual TestingBasic Guide to Manual Testing
Basic Guide to Manual TestingHiral Gosani
 
functional testing
functional testing functional testing
functional testing bharathanche
 
Bug life cycle
Bug life cycleBug life cycle
Bug life cycleBugRaptors
 

La actualidad más candente (20)

Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.ppt
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1
 
ISTQB - What's testing
ISTQB - What's testingISTQB - What's testing
ISTQB - What's testing
 
Software Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s GuideSoftware Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s Guide
 
Functional Testing Tutorial | Edureka
Functional Testing Tutorial | EdurekaFunctional Testing Tutorial | Edureka
Functional Testing Tutorial | Edureka
 
Software testing
Software testingSoftware testing
Software testing
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
A Research Study on importance of Testing and Quality Assurance in Software D...
A Research Study on importance of Testing and Quality Assurance in Software D...A Research Study on importance of Testing and Quality Assurance in Software D...
A Research Study on importance of Testing and Quality Assurance in Software D...
 
Introduction & Manual Testing
Introduction & Manual TestingIntroduction & Manual Testing
Introduction & Manual Testing
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testing
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Fundamentals of Software Testing
Fundamentals of Software TestingFundamentals of Software Testing
Fundamentals of Software Testing
 
Testing
TestingTesting
Testing
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Basic Guide to Manual Testing
Basic Guide to Manual TestingBasic Guide to Manual Testing
Basic Guide to Manual Testing
 
functional testing
functional testing functional testing
functional testing
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Agile testing
Agile testingAgile testing
Agile testing
 
Bug life cycle
Bug life cycleBug life cycle
Bug life cycle
 

Destacado

Activity lesson
Activity lessonActivity lesson
Activity lessonMax Friel
 
Software Testing & Debugging
Software Testing & DebuggingSoftware Testing & Debugging
Software Testing & DebuggingComputing Cage
 
Validation testing
Validation testingValidation testing
Validation testingSlideshare
 
Software Architecture Styles
Software Architecture StylesSoftware Architecture Styles
Software Architecture StylesHenry Muccini
 
Basis path testing
Basis path testingBasis path testing
Basis path testingHoa Le
 
structured programming
structured programmingstructured programming
structured programmingAhmad54321
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: StylesHenry Muccini
 
verification and validation
verification and validationverification and validation
verification and validationDinesh Pasi
 
User Interface Design
User Interface DesignUser Interface Design
User Interface DesignJReifman
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing FundamentalsChankey Pathak
 

Destacado (14)

Activity lesson
Activity lessonActivity lesson
Activity lesson
 
Software Testing & Debugging
Software Testing & DebuggingSoftware Testing & Debugging
Software Testing & Debugging
 
Validation testing
Validation testingValidation testing
Validation testing
 
Software Architecture Styles
Software Architecture StylesSoftware Architecture Styles
Software Architecture Styles
 
Basis path testing
Basis path testingBasis path testing
Basis path testing
 
Validation and verification
Validation and verificationValidation and verification
Validation and verification
 
structured programming
structured programmingstructured programming
structured programming
 
Component level design
Component   level designComponent   level design
Component level design
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: Styles
 
Verification & Validation
Verification & ValidationVerification & Validation
Verification & Validation
 
verification and validation
verification and validationverification and validation
verification and validation
 
ARCHITECTURAL STYLES
ARCHITECTURAL STYLESARCHITECTURAL STYLES
ARCHITECTURAL STYLES
 
User Interface Design
User Interface DesignUser Interface Design
User Interface Design
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 

Similar a Testing fundamentals

Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSaqib Raza
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tacticsPreeti Mishra
 
Software testing-and-analysis
Software testing-and-analysisSoftware testing-and-analysis
Software testing-and-analysisWBUTTUTORIALS
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and typesConfiz
 
Software testing & its technology
Software testing & its technologySoftware testing & its technology
Software testing & its technologyHasam Panezai
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)ShudipPal
 
Testing strategies,techniques & test case SE
Testing strategies,techniques & test case SETesting strategies,techniques & test case SE
Testing strategies,techniques & test case SEMeet1020
 
Fundamentals of software part 1
Fundamentals of software part 1Fundamentals of software part 1
Fundamentals of software part 1Siddharth Sharma
 
Software testing software engineering.pdf
Software testing software engineering.pdfSoftware testing software engineering.pdf
Software testing software engineering.pdfvaibhavshukla3003
 
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
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design Jayant Dalvi
 
An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing BugRaptors
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testingAbhishek Saxena
 
Solution Evaluation (BA Role)
Solution Evaluation (BA Role)   Solution Evaluation (BA Role)
Solution Evaluation (BA Role) Shwetha-BA
 
SENG202-v-and-v-modeling_121810.pptx
SENG202-v-and-v-modeling_121810.pptxSENG202-v-and-v-modeling_121810.pptx
SENG202-v-and-v-modeling_121810.pptxMinsasWorld
 
Software engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit designSoftware engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit designMaitree Patel
 

Similar a Testing fundamentals (20)

Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
6. oose testing
6. oose testing6. oose testing
6. oose testing
 
Software testing-and-analysis
Software testing-and-analysisSoftware testing-and-analysis
Software testing-and-analysis
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
 
Software testing & its technology
Software testing & its technologySoftware testing & its technology
Software testing & its technology
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
Testing strategies,techniques & test case SE
Testing strategies,techniques & test case SETesting strategies,techniques & test case SE
Testing strategies,techniques & test case SE
 
Fundamentals of software part 1
Fundamentals of software part 1Fundamentals of software part 1
Fundamentals of software part 1
 
Software testing software engineering.pdf
Software testing software engineering.pdfSoftware testing software engineering.pdf
Software testing software engineering.pdf
 
Different Types Of Testing
Different Types Of TestingDifferent Types Of Testing
Different Types Of Testing
 
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
 
Unit 4 testing
Unit 4 testingUnit 4 testing
Unit 4 testing
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design
 
An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testing
 
Solution Evaluation (BA Role)
Solution Evaluation (BA Role)   Solution Evaluation (BA Role)
Solution Evaluation (BA Role)
 
SENG202-v-and-v-modeling_121810.pptx
SENG202-v-and-v-modeling_121810.pptxSENG202-v-and-v-modeling_121810.pptx
SENG202-v-and-v-modeling_121810.pptx
 
Software engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit designSoftware engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit design
 
Software testing
Software testingSoftware testing
Software testing
 

Más de Raviteja Chowdary Adusumalli (14)

Oracle Sql & PLSQL Complete guide
Oracle Sql & PLSQL Complete guideOracle Sql & PLSQL Complete guide
Oracle Sql & PLSQL Complete guide
 
Softskill brief description,the way to change our attitude
Softskill brief description,the way to change our attitudeSoftskill brief description,the way to change our attitude
Softskill brief description,the way to change our attitude
 
Introduction to phishing
Introduction to phishingIntroduction to phishing
Introduction to phishing
 
Computer viruses
Computer virusesComputer viruses
Computer viruses
 
Brain fingerprinting tech
Brain fingerprinting techBrain fingerprinting tech
Brain fingerprinting tech
 
Geographic inf system
Geographic inf systemGeographic inf system
Geographic inf system
 
Peer to peer
Peer to peerPeer to peer
Peer to peer
 
Ethical hacking (2)
Ethical hacking (2)Ethical hacking (2)
Ethical hacking (2)
 
Brain gate
Brain gateBrain gate
Brain gate
 
Free space optics
Free space opticsFree space optics
Free space optics
 
Wearable computer
Wearable computerWearable computer
Wearable computer
 
Image processing ppt
Image processing pptImage processing ppt
Image processing ppt
 
Wimax
WimaxWimax
Wimax
 
Surface computing by raviteja
Surface computing by ravitejaSurface computing by raviteja
Surface computing by raviteja
 

Último

Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 

Último (20)

Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 

Testing fundamentals

  • 2. Objectives • To introduce Testing and its importance. • To explain the difference b/w testing and debugging. • To explain the methodologies of Testing. • To explain different levels of testing. • To explain the steps involved in testing life cycle. 2
  • 3. Introduction • Testing is the process of validating and verifying whether the software product – is reached all its specifications or not – is giving the expected results from the set of possible inputs or not. • Validation : are we building the right product • Verification: are we building the product right 3
  • 4. Introduction • Software testing can be stated as the process of validating and verifying that a software program/application/product: – does not contain defects; – does not behave in any undesirable way; – meets the requirements that guided its design and development; – works as expected; and – can be implemented with the same characteristics. • A primary purpose of testing is to detect software failures so that defects may be discovered and corrected. • Testing cannot establish that a product functions properly under all conditions but can only establish that it does not function properly under specific conditions.
  • 5. Testing vs Debugging • A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or can uses it to behave in unintended ways. • Testing is identifying the bug and is done by tester. • Debugging is removing the bug and is done by developer. • Debugging is the consequence of successful testing. Debugging starts with the results from the execution of test cases. • Testing is nothing but finding an error/bug and its done by testers, where as debugging is nothing but finding the root cause for the error/bug and resolving them, that is taken care by developers. 5
  • 6. Introduction • The scope of software testing often includes examination of code as well as execution of that code in various environments and conditions as well as examining the aspects of code: does it do what it is supposed to do and do what it needs to do. • In the current culture of software development, a testing organization may be separate from the development team.
  • 7. Difference between defect , error , bug , failure and fault • Error : A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. • Failure: The inability of a system or component to perform its required functions within specified performance requirements. • Bug: A fault in a program which causes the program to perform in an unintended or unanticipated manner. • Fault: An incorrect step, process, or data definition in a computer program which causes the program to perform in an unintended or unanticipated manner. • Defect: Mismatch between the requirements. 7
  • 8. Functional vs non-functional testing • Functional testing refers to activities that verify a specific action or function of the code. • These are usually found in the code requirements documentation, although some development methodologies work from use cases or user stories. • Functional tests tend to answer the question of "can the user do this" or "does this particular feature work". • Non-functional testing refers to aspects of the software that may not be related to a specific function or user action, such as scalability or other performance behavior under certain constraints , or security. • Non-functional requirements tend to be those that reflect the quality of the product, particularly in the context of the suitability perspective of its users.
  • 9. Software verification and validation • Verification: Have we built the software right? (i.e., does it match the specification). • Validation: Have we built the right software? (i.e., is this what the customer wants). – Verification is the process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. – Validation is the process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements.
  • 10. Testing methods • Software testing methods are traditionally divided into • white-box • black-box testing. • These two approaches are used to describe the point of view that a test engineer takes when designing test cases. • White box testing • White box testing is when the tester has access to the internal data structures and algorithms including the code that implement these. • Black box testing • Black box testing treats the software as a "black box"—without any knowledge of internal implementation.
  • 11. Types of white box testing • The following types of white box testing exist: • API testing (application programming interface) - testing of the application using public and private APIs • Code coverage - creating tests to satisfy some criteria of code coverage (e.g., the test designer can create tests to cause all statements in the program to be executed at least once) • Fault injection methods - improving the coverage of a test by introducing faults to test code paths
  • 12. White Box Testing • Test coverage: • White box testing methods can also be used to evaluate the completeness of a test suite that was created with black box testing methods. • This allows the software team to examine parts of a system that are rarely tested and ensures that the most important function points have been tested. • Two common forms of code coverage are: • Function coverage, which reports on functions executed • Statement coverage, which reports on the number of lines executed to complete the test • They both return a code coverage metric, measured as a percentage
  • 13. Types of Black box testing • Black box testing methods include: • equivalence partitioning • boundary value analysis
  • 14. Black Box Testing • Advantages and disadvantages: • The black box tester has no "bonds" with the code, and a tester's perception is very simple: a code must have bugs. • Using the principle, "Ask and you shall receive," black box testers find bugs where programmers do not. • The tester doesn't know how the software being tested was actually constructed. • As a result, there are situations when (1) a tester writes many test cases to check something that could have been tested by only one test case, and/or (2) some parts of the back-end are not tested at all. • Therefore, black box testing has the advantage of "an unaffiliated opinion", on the one hand, and the disadvantage of "blind exploring", on the other.
  • 15. Gray box testing • Gray box testing involves having knowledge of internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level. • Manipulating input data and formatting output do not qualify as grey box, because the input and output are clearly outside of the "black-box" that we are calling the system under test. • This distinction is particularly important when conducting integration testing between two modules of code written by two different developers, where only the interfaces are exposed for test. • However, modifying a data repository does qualify as grey box, as the user would not normally be able to change the data outside of the system under test. • Grey box testing may also include reverse engineering to determine, for instance, boundary values or error messages.
  • 16. Testing levels • Unit testing • Integration testing • Module level Testing • System testing • System integration testing
  • 17. Unit Testing • Unit testing refers to tests that verify the functionality of a specific section of code, usually at the function level. • In an object-oriented environment, this is usually at the class level, and the minimal unit tests include the constructors and destructors. • Unit testing is also called component testing.
  • 18. Integration and Module Testing • Integration testing is any type of software testing that seeks to verify the interfaces between components against a software design. Software components may be integrated in an iterative way or all together . • Normally the former is considered a better practice since it allows interface issues to be localized more quickly and fixed. • Module testing refers to tests that verify the functionality of a specific module usually at the function level.
  • 19. System and System Integration testing • System testing tests a completely integrated system to verify that it meets its requirements • System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic. • System integration testing verifies that a system is integrated to any external or third-party systems defined in the system requirements. • System integration testing is the process of verifying the synchronization between two or more software systems and which can be performed after software system collaboration is completed.
  • 20. A sample testing cycle • Test planning: Test strategy, test plan, testbed creation. Since many activities will be carried out during testing, a plan is needed. • Test development: Test procedures, test scenarios, test cases, test datasets, test scripts to use in testing software. • Test execution: Testers execute the software based on the plans and test documents then report any errors found to the development team. • Test reporting: Once testing is completed, testers generate metrics and make final reports on their test effort and whether or not the software tested is ready for release. • Defect Retesting: Once a defect has been dealt with by the development team, it is retested by the testing team. AKA Resolution testing. • Regression testing: It is common to have a small test program built of a subset of tests, for each integration of new, modified, or fixed software, in order to ensure that the latest delivery has not ruined anything, and that the software product as a whole is still working correctly.
  • 21. A sample testing cycle • Test Closure: Once the test meets the exit criteria, the activities such as capturing the key outputs, lessons learned, results, logs, documents related to the project are archived and used as a reference for future projects. • Test result analysis: Or Defect Analysis, is done by the development team usually along with the client, in order to decide what defects should be treated, fixed, rejected (i.e. found software working properly) or deferred to be dealt with later. • Test strategy is an outline that describes the testing portion of the software development cycle. It is created to inform project managers, testers, and developers about some key issues of the testing process. This includes the testing objective, methods of testing new functions, total time and resources required for the project, and the testing environment.
  • 22. A sample testing cycle • A test plan is a document detailing a systematic approach to testing a system such as a machine or software. The plan typically contains a detailed understanding of what the eventual workflow will be. • A test bed is a platform for experimentation of large development projects. • A typical testbed could include software, hardware, and networking components] • The term is used across many disciplines to describe a development environment that is shielded from the hazards of testing in a live or production environment.
  • 23. IEEE Test Plan Structure • Test plan identifier • Introduction • Test items • Features to be tested • Features not to be tested • Approach • Item pass/fail criteria • Suspension criteria and resumption requirements • Test deliverables • Testing tasks • Environmental needs • Responsibilities • Staffing and training needs • Schedule • Risks and contingencies • Approvals
  • 24. Different ways of Testing • A test case in software engineering is a set of conditions or variables under which a tester will determine whether an application or software system is working correctly or not • Manual testing is the process of manually testing software for defects. It requires a tester to play the role of an end user, and use most of all features of the application to ensure correct behavior. To ensure completeness of testing, the tester often follows a written test plan that leads them through a set of important test cases. • Automated testing is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. • Commonly, test automation involves automating a manual process already in place that uses a formalized testing process.
  • 25. Key Points • Verification and validation are the basics of Testing • Testing must be done properly to reach the specifications given. • Different Levels of testing are to be performed as per the methodologies . • Test plan is very important to start with the testing. 25