SlideShare a Scribd company logo
ADVANCED SOFTWARE ENGINEERING
SOFTWARE TESTING
PRESENTED BY:
DR. MOHD WARIS KHAN
1
What is Software Testing?
• Software Testing is a method to check whether the actual software product matches expected
requirements and to ensure that software product is Defect free.
OR
• Software testing is a process, to evaluate the functionality of a software application with an
intent to find whether the developed software met the specified requirements or not and to
identify the defects to ensure that the product is defect-free in order to produce a quality
product.
2
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
What are the Applications of Software Testing ?
1. Cost Effective Development - 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.
2. Product Improvement - 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.
3. Customer Satisfaction - The main aim of any product is to give satisfaction to their customers.
Testing ensures the best user experience.
3
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
What are the Applications of Software Testing ?
4. Quality Check - Software testing helps in determining following set of properties of any software
such as
 Functionality
 Reliability
 Usability
 Efficiency
 Maintainability
 Portability
4
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
What are software Testing Methodologies?
Software testing methodologies are the different approaches and ways of ensuring that a
software application in particular is fully tested.
Software testing methodologies encompass everything from unit testing individual
modules, integration testing an entire system to specialized forms of testing such as
security and performance.
Since Software Testing is an integral part of any Development Methodology, many
companies use the term Development Methodologies & Testing Methodologies
colloquially. Hence Testing Methodologies could also refer to Waterfall, Agile and other
QA models as against the above definition of Testing Methodologies.
5
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
What are Software Testing Methodologies and
Approaches?
Here are the most popular and well-known testing methodologies, explained step by step.
Agile Methodology
Waterfall Methodology
Verification and Validation Methodology (V-Model)
Incremental Methodology
Spiral Methodology
XP (Extreme Programming) Methodology
6
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
FUNCTIONAL TESTING
Unit testing
Integration testing
End-to-end testing
Smoke testing
Sanity testing
Regression testing
Acceptance testing
White box testing
Black box testing
Interface testing
7
Functional testing involves the testing of the functional aspects of a software application. When you’re
performing functional tests, you have to test each and every functionality. You need to see whether you’re
getting the desired results or not.
There are several types of functional testing, such as
Functional tests are performed both manually and using automation tools. For this kind of testing, manual
testing is easy, but you should use tools when necessary.
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
NON-FUNCTIONAL TESTING
Non-functional testing is the testing of non-functional aspects of an application, such as
performance, reliability, usability, security, and so on. Non-functional tests are performed
after the functional tests.
With non-functional testing, you can improve your software’s quality to a great extent.
Functional tests also improve the quality, but with non-functional tests, you have the
opportunity to make your software even better. Non-functional testing allows you to
polish the software. This kind of testing is not about whether the software works or not.
Rather, it’s about how well the software runs, and many other things.
8
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
There are several types of non-functional testing, such as:
Performance testing
Security testing
Load testing
Failover testing
Compatibility testing
Usability testing
Scalability testing
Volume testing
Stress testing
Maintainability testing
Compliance testing
Efficiency testing
Reliability testing
Endurance testing
Disaster recovery testing
Localization testing
Internationalization testing
9
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
10
Software Testing
Unit Testing
Integration
Testing
System Testing
Regression
Testing
• Bang bang
• Top Down
• Bottom Up
• Mixed
Based on who
is doing testing
• Alpha
• Beta
• Acceptance
Performance/
Non functional
• Volume
• Load
• Stress
• Security
• Configuration
• Recovery
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
Different Types of Software Testing
Some of the most common types of software testing.
1. Unit Testing
Testing each component or module of your software project is known as unit testing. To perform this
kind of testing, knowledge of programming is necessary. So only programmers do this kind of tests,
not testers.
2. Integration testing
After integrating the modules, you need to see if the combined modules work together or not. This
type of testing is known as integration testing. You need to perform fewer integration tests than unit
tests.
11
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
3. End-to-end Testing
End-to-end testing is the functional testing of the entire software system. When you test the complete
software system, such testing is called end-to-end testing. You need to perform fewer end-to-end tests
than integration tests.
4. User Interface Testing
User interface testing involves the testing of the application’s user interface. The aim of UI tests is to
check whether the user interfaces have been developed according to what is described in the requirements
specifications document.
5. Accessibility testing
Testing whether your software is accessible to disabled people or not is termed as accessible testing. For
this type of tests, you need to check if disabled people such as those who are colour blind, blind, and
deaf can use your application. 12
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
6. Alpha testing
Alpha testing is a kind of testing to look for all the errors and issues in the entire software. This kind of test is done
at the last phase of app development and is performed at the place of the developers, before launching the product or
before delivering it to the client to ensure that the user/client gets an error-free software application.
7. Beta testing
As said earlier, beta testing takes place after alpha testing. Beta testing is done before the launch of the product. It is
carried out in a real user environment by a limited number of actual customers or users, in order to be certain that the
software is completely error-free and it functions smoothly. After collecting feedback and constructive criticism from
those users, some changes are made to make the software better.
So when the software is under beta testing, it is called beta version of the software. After this testing is complete,
the software is released to the public.
8. Ad-hoc testing
As the name suggests, ad-hoc testing is a kind of testing that is performed in an ad-hoc manner, without using any
test cases, plans, documentation, or systems. Unlike all other types of testing, this kind of testing is not carried out
in a systematic manner. 13
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
9. Compatibility testing
Compatibility testing involves compatibility checking of the software with different operating systems, web
browsers, network environments, hardware, and so on. It checks whether the developed software application
is working fine with different configurations.
10. Backward compatibility testing
Backward compatibility testing is carried out to test if a brand new or an updated version of an application is
compatible with the previous versions of the environments (such as operating systems and web browsers) on
which the software runs. Sometimes, some application is updated specifically to match the standard and style
of a newer, more modern environment. In that case, support for backward compatibility is necessary.
11. Browser compatibility testing
As the name says, browser compatibility testing checks a web application for browser compatibility. More
specifically, it is tested whether the web app can easily be accessed from all versions of the major web
browsers. 14
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
12. Performance testing
Performance tests are run to check if the software’s performance is good or not. There are performance
testing tools that analyze your app’s performance and show you the performance issues. By fixing those
issues, you’ll be able to increase the performance of your software application.
13. Load testing
Load testing is one kind of performance testing that tests how much load a system can take before the
software performance begins to degrade. By running load tests, we can know the capacity of taking load
of a system.
14. Recovery testing
Recovery testing involves the checking of whether the application can recover from crashes and how well
it recovers. In this kind of tests, testers observe how well the software can come back to the normal flow
of execution. Crashes can happen anytime. Even if your software is of exceptional quality, crashes may
happen. You don’t know when they may take place and annoy the users. 15
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
15. Regression testing
If you need to make changes in any component, module, or function, you have to see if the whole system
functions properly after those modifications. Testing of the whole system after such modifications is
known as regression testing.
16. Agile testing
Carried out by the QA team, Agile testing is a type of testing that is conducted according to the rules of
agile methodology. This kind of testing is done from the actual customers’ viewpoint.
17. API testing
Just like unit testing, API testing is also a code-level testing type. The basic difference between unit
testing and API testing is that unit testing is performed by the development team whereas API testing is
handled by the QA team.
16
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
18. Black box testing
Performed by the QA team of a company, black box testing is a testing technique that involves the checking of the
application’s functionality without having any technical knowledge of the application, like the knowledge of the
code’s logic, how the code works, knowledge of the internal structure, etc.
19. White box testing
Performed by the development team, white box testing is a testing method that requires a good understanding of the
application’s code. It requires great knowledge of the app’s internal logic.
20. Security testing
Security tests are performed to ensure the security of your application, in order that security breaches can be
prevented. Security experts run this kind of tests to see how much your software is secure from attacks and to find
security issues so that the app’s security can be strengthened.
17
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
21. Usability testing
Testing the user-friendliness of an app is known as usability testing. It involves the checking of how much usable or
user-friendly the app is. It is tested whether any user can easily use your software without getting stuck.
22. Scalability testing
Scalability testing verifies whether the software is scalable or not. In other words, it checks if your app performs well
when the number of users, amount of data, or the number of transactions increases significantly. A software
application that is not scalable may cause great business loss.
23. Reliability testing
Reliability testing is a type of software testing that verifies if the software is reliable or not. In other words, it
checks whether the software runs error-free and that one can rely on it.
18
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
24. Acceptance testing
The client who will purchase your software will perform acceptance testing (also known as User
Acceptance Testing) to see if the software can be accepted or not by checking whether your software meets
all the client’s requirements and preferences. If your software doesn’t meet all the requirements or if your
client doesn’t like something in the app, they may request you to make changes before accepting the
project.
25. End-to-End Testing
Similar to system testing, End-to-End Testing involves testing of a complete application environment in a
situation that mimics real-world use, such as interacting with a database, using network communications,
or interacting with other hardware, applications, or systems if appropriate.
19
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
Need for Object Oriented Testing
Nowadays most of the applications are designed on the basis of Object Oriented
concepts.
Dependencies
 Class to class dependencies
 Class to method dependencies
 Method to variable dependencies
 Method to message dependencies
 Method to method dependencies
