SlideShare a Scribd company logo
1 of 47
Software Engineering
WEEK 10
Testing Software
Sibel Kuzgun Akın
Software Testing
● Testing is the process of evaluating a
system or its component(s) with the intent to
find whether it satisfies the specified
requirements or not.
● Testing is executing a system in order to
identify any gaps, errors, or missing
requirements in contrary to the actual
requirements.
● Today we will discuss software testing, its
types, methods, levels, and other related
terminologies.
Testing
In simple words,
testing is executing a
system in order to
identify any gaps,
errors, or missing
requirements in
contrary to the actual
requirements.
https://youtu.be/TDynSmrzpXw
Who does testing?
In the IT industry, large companies have a team with
responsibilities to evaluate the developed software
in context of the given requirements.
Moreover, developers also conduct testing which is
called Unit Testing.
● Software Tester
● Software Developer
● Project Lead/Manager
● End User
When to start testing?
● An early start to testing reduces the cost
and time to rework and produce error-free
software that is delivered to the client.
● In Software Development Life Cycle
(SDLC), testing can be started from the
requirements gathering phase and
continued till the deployment of the
software.
“It is better to try to keep a bad thing from happening
than it is to fix the bad thing once it has happened.”
● https://www.seguetech.com/rising-costs-defects/
You should test at every phase of SDLC
● During the requirement gathering phase,
the analysis and verification of
requirements are also considered as
testing.
● Reviewing the design in the design phase
with the intent to improve the design is also
considered as testing.
● Testing performed by a developer on
completion of the code is also categorized
as testing.
Testing in Waterfall Model
● In the Waterfall model, formal
testing is conducted in the
testing (verification) phase.
● Testing starts at the end
when development work is
completed.
● In this phase we test the each
unit or component and make
sure the developed
components are working as
expected. All the testing
activities are performed in
testing phase.
Testing in Agile Methodologies
● Unlike the WaterFall method, Agile Testing can begin at
the start of the project with continuous integration
between development and testing.
● Agile testing is not sequential (in the sense it's executed
only after coding phase) but continuous.
● Agile team works towards a common objective of
achieving quality. Agile testing has shorter time frames
called iterations (1-4 weeks). This methodology is also
called release, or delivery driven approach since it gives
a better prediction on the workable products in short
duration of time.
● Testing is performed at the end of every iteration and
the whole application is tested at the end.
SDLC versus STLC
https://youtu.be/An7HC1LolDM
When to stop testing?
It is difficult to determine when to stop testing, as
testing is a never-ending process and no one can
claim that a software is 100% tested.
● Testing Deadlines
● Completion of test case execution
● Completion of functional and code coverage to a
certain point
● Bug rate falls below a certain level and no high-
priority bugs are identified
● Management decision
7 Testing Principles
https://youtu.be/rFaWOw8bIMM
Verification & Validation
Verification Validation
Verification addresses the concern:
"Are you building it right?"
Validation addresses the concern:
"Are you building the right thing?"
Ensures that the software system
meets all the functionality.
Ensures that the functionalities meet
the intended behavior.
Verification takes place first and
includes the checking for
documentation, code, etc.
Validation occurs after verification and
mainly involves the checking of the
overall product.
Done by developers. Done by testers.
It has static activities, as it includes
collecting reviews, walkthroughs, and
inspections to verify a software.
It has dynamic activities, as it includes
executing the software against the
requirements.
It is an objective process and no
subjective decision should be needed
to verify a software.
It is a subjective process and involves
subjective decisions on how well a
software works.
Myth 1: Testing is Too Expensive
Reality: There is a saying, pay less for testing
during software development or pay more for
maintenance or correction later. Early testing
saves both time and cost in many aspects,
however reducing the cost without testing
may result in improper design of a software
application rendering the product useless.
Myth 2: Testing is Time-Consuming
Reality: During the SDLC phases, testing is
never a time-consuming process. However
diagnosing and fixing the errors identified
during proper testing is a time-consuming but
productive activity.
Myth 3: Only Fully Developed
Products are Tested
Reality: No doubt, testing depends on the
source code but reviewing requirements and
developing test cases is independent from
the developed code. However iterative or
incremental approach as a development life
cycle model may reduce the dependency of
testing on the fully developed software.
Myth 4: Complete Testing is
Possible
Reality: It becomes an issue when a client or
tester thinks that complete testing is possible.
It is possible that all paths have been tested
by the team but occurrence of complete
testing is never possible. There might be
some scenarios that are never executed by
the test team or the client during the software
development life cycle and may be executed
once the project has been deployed.
Myth 5: A Tested Software is
Bug-Free
Reality: This is a very common myth that the
clients, project managers, and the
management team believes in. No one can
claim with absolute certainty that a software
application is 100% bug-free even if a tester
with superb testing skills has tested the
application.
Myth 6: Missed Defects are
due to Testers
Reality: It is not a correct approach to blame
testers for bugs that remain in the application
even after testing has been performed. This
myth relates to Time, Cost, and
Requirements changing Constraints.
However the test strategy may also result in
bugs being missed by the testing team.
Myth 7: Testers are Responsible for
Quality of Product
Reality: It is a very common misinterpretation
that only testers or the testing team should be
responsible for product quality. Testers’
responsibilities include the identification of
bugs to the stakeholders and then it is their
decision whether they will fix the bug or
release the software. Releasing the software
at the time puts more pressure on the testers,
as they will be blamed for any error.
Myth 8: Test automation should be
used wherever possible to reduce time
Reality: Yes, it is true that Test Automation
reduces the testing time, but it is not possible
to start test automation at any time during
software development. Test automaton
should be started when the software has
been manually tested and is stable to some
extent. Moreover, test automation can never
be used if requirements keep changing.
Myth 9: Anyone can Test a
Software Application
Reality: People outside the IT industry think
and even believe that anyone can test a
software and testing is not a creative job.
However testers know very well that this is a
myth. Thinking alternative scenarios, try to
crash a software with the intent to explore
potential bugs is not possible for the person
who developed it.
Myth 10 : A Tester's only Task is to
Find Bugs
Reality: Finding bugs in a software is the task
of the testers, but at the same time, they are
domain experts of the particular software.
Developers are only responsible for the
specific component or area that is assigned
to them but testers understand the overall
workings of the software, what the
dependencies are, and the impacts of one
module on another module.
QA, QC and Testing
Quality Assurance Quality Control Testing
Activities that ensure the
implementation of
processes, procedures
and standards in context
to verification of
developed software and
intended requirements.
It includes activities that
ensure the verification of
a developed software
with respect to
documented (or not in
some cases)
requirements.
It includes activities that
ensure the identification
of bugs/error/defects in a
software.
Focuses on processes
and procedures rather
than conducting actual
testing on the system.
Focuses on actual testing
by executing the software
with an aim to identify
bug/defect through
implementation of
procedures and process.
Focuses on actual
testing.
Process-oriented
activities.
Product-oriented
activities.
Product-oriented
activities.
Preventive activities. It is a corrective process. It is a preventive process.
It is a subset of Software
Test Life Cycle (STLC).
QC can be considered as
the subset of Quality
Assurance.
Testing is the subset of
Quality Control.
Testing and Debugging
Testing: It involves identifying bug/error/defect in a
software without correcting it. Normally
professionals with a quality assurance background
are involved in bugs identification. Testing is
performed in the testing phase.
Debugging: It involves identifying, isolating, and
fixing the problems/bugs. Developers who code the
software conduct debugging upon encountering an
error in the code. Debugging is a part of White Box
Testing or Unit Testing. Debugging can be
performed in the development phase while
conducting Unit Testing or in phases while fixing the
reported bugs.
Types of Testing: Manual Testing
● Manual testing includes testing a software
manually, i.e., without using any automated
tool or any script.
● In this type, the tester takes over the role of
an end-user and tests the software to
identify any unexpected behavior or bug.
– Unit testing
– Integration testing
– System testing
– User acceptance testing
Manual Testing
● Testers use test plans, test cases, or test
scenarios to test a software to ensure the
completeness of testing.
● Manual testing also includes exploratory
testing, as testers explore the software to
identify errors in it.
Types of Testing:
Automation Testing
● Automation testing, which is also known as
Test Automation, is when the tester writes
scripts and uses another software to test
the product.
● This process involves automation of a
manual process. Automation Testing is
used to re-run the test scenarios that were
performed manually, quickly, and
repeatedly.
Automation Testing
Apart from regression
testing, automation testing
is also used to test the
application from load,
performance, and stress
point of view. It increases
the test coverage,
improves accuracy, and
saves time and money in
comparison to manual
testing.
Method: Black box testing
● No knowledge of internal design or code is
required.
● Tests are based on requirements and
functionality.
● In BlackBox Testing we just focus on inputs
and output of the software system without
bothering about internal knowledge of the
software program.
Black box testing
https://youtu.be/Wi75S5TTfQ0
Method: White box testing
● Knowledge of the internal program design
and code is required.
● Tests are based on coverage of code
statements, braches, paths, conditions.
● It is one of two parts of the "box testing"
approach of software testing. Its counter-part,
blackbox testing, involves testing from an
external or end-user type perspective. On the
other hand, white box testing is based on the
inner workings of an application and revolves
around internal testing.
White box testing
https://youtu.be/3bJcvBLJViQ
Method: Grey box testing
● Grey-box testing is a technique to test the
application with having a limited knowledge of the
internal workings of an application.
● Unlike black-box testing, where the tester only
tests the application's user interface; in grey-box
testing, the tester has access to design
documents and the database.
● Having this knowledge, a tester can prepare
better test data and test scenarios while making a
test plan.
https://www.tutorialspoint.com/software_testing/software_testing_methods.htm
Comparison of testing methods
Block box testing Grey box testing White box testing
The internal workings of
an application need not
be known.
The tester has limited
knowledge of the internal
workings of the
application.
Tester has full knowledge
of the internal workings
of the application.
Also known as closed-
box testing, data-driven
testing, or functional
testing.
Also known as
translucent testing, as
the tester has limited
knowledge of the insides
of the application.
Also known as clear-box
testing, structural testing,
or code-based testing.
Performed by end-users
and also by testers and
developers.
Performed by end-users
and also by testers and
developers.
Normally done by testers
and developers.
Comparison of testing methods
Black box testing Grey box testing White box testing
Testing is based on
external expectations -
Internal behavior of the
application is unknown.
Testing is done on the
basis of high-level
database diagrams and
data flow diagrams.
Internal workings are fully
known and the tester can
design test data
accordingly.
It is exhaustive and the
least time-consuming.
Partly time-consuming
and exhaustive.
The most exhaustive and
time-consuming type of
testing.
Not suited for algorithm
testing.
Not suited for algorithm
testing.
Suited for algorithm
testing.
This can only be done by
trial-and-error method.
Not suited for algorithm
testing.
Data domains and
internal boundaries can
be better tested.
Testing levels
Functional testing:
A type of testing that is
based on the
specifications of the
software that is to be
tested.
– Unit testing
– Integration
testing
– System testing
Non-functional testing
– Performance
testing
– Load testing
– Stress testing
Usability testing
Security testing
Portability testing
https://www.tutorialspoint.com/software_testing/software_testing_levels.htm
While we are unit testing
Unit Testing
● Unit testing is performed by the respective
developers on the individual units of source
code assigned areas.
● The developers use test data that is
different from the test data of the quality
assurance team.
● The goal of unit testing is to isolate each
part of the program and show that
individual parts are correct in terms of
requirements and functionality.
Unit Testing
https://youtu.be/lj5nnGa_DIw
Integration Testing
Integration testing is defined as the testing of
combined parts of an application to determine if they
function correctly.
Bottom-up integration
This testing begins with unit testing, followed by
tests of progressively higher-level combinations of
units called modules or builds.
Top-down integration
In this testing, the highest-level modules are tested
first and progressively, lower-level modules are
tested thereafter.
Integration Testing
https://youtu.be/QYCaaNz8emY
System Testing
● The system as a whole is tested to uncover
requirement errors.
● It verifies that all system elements work
properly and that overall system function
and performance has been achieved.
– Alpha testing
– Beta testing
– Acceptance testing
– Performance testing
System Testing
Alpha testing
● It is carried out by the test team within the developing
organisation. It may also be done by the end users.
● https://www.guru99.com/alpha-beta-testing-demystified.html
Beta testing
● It is performed by a selected group of firendly customers.
Acceptence testing
● It is performed by the customer to determine whether to
accept or reject the delivery of the system.
Performance testing
● It is carried out to check whether the system meets the non-
functional requirements identified in the SRS documents.
System Testing &
Acceptance Testing
https://youtu.be/N8-qNMHOVyw
In Summary
White/Grey
Box
White/Grey
Box
White/Grey/
Black Box
Black Box Black Box
Performance Tests
Functional Tests
System Testing
Stakeholders Unit Testing Integration
Testing
Alpha
Testing
User
Acceptance
Beta Testing
Tester + + + - -
Developer + + + - -
Project
Manager
- - + - -
Scrum
master
+ + + - -
Product
owner
- - + - -
End user - - + + +
References
● Tutorialspoint: Software testing
https://www.tutorialspoint.com/software_testing/software_testing_overview.htm
● White box and black box testing
https://www.guru99.com/white-box-testing.html
● Alpha testing versus beta testing
https://www.softwaretestinghelp.com/what-is-alpha-testing-beta-testing/

