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

PPTX
Gl istqb testing fundamentals
PPTX
softwaretestingppt-FINAL-PPT-1
PDF
Chapter 2 - Mobile Application Test Types
DOCX
Interview questions for manual testing technology.
DOCX
Basic interview questions for manual testing
PPTX
Mobile Application Testing Process
PDF
Testing types functional and nonfunctional - Kati Holasz
PPTX
Fundamentals of Testing
Gl istqb testing fundamentals
softwaretestingppt-FINAL-PPT-1
Chapter 2 - Mobile Application Test Types
Interview questions for manual testing technology.
Basic interview questions for manual testing
Mobile Application Testing Process
Testing types functional and nonfunctional - Kati Holasz
Fundamentals of Testing

What's hot (15)

PPT
Software testing overview subbu
PPTX
Software Testing: History, Trends, Perspectives - a Brief Overview
PDF
Functional testing patterns
PPTX
Software testing
PDF
PPTX
functional testing
PDF
Types of Software Testing | Edureka
PPTX
Software testing sengu
PDF
Software testing
PDF
Chapter 1 - Mobile World - Business and Technology Drivers
PPTX
Software Testing ppt
PPTX
Software testing
PPT
Software Testing Tutorials - MindScripts Technologies, Pune
PDF
Fundamentals of testing (1)
PPTX
Chapter 2 - Testing Throughout the Development LifeCycle
Software testing overview subbu
Software Testing: History, Trends, Perspectives - a Brief Overview
Functional testing patterns
Software testing
functional testing
Types of Software Testing | Edureka
Software testing sengu
Software testing
Chapter 1 - Mobile World - Business and Technology Drivers
Software Testing ppt
Software testing
Software Testing Tutorials - MindScripts Technologies, Pune
Fundamentals of testing (1)
Chapter 2 - Testing Throughout the Development LifeCycle
Ad

Similar to Software testing (20)

PDF
Software Testing Types_ A Comprehensive Overview.pdf
PPTX
Softwere Testing Aplication Specific Techniques
DOC
Testing
PPT
Different type of_software_testing - copy
PDF
The Different Types of Software Testing_ A Comprehensive Overview.pdf
PDF
A Complete Guide to Functional Testing.pdf
PDF
Software testing methods, levels and types
PDF
What is Functional Testing.docx.pdf
PDF
What is Functional Testing? Types and Examples
PDF
Types of Software Testing A Comprehensive Guide.pdf
PPTX
These risks can arise from various sources and can affect different aspects o...
DOCX
Faq
DOCX
Software Testing Interview Questions.docx
PPT
Software testing & its technology
ODP
QA Process Overview
PDF
Testing Slides 1 (Testing Intro+Static Testing).pdf
PPT
_VoicePPT_QA_Testing_Training_4_Days_Schedule.ppt
PPTX
Software testing
PPTX
CTFL Module 02
PDF
Why is software testing important
Software Testing Types_ A Comprehensive Overview.pdf
Softwere Testing Aplication Specific Techniques
Testing
Different type of_software_testing - copy
The Different Types of Software Testing_ A Comprehensive Overview.pdf
A Complete Guide to Functional Testing.pdf
Software testing methods, levels and types
What is Functional Testing.docx.pdf
What is Functional Testing? Types and Examples
Types of Software Testing A Comprehensive Guide.pdf
These risks can arise from various sources and can affect different aspects o...
Faq
Software Testing Interview Questions.docx
Software testing & its technology
QA Process Overview
Testing Slides 1 (Testing Intro+Static Testing).pdf
_VoicePPT_QA_Testing_Training_4_Days_Schedule.ppt
Software testing
CTFL Module 02
Why is software testing important
Ad

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Encapsulation_ Review paper, used for researhc scholars
Understanding_Digital_Forensics_Presentation.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Big Data Technologies - Introduction.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Diabetes mellitus diagnosis method based random forest with bat algorithm
Network Security Unit 5.pdf for BCA BBA.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
MYSQL Presentation for SQL database connectivity
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Spectral efficient network and resource selection model in 5G networks
Building Integrated photovoltaic BIPV_UPV.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Encapsulation_ Review paper, used for researhc scholars

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