20
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
Types of Object Oriented Testing
 Fault Based Testing
 Random Testing
 Class Testing Based on Method Testing
 Scenario-based Testing
 Partition Testing
Fault Based Testing - Fault-based testing is a technique where testers anticipate errors in a system under test in order to
assess or generate test cases. The idea is to have enough test cases capable of detecting these anticipated errors.
This type of checking permits for coming up with test cases supported the consumer specification or the code or both. It tries
to identify possible faults (areas of design or code that may lead to errors.). For all of these faults, a test case is developed to
“flush” the errors out. These tests also force each time of code to be executed. This method of testing does not find all types of
errors. However, incorrect specification and interface errors can be missed. 21
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
Types of Object Oriented Testing
Random Testing - It is supported by developing a random test sequence that tries the minimum variety of
operations typical to the behavior of the categories. A random test of sequences are applied in all aspects.
or Random testing means selecting people for a test arbitrarily. Take, for example, a test meant to figure out how
common COVID-19 exposure is in a town of 10,000 people.
Class Testing Based on Method Testing - This approach is the simplest approach to test classes. Each method of
the class performs a well defined cohesive function and can, therefore, be related to unit testing of the traditional
testing techniques. Therefore all the methods of a class can be involved at least once to test the class.
Testing is a continuous activity during software development. In object-oriented systems, testing encompasses
three levels, namely, unit testing, subsystem testing, and system testing.
22
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
Types of Object Oriented Testing
Scenario-based Testing - It primarily involves capturing the user actions then stimulating them to similar actions
throughout the test. These tests tend to search out interaction form of error.
or Scenario-based testing is one method of documenting software specifications and requirements for the project.
Scenario-based testing is used for writing tests for individual user scenario, which would check their work.
Scenarios concentrate on the principal objectives and requirements.
Partition Testing - This methodology categorizes the inputs and outputs of a category so as to check them
severely. This minimizes the number of cases that have to be designed.
Partition testing reduces the number of test cases required to exercise the class in much the same manner as
equivalence partitioning for conventional software. Input and output are categorized and test cases are designed
to exercise each category.
23
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
THANK YOU
24
Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow

More Related Content

What's hot

Software testing overview subbu
Software testing overview subbuSoftware testing overview subbu
Software testing overview subbu
Subramanya Mudukutore
 
Software Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief OverviewSoftware Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief Overview
Softheme
 
Functional testing patterns
Functional testing patternsFunctional testing patterns
Functional testing patterns
Premanand Chandrasekaran
 
Software testing
Software testingSoftware testing
Software testing
Sengu Msc
 
A COMPOSITION ON SOFTWARE TESTING
A COMPOSITION ON SOFTWARE TESTINGA COMPOSITION ON SOFTWARE TESTING
functional testing
functional testing functional testing
functional testing
bharathanche
 
Types of Software Testing | Edureka
Types of Software Testing | EdurekaTypes of Software Testing | Edureka
Types of Software Testing | Edureka
Edureka!
 
Software testing sengu
Software testing  senguSoftware testing  sengu
Software testing senguSengu Msc
 
Chapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology DriversChapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology Drivers
Neeraj Kumar Singh
 
Software Testing ppt
Software Testing pptSoftware Testing ppt
Software Testing ppt
Pratibha Singh
 
Software testing
Software testingSoftware testing
Software testing
mkn3009
 
Software Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, PuneSoftware Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, Pune
sanjayjadhav8789
 
Fundamentals of testing (1)
Fundamentals of testing (1)Fundamentals of testing (1)
Fundamentals of testing (1)Aziz Chikhly
 
Chapter 2 - Testing Throughout the Development LifeCycle
Chapter 2 - Testing Throughout the Development LifeCycleChapter 2 - Testing Throughout the Development LifeCycle
Chapter 2 - Testing Throughout the Development LifeCycle
Neeraj Kumar Singh
 

What's hot (15)