More Related Content

What's hot

Lecture 5 software process model (3)
Lecture 5   software process model (3)Lecture 5   software process model (3)
Lecture 5 software process model (3)IIUI
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing pptSavyasachi14
 
Validation & verification software engineering
Validation & verification software engineeringValidation & verification software engineering
Validation & verification software engineeringSweta Kumari Barnwal
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering FundamentalsRahul Sudame
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurancelokareminakshi
 
Notes on agile
Notes on agileNotes on agile
Notes on agileAmolS7
 
Software development lifecycle
Software development lifecycleSoftware development lifecycle
Software development lifecycleRebecca Jones
 
Chap2
Chap2Chap2
Chap2Niit
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software developmentPratik Devmurari
 
Quality of software
Quality of softwareQuality of software
Quality of softwarePalak Pandoh
 
Spm unit iii-configuration mgmt-responsibilities
Spm unit iii-configuration mgmt-responsibilitiesSpm unit iii-configuration mgmt-responsibilities
Spm unit iii-configuration mgmt-responsibilitiesKanchana Devi
 

What's hot (20)

Chapter 16
Chapter 16Chapter 16
Chapter 16
 
Bai giang-se-03mar14
Bai giang-se-03mar14Bai giang-se-03mar14
Bai giang-se-03mar14
 