Software testing overview subbu
Software testing overview subbuSoftware testing overview subbu
Software testing overview subbu
 
Software Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief OverviewSoftware Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief Overview
 
Functional testing patterns
Functional testing patternsFunctional testing patterns
Functional testing patterns
 
Software testing
Software testingSoftware testing
Software testing
 
A COMPOSITION ON SOFTWARE TESTING
A COMPOSITION ON SOFTWARE TESTINGA COMPOSITION ON SOFTWARE TESTING
A COMPOSITION ON SOFTWARE TESTING
 
functional testing
functional testing functional testing
functional testing
 
Types of Software Testing | Edureka
Types of Software Testing | EdurekaTypes of Software Testing | Edureka
Types of Software Testing | Edureka
 
Software testing sengu
Software testing  senguSoftware testing  sengu
Software testing sengu
 
Software testing
Software testingSoftware testing
Software testing
 
Chapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology DriversChapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology Drivers
 
Software Testing ppt
Software Testing pptSoftware Testing ppt
Software Testing ppt
 
Software testing
Software testingSoftware testing
Software testing
 
Software Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, PuneSoftware Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, Pune
 
Fundamentals of testing (1)
Fundamentals of testing (1)Fundamentals of testing (1)
Fundamentals of testing (1)
 
Chapter 2 - Testing Throughout the Development LifeCycle
Chapter 2 - Testing Throughout the Development LifeCycleChapter 2 - Testing Throughout the Development LifeCycle
Chapter 2 - Testing Throughout the Development LifeCycle
 

Similar to Software testing

A Comprehensive Guide to Different Types of Software Testing - Uncodemy.pdf
A Comprehensive Guide to Different Types of Software Testing - Uncodemy.pdfA Comprehensive Guide to Different Types of Software Testing - Uncodemy.pdf
A Comprehensive Guide to Different Types of Software Testing - Uncodemy.pdf
Ahana Sharma
 
Software QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath DarshanaSoftware QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath Darshana
Shamain Peiris
 
Understanding Functional Testing.pdf
Understanding Functional Testing.pdfUnderstanding Functional Testing.pdf
Understanding Functional Testing.pdf
AnanthReddy38
 
Why is software testing important
Why is software testing important Why is software testing important
Why is software testing important
Infowind Technologies (IT) Pvt Ltd
 
Why is software testing important
Why is software testing importantWhy is software testing important
Why is software testing important
Infowind Technologies (IT) Pvt Ltd
 
Software testing
Software testingSoftware testing
Software testing
MrsRBoomadeviIT
 
12 Different Software Testing Methodologies.pdf
12 Different Software Testing Methodologies.pdf12 Different Software Testing Methodologies.pdf
12 Different Software Testing Methodologies.pdf
Oprim Solutions
 
Sftwre engg.testng
Sftwre engg.testngSftwre engg.testng
Sftwre engg.testng
kanika20071990
 
Software Testing
Software TestingSoftware Testing
Software Testing
Sengu Msc
 
UNIT 2.pptx
UNIT 2.pptxUNIT 2.pptx
UNIT 2.pptx
PallawiBulakh1
 
Software Testing.pptx
Software Testing.pptxSoftware Testing.pptx
Software Testing.pptx
sonalshitole
 
The Crucial Role of Software Testing Ensuring Quality and Reliability.pdf
The Crucial Role of Software Testing Ensuring Quality and Reliability.pdfThe Crucial Role of Software Testing Ensuring Quality and Reliability.pdf
The Crucial Role of Software Testing Ensuring Quality and Reliability.pdf
Kajal Digital
 
What is Software Testing Definition, Types and Benefits.pdf
What is Software Testing Definition, Types and Benefits.pdfWhat is Software Testing Definition, Types and Benefits.pdf
What is Software Testing Definition, Types and Benefits.pdf
JoeyWilliams21
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
kalichargn70th171
 
How to Start a Career in Data Science in 2023
How to Start a Career in Data Science in 2023How to Start a Career in Data Science in 2023
How to Start a Career in Data Science in 2023
Uncodemy
 
Session 05 - Testing Concepts
Session 05 - Testing ConceptsSession 05 - Testing Concepts
Session 05 - Testing Concepts
PoojaLQA
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testingVenkat Alagarsamy
 
Software Testing
Software TestingSoftware Testing
11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil Barot11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil Barot
Harshil Barot
 

Similar to Software testing (20)