Ch02 process a generic view
Ch02 process a generic viewCh02 process a generic view
Ch02 process a generic view
 
Lecture 5 software process model (3)
Lecture 5   software process model (3)Lecture 5   software process model (3)
Lecture 5 software process model (3)
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
V and v model
V and v modelV and v model
V and v model
 
Validation & verification software engineering
Validation & verification software engineeringValidation & verification software engineering
Validation & verification software engineering
 
Requirements Analysis
Requirements AnalysisRequirements Analysis
Requirements Analysis
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering Fundamentals
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
Notes on agile
Notes on agileNotes on agile
Notes on agile
 
Software development lifecycle
Software development lifecycleSoftware development lifecycle
Software development lifecycle
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Chap2
Chap2Chap2
Chap2
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Quality of software
Quality of softwareQuality of software
Quality of software
 
Spm unit iii-configuration mgmt-responsibilities
Spm unit iii-configuration mgmt-responsibilitiesSpm unit iii-configuration mgmt-responsibilities
Spm unit iii-configuration mgmt-responsibilities
 

Similar to Testing Software

Similar to Testing Software (20)

Software_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdfSoftware_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdf
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
 
Basics in software testing
Basics in software testingBasics in software testing
Basics in software testing
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
 
EFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEWEFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEW
 
Top 10 Practices for Software Testing in 2023.pptx
Top 10 Practices for Software Testing in 2023.pptxTop 10 Practices for Software Testing in 2023.pptx
Top 10 Practices for Software Testing in 2023.pptx
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing(1)
Software testing(1)Software testing(1)
Software testing(1)
 
Software testing
Software testingSoftware testing
Software testing
 
software_testing pdf.pdf
software_testing pdf.pdfsoftware_testing pdf.pdf
software_testing pdf.pdf
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Interview questions and answers for quality assurance
Interview questions and answers for quality assuranceInterview questions and answers for quality assurance
Interview questions and answers for quality assurance
 
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTINGWelingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
 
Lesson 7...Question Part 1
Lesson 7...Question Part 1Lesson 7...Question Part 1
Lesson 7...Question Part 1
 
Software Testing
Software TestingSoftware Testing
Software Testing
 

More from Sibel Kuzgun AKIN

More from Sibel Kuzgun AKIN (8)

Cost Estimation
Cost EstimationCost Estimation
Cost Estimation
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Normal Formlar
Normal FormlarNormal Formlar
Normal Formlar
 
ER Şemaları
ER ŞemalarıER Şemaları
ER Şemaları
 
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
 
Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)
 
Veri Tabanı: Temel Kavramlar (Hafta 1)
Veri Tabanı: Temel Kavramlar (Hafta 1)Veri Tabanı: Temel Kavramlar (Hafta 1)
Veri Tabanı: Temel Kavramlar (Hafta 1)
 