A Comprehensive Guide to Different Types of Software Testing - Uncodemy.pdf
A Comprehensive Guide to Different Types of Software Testing - Uncodemy.pdfA Comprehensive Guide to Different Types of Software Testing - Uncodemy.pdf
A Comprehensive Guide to Different Types of Software Testing - Uncodemy.pdf
 
Software QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath DarshanaSoftware QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath Darshana
 
Understanding Functional Testing.pdf
Understanding Functional Testing.pdfUnderstanding Functional Testing.pdf
Understanding Functional Testing.pdf
 
Why is software testing important
Why is software testing important Why is software testing important
Why is software testing important
 
Why is software testing important
Why is software testing importantWhy is software testing important
Why is software testing important
 
Software testing
Software testingSoftware testing
Software testing
 
Testing
Testing Testing
Testing
 
12 Different Software Testing Methodologies.pdf
12 Different Software Testing Methodologies.pdf12 Different Software Testing Methodologies.pdf
12 Different Software Testing Methodologies.pdf
 
Sftwre engg.testng
Sftwre engg.testngSftwre engg.testng
Sftwre engg.testng
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
UNIT 2.pptx
UNIT 2.pptxUNIT 2.pptx
UNIT 2.pptx
 
Software Testing.pptx
Software Testing.pptxSoftware Testing.pptx
Software Testing.pptx
 
The Crucial Role of Software Testing Ensuring Quality and Reliability.pdf
The Crucial Role of Software Testing Ensuring Quality and Reliability.pdfThe Crucial Role of Software Testing Ensuring Quality and Reliability.pdf
The Crucial Role of Software Testing Ensuring Quality and Reliability.pdf
 
What is Software Testing Definition, Types and Benefits.pdf
What is Software Testing Definition, Types and Benefits.pdfWhat is Software Testing Definition, Types and Benefits.pdf
What is Software Testing Definition, Types and Benefits.pdf
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
How to Start a Career in Data Science in 2023
How to Start a Career in Data Science in 2023How to Start a Career in Data Science in 2023
How to Start a Career in Data Science in 2023
 
Session 05 - Testing Concepts
Session 05 - Testing ConceptsSession 05 - Testing Concepts
Session 05 - Testing Concepts
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testing
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil Barot11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil Barot
 

Recently uploaded

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 

Recently uploaded (20)

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 