Recently uploaded

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 

Recently uploaded (20)

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 

Testing Software

  • 1. Software Engineering WEEK 10 Testing Software Sibel Kuzgun Akın
  • 2. Software Testing ● Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. ● Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements. ● Today we will discuss software testing, its types, methods, levels, and other related terminologies.
  • 3. Testing In simple words, testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements. https://youtu.be/TDynSmrzpXw
  • 4. Who does testing? In the IT industry, large companies have a team with responsibilities to evaluate the developed software in context of the given requirements. Moreover, developers also conduct testing which is called Unit Testing. ● Software Tester ● Software Developer ● Project Lead/Manager ● End User
  • 5. When to start testing? ● An early start to testing reduces the cost and time to rework and produce error-free software that is delivered to the client. ● In Software Development Life Cycle (SDLC), testing can be started from the requirements gathering phase and continued till the deployment of the software.
  • 6. “It is better to try to keep a bad thing from happening than it is to fix the bad thing once it has happened.” ● https://www.seguetech.com/rising-costs-defects/
  • 7. You should test at every phase of SDLC ● During the requirement gathering phase, the analysis and verification of requirements are also considered as testing. ● Reviewing the design in the design phase with the intent to improve the design is also considered as testing. ● Testing performed by a developer on completion of the code is also categorized as testing.
  • 8. Testing in Waterfall Model ● In the Waterfall model, formal testing is conducted in the testing (verification) phase. ● Testing starts at the end when development work is completed. ● In this phase we test the each unit or component and make sure the developed components are working as expected. All the testing activities are performed in testing phase.
  • 9. Testing in Agile Methodologies ● Unlike the WaterFall method, Agile Testing can begin at the start of the project with continuous integration between development and testing. ● Agile testing is not sequential (in the sense it's executed only after coding phase) but continuous. ● Agile team works towards a common objective of achieving quality. Agile testing has shorter time frames called iterations (1-4 weeks). This methodology is also called release, or delivery driven approach since it gives a better prediction on the workable products in short duration of time. ● Testing is performed at the end of every iteration and the whole application is tested at the end.
  • 11. When to stop testing? It is difficult to determine when to stop testing, as testing is a never-ending process and no one can claim that a software is 100% tested. ● Testing Deadlines ● Completion of test case execution ● Completion of functional and code coverage to a certain point ● Bug rate falls below a certain level and no high- priority bugs are identified ● Management decision
  • 13. Verification & Validation Verification Validation Verification addresses the concern: "Are you building it right?" Validation addresses the concern: "Are you building the right thing?" Ensures that the software system meets all the functionality. Ensures that the functionalities meet the intended behavior. Verification takes place first and includes the checking for documentation, code, etc. Validation occurs after verification and mainly involves the checking of the overall product. Done by developers. Done by testers. It has static activities, as it includes collecting reviews, walkthroughs, and inspections to verify a software. It has dynamic activities, as it includes executing the software against the requirements. It is an objective process and no subjective decision should be needed to verify a software. It is a subjective process and involves subjective decisions on how well a software works.
  • 14. Myth 1: Testing is Too Expensive Reality: There is a saying, pay less for testing during software development or pay more for maintenance or correction later. Early testing saves both time and cost in many aspects, however reducing the cost without testing may result in improper design of a software application rendering the product useless.
  • 15. Myth 2: Testing is Time-Consuming Reality: During the SDLC phases, testing is never a time-consuming process. However diagnosing and fixing the errors identified during proper testing is a time-consuming but productive activity.
  • 16. Myth 3: Only Fully Developed Products are Tested Reality: No doubt, testing depends on the source code but reviewing requirements and developing test cases is independent from the developed code. However iterative or incremental approach as a development life cycle model may reduce the dependency of testing on the fully developed software.
  • 17. Myth 4: Complete Testing is Possible Reality: It becomes an issue when a client or tester thinks that complete testing is possible. It is possible that all paths have been tested by the team but occurrence of complete testing is never possible. There might be some scenarios that are never executed by the test team or the client during the software development life cycle and may be executed once the project has been deployed.
  • 18. Myth 5: A Tested Software is Bug-Free Reality: This is a very common myth that the clients, project managers, and the management team believes in. No one can claim with absolute certainty that a software application is 100% bug-free even if a tester with superb testing skills has tested the application.
  • 19. Myth 6: Missed Defects are due to Testers Reality: It is not a correct approach to blame testers for bugs that remain in the application even after testing has been performed. This myth relates to Time, Cost, and Requirements changing Constraints. However the test strategy may also result in bugs being missed by the testing team.
  • 20. Myth 7: Testers are Responsible for Quality of Product Reality: It is a very common misinterpretation that only testers or the testing team should be responsible for product quality. Testers’ responsibilities include the identification of bugs to the stakeholders and then it is their decision whether they will fix the bug or release the software. Releasing the software at the time puts more pressure on the testers, as they will be blamed for any error.
  • 21. Myth 8: Test automation should be used wherever possible to reduce time Reality: Yes, it is true that Test Automation reduces the testing time, but it is not possible to start test automation at any time during software development. Test automaton should be started when the software has been manually tested and is stable to some extent. Moreover, test automation can never be used if requirements keep changing.
  • 22. Myth 9: Anyone can Test a Software Application Reality: People outside the IT industry think and even believe that anyone can test a software and testing is not a creative job. However testers know very well that this is a myth. Thinking alternative scenarios, try to crash a software with the intent to explore potential bugs is not possible for the person who developed it.
  • 23. Myth 10 : A Tester's only Task is to Find Bugs Reality: Finding bugs in a software is the task of the testers, but at the same time, they are domain experts of the particular software. Developers are only responsible for the specific component or area that is assigned to them but testers understand the overall workings of the software, what the dependencies are, and the impacts of one module on another module.
  • 24. QA, QC and Testing Quality Assurance Quality Control Testing Activities that ensure the implementation of processes, procedures and standards in context to verification of developed software and intended requirements. It includes activities that ensure the verification of a developed software with respect to documented (or not in some cases) requirements. It includes activities that ensure the identification of bugs/error/defects in a software. Focuses on processes and procedures rather than conducting actual testing on the system. Focuses on actual testing by executing the software with an aim to identify bug/defect through implementation of procedures and process. Focuses on actual testing. Process-oriented activities. Product-oriented activities. Product-oriented activities. Preventive activities. It is a corrective process. It is a preventive process. It is a subset of Software Test Life Cycle (STLC). QC can be considered as the subset of Quality Assurance. Testing is the subset of Quality Control.
  • 25. Testing and Debugging Testing: It involves identifying bug/error/defect in a software without correcting it. Normally professionals with a quality assurance background are involved in bugs identification. Testing is performed in the testing phase. Debugging: It involves identifying, isolating, and fixing the problems/bugs. Developers who code the software conduct debugging upon encountering an error in the code. Debugging is a part of White Box Testing or Unit Testing. Debugging can be performed in the development phase while conducting Unit Testing or in phases while fixing the reported bugs.
  • 26. Types of Testing: Manual Testing ● Manual testing includes testing a software manually, i.e., without using any automated tool or any script. ● In this type, the tester takes over the role of an end-user and tests the software to identify any unexpected behavior or bug. – Unit testing – Integration testing – System testing – User acceptance testing
  • 27. Manual Testing ● Testers use test plans, test cases, or test scenarios to test a software to ensure the completeness of testing. ● Manual testing also includes exploratory testing, as testers explore the software to identify errors in it.
  • 28. Types of Testing: Automation Testing ● Automation testing, which is also known as Test Automation, is when the tester writes scripts and uses another software to test the product. ● This process involves automation of a manual process. Automation Testing is used to re-run the test scenarios that were performed manually, quickly, and repeatedly.
  • 29. Automation Testing Apart from regression testing, automation testing is also used to test the application from load, performance, and stress point of view. It increases the test coverage, improves accuracy, and saves time and money in comparison to manual testing.
  • 30. Method: Black box testing ● No knowledge of internal design or code is required. ● Tests are based on requirements and functionality. ● In BlackBox Testing we just focus on inputs and output of the software system without bothering about internal knowledge of the software program.
  • 32. Method: White box testing ● Knowledge of the internal program design and code is required. ● Tests are based on coverage of code statements, braches, paths, conditions. ● It is one of two parts of the "box testing" approach of software testing. Its counter-part, blackbox testing, involves testing from an external or end-user type perspective. On the other hand, white box testing is based on the inner workings of an application and revolves around internal testing.
  • 34. Method: Grey box testing ● Grey-box testing is a technique to test the application with having a limited knowledge of the internal workings of an application. ● Unlike black-box testing, where the tester only tests the application's user interface; in grey-box testing, the tester has access to design documents and the database. ● Having this knowledge, a tester can prepare better test data and test scenarios while making a test plan. https://www.tutorialspoint.com/software_testing/software_testing_methods.htm
  • 35. Comparison of testing methods Block box testing Grey box testing White box testing The internal workings of an application need not be known. The tester has limited knowledge of the internal workings of the application. Tester has full knowledge of the internal workings of the application. Also known as closed- box testing, data-driven testing, or functional testing. Also known as translucent testing, as the tester has limited knowledge of the insides of the application. Also known as clear-box testing, structural testing, or code-based testing. Performed by end-users and also by testers and developers. Performed by end-users and also by testers and developers. Normally done by testers and developers.
  • 36. Comparison of testing methods Black box testing Grey box testing White box testing Testing is based on external expectations - Internal behavior of the application is unknown. Testing is done on the basis of high-level database diagrams and data flow diagrams. Internal workings are fully known and the tester can design test data accordingly. It is exhaustive and the least time-consuming. Partly time-consuming and exhaustive. The most exhaustive and time-consuming type of testing. Not suited for algorithm testing. Not suited for algorithm testing. Suited for algorithm testing. This can only be done by trial-and-error method. Not suited for algorithm testing. Data domains and internal boundaries can be better tested.
  • 37. Testing levels Functional testing: A type of testing that is based on the specifications of the software that is to be tested. – Unit testing – Integration testing – System testing Non-functional testing – Performance testing – Load testing – Stress testing Usability testing Security testing Portability testing https://www.tutorialspoint.com/software_testing/software_testing_levels.htm
  • 38. While we are unit testing
  • 39. Unit Testing ● Unit testing is performed by the respective developers on the individual units of source code assigned areas. ● The developers use test data that is different from the test data of the quality assurance team. ● The goal of unit testing is to isolate each part of the program and show that individual parts are correct in terms of requirements and functionality.
  • 41. Integration Testing Integration testing is defined as the testing of combined parts of an application to determine if they function correctly. Bottom-up integration This testing begins with unit testing, followed by tests of progressively higher-level combinations of units called modules or builds. Top-down integration In this testing, the highest-level modules are tested first and progressively, lower-level modules are tested thereafter.
  • 43. System Testing ● The system as a whole is tested to uncover requirement errors. ● It verifies that all system elements work properly and that overall system function and performance has been achieved. – Alpha testing – Beta testing – Acceptance testing – Performance testing
  • 44. System Testing Alpha testing ● It is carried out by the test team within the developing organisation. It may also be done by the end users. ● https://www.guru99.com/alpha-beta-testing-demystified.html Beta testing ● It is performed by a selected group of firendly customers. Acceptence testing ● It is performed by the customer to determine whether to accept or reject the delivery of the system. Performance testing ● It is carried out to check whether the system meets the non- functional requirements identified in the SRS documents.
  • 45. System Testing & Acceptance Testing https://youtu.be/N8-qNMHOVyw
  • 46. In Summary White/Grey Box White/Grey Box White/Grey/ Black Box Black Box Black Box Performance Tests Functional Tests System Testing Stakeholders Unit Testing Integration Testing Alpha Testing User Acceptance Beta Testing Tester + + + - - Developer + + + - - Project Manager - - + - - Scrum master + + + - - Product owner - - + - - End user - - + + +
  • 47. References ● Tutorialspoint: Software testing https://www.tutorialspoint.com/software_testing/software_testing_overview.htm ● White box and black box testing https://www.guru99.com/white-box-testing.html ● Alpha testing versus beta testing https://www.softwaretestinghelp.com/what-is-alpha-testing-beta-testing/