Software testing

  • 1. ADVANCED SOFTWARE ENGINEERING SOFTWARE TESTING PRESENTED BY: DR. MOHD WARIS KHAN 1
  • 2. What is Software Testing? • Software Testing is a method to check whether the actual software product matches expected requirements and to ensure that software product is Defect free. OR • Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect-free in order to produce a quality product. 2 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 3. What are the Applications of Software Testing ? 1. Cost Effective Development - 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. 2. Product Improvement - 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. 3. Customer Satisfaction - The main aim of any product is to give satisfaction to their customers. Testing ensures the best user experience. 3 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 4. What are the Applications of Software Testing ? 4. Quality Check - Software testing helps in determining following set of properties of any software such as  Functionality  Reliability  Usability  Efficiency  Maintainability  Portability 4 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 5. What are software Testing Methodologies? Software testing methodologies are the different approaches and ways of ensuring that a software application in particular is fully tested. Software testing methodologies encompass everything from unit testing individual modules, integration testing an entire system to specialized forms of testing such as security and performance. Since Software Testing is an integral part of any Development Methodology, many companies use the term Development Methodologies & Testing Methodologies colloquially. Hence Testing Methodologies could also refer to Waterfall, Agile and other QA models as against the above definition of Testing Methodologies. 5 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 6. What are Software Testing Methodologies and Approaches? Here are the most popular and well-known testing methodologies, explained step by step. Agile Methodology Waterfall Methodology Verification and Validation Methodology (V-Model) Incremental Methodology Spiral Methodology XP (Extreme Programming) Methodology 6 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 7. FUNCTIONAL TESTING Unit testing Integration testing End-to-end testing Smoke testing Sanity testing Regression testing Acceptance testing White box testing Black box testing Interface testing 7 Functional testing involves the testing of the functional aspects of a software application. When you’re performing functional tests, you have to test each and every functionality. You need to see whether you’re getting the desired results or not. There are several types of functional testing, such as Functional tests are performed both manually and using automation tools. For this kind of testing, manual testing is easy, but you should use tools when necessary. Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 8. NON-FUNCTIONAL TESTING Non-functional testing is the testing of non-functional aspects of an application, such as performance, reliability, usability, security, and so on. Non-functional tests are performed after the functional tests. With non-functional testing, you can improve your software’s quality to a great extent. Functional tests also improve the quality, but with non-functional tests, you have the opportunity to make your software even better. Non-functional testing allows you to polish the software. This kind of testing is not about whether the software works or not. Rather, it’s about how well the software runs, and many other things. 8 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 9. There are several types of non-functional testing, such as: Performance testing Security testing Load testing Failover testing Compatibility testing Usability testing Scalability testing Volume testing Stress testing Maintainability testing Compliance testing Efficiency testing Reliability testing Endurance testing Disaster recovery testing Localization testing Internationalization testing 9 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 10. 10 Software Testing Unit Testing Integration Testing System Testing Regression Testing • Bang bang • Top Down • Bottom Up • Mixed Based on who is doing testing • Alpha • Beta • Acceptance Performance/ Non functional • Volume • Load • Stress • Security • Configuration • Recovery Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 11. Different Types of Software Testing Some of the most common types of software testing. 1. Unit Testing Testing each component or module of your software project is known as unit testing. To perform this kind of testing, knowledge of programming is necessary. So only programmers do this kind of tests, not testers. 2. Integration testing After integrating the modules, you need to see if the combined modules work together or not. This type of testing is known as integration testing. You need to perform fewer integration tests than unit tests. 11 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 12. 3. End-to-end Testing End-to-end testing is the functional testing of the entire software system. When you test the complete software system, such testing is called end-to-end testing. You need to perform fewer end-to-end tests than integration tests. 4. User Interface Testing User interface testing involves the testing of the application’s user interface. The aim of UI tests is to check whether the user interfaces have been developed according to what is described in the requirements specifications document. 5. Accessibility testing Testing whether your software is accessible to disabled people or not is termed as accessible testing. For this type of tests, you need to check if disabled people such as those who are colour blind, blind, and deaf can use your application. 12 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 13. 6. Alpha testing Alpha testing is a kind of testing to look for all the errors and issues in the entire software. This kind of test is done at the last phase of app development and is performed at the place of the developers, before launching the product or before delivering it to the client to ensure that the user/client gets an error-free software application. 7. Beta testing As said earlier, beta testing takes place after alpha testing. Beta testing is done before the launch of the product. It is carried out in a real user environment by a limited number of actual customers or users, in order to be certain that the software is completely error-free and it functions smoothly. After collecting feedback and constructive criticism from those users, some changes are made to make the software better. So when the software is under beta testing, it is called beta version of the software. After this testing is complete, the software is released to the public. 8. Ad-hoc testing As the name suggests, ad-hoc testing is a kind of testing that is performed in an ad-hoc manner, without using any test cases, plans, documentation, or systems. Unlike all other types of testing, this kind of testing is not carried out in a systematic manner. 13 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 14. 9. Compatibility testing Compatibility testing involves compatibility checking of the software with different operating systems, web browsers, network environments, hardware, and so on. It checks whether the developed software application is working fine with different configurations. 10. Backward compatibility testing Backward compatibility testing is carried out to test if a brand new or an updated version of an application is compatible with the previous versions of the environments (such as operating systems and web browsers) on which the software runs. Sometimes, some application is updated specifically to match the standard and style of a newer, more modern environment. In that case, support for backward compatibility is necessary. 11. Browser compatibility testing As the name says, browser compatibility testing checks a web application for browser compatibility. More specifically, it is tested whether the web app can easily be accessed from all versions of the major web browsers. 14 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 15. 12. Performance testing Performance tests are run to check if the software’s performance is good or not. There are performance testing tools that analyze your app’s performance and show you the performance issues. By fixing those issues, you’ll be able to increase the performance of your software application. 13. Load testing Load testing is one kind of performance testing that tests how much load a system can take before the software performance begins to degrade. By running load tests, we can know the capacity of taking load of a system. 14. Recovery testing Recovery testing involves the checking of whether the application can recover from crashes and how well it recovers. In this kind of tests, testers observe how well the software can come back to the normal flow of execution. Crashes can happen anytime. Even if your software is of exceptional quality, crashes may happen. You don’t know when they may take place and annoy the users. 15 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 16. 15. Regression testing If you need to make changes in any component, module, or function, you have to see if the whole system functions properly after those modifications. Testing of the whole system after such modifications is known as regression testing. 16. Agile testing Carried out by the QA team, Agile testing is a type of testing that is conducted according to the rules of agile methodology. This kind of testing is done from the actual customers’ viewpoint. 17. API testing Just like unit testing, API testing is also a code-level testing type. The basic difference between unit testing and API testing is that unit testing is performed by the development team whereas API testing is handled by the QA team. 16 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 17. 18. Black box testing Performed by the QA team of a company, black box testing is a testing technique that involves the checking of the application’s functionality without having any technical knowledge of the application, like the knowledge of the code’s logic, how the code works, knowledge of the internal structure, etc. 19. White box testing Performed by the development team, white box testing is a testing method that requires a good understanding of the application’s code. It requires great knowledge of the app’s internal logic. 20. Security testing Security tests are performed to ensure the security of your application, in order that security breaches can be prevented. Security experts run this kind of tests to see how much your software is secure from attacks and to find security issues so that the app’s security can be strengthened. 17 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 18. 21. Usability testing Testing the user-friendliness of an app is known as usability testing. It involves the checking of how much usable or user-friendly the app is. It is tested whether any user can easily use your software without getting stuck. 22. Scalability testing Scalability testing verifies whether the software is scalable or not. In other words, it checks if your app performs well when the number of users, amount of data, or the number of transactions increases significantly. A software application that is not scalable may cause great business loss. 23. Reliability testing Reliability testing is a type of software testing that verifies if the software is reliable or not. In other words, it checks whether the software runs error-free and that one can rely on it. 18 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 19. 24. Acceptance testing The client who will purchase your software will perform acceptance testing (also known as User Acceptance Testing) to see if the software can be accepted or not by checking whether your software meets all the client’s requirements and preferences. If your software doesn’t meet all the requirements or if your client doesn’t like something in the app, they may request you to make changes before accepting the project. 25. End-to-End Testing Similar to system testing, End-to-End Testing involves testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate. 19 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 20. Need for Object Oriented Testing Nowadays most of the applications are designed on the basis of Object Oriented concepts. Dependencies  Class to class dependencies  Class to method dependencies  Method to variable dependencies  Method to message dependencies  Method to method dependencies 20 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 21. Types of Object Oriented Testing  Fault Based Testing  Random Testing  Class Testing Based on Method Testing  Scenario-based Testing  Partition Testing Fault Based Testing - Fault-based testing is a technique where testers anticipate errors in a system under test in order to assess or generate test cases. The idea is to have enough test cases capable of detecting these anticipated errors. This type of checking permits for coming up with test cases supported the consumer specification or the code or both. It tries to identify possible faults (areas of design or code that may lead to errors.). For all of these faults, a test case is developed to “flush” the errors out. These tests also force each time of code to be executed. This method of testing does not find all types of errors. However, incorrect specification and interface errors can be missed. 21 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 22. Types of Object Oriented Testing Random Testing - It is supported by developing a random test sequence that tries the minimum variety of operations typical to the behavior of the categories. A random test of sequences are applied in all aspects. or Random testing means selecting people for a test arbitrarily. Take, for example, a test meant to figure out how common COVID-19 exposure is in a town of 10,000 people. Class Testing Based on Method Testing - This approach is the simplest approach to test classes. Each method of the class performs a well defined cohesive function and can, therefore, be related to unit testing of the traditional testing techniques. Therefore all the methods of a class can be involved at least once to test the class. Testing is a continuous activity during software development. In object-oriented systems, testing encompasses three levels, namely, unit testing, subsystem testing, and system testing. 22 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 23. Types of Object Oriented Testing Scenario-based Testing - It primarily involves capturing the user actions then stimulating them to similar actions throughout the test. These tests tend to search out interaction form of error. or Scenario-based testing is one method of documenting software specifications and requirements for the project. Scenario-based testing is used for writing tests for individual user scenario, which would check their work. Scenarios concentrate on the principal objectives and requirements. Partition Testing - This methodology categorizes the inputs and outputs of a category so as to check them severely. This minimizes the number of cases that have to be designed. Partition testing reduces the number of test cases required to exercise the class in much the same manner as equivalence partitioning for conventional software. Input and output are categorized and test cases are designed to exercise each category. 23 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow
  • 24. THANK YOU 24 Dr. Mohd waris Khan, Department of Computer Application, Integral University, Lucknow