0% found this document useful (0 votes)
14 views

Performance Testing

.

Uploaded by

Madhavan K
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Performance Testing

.

Uploaded by

Madhavan K
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 27

What is performance testing?

Performance testing is a type of software testing that focuses on evaluating


the performance and scalability of a system or application. Performance
testing aims to identify bottlenecks, measure system performance under
various loads and conditions, and ensure that the system can handle the
expected number of users or transactions.
Types of performance testing
Performance Testing is the process of analyzing the quality and capability
of a product. It is a testing method to determine the system’s performance
in terms of speed, reliability, and stability under varying workloads.
Performance testing is also known as Perf Testing. The types of
Performance testing are as follows:

1. Load testing
Load testing simulates a real-world load on the system to see how it
performs under stress. It helps identify bottlenecks and determine the
maximum number of users or transactions the system can handle. It checks
the product’s ability to perform under anticipated user loads. The objective
is to identify performance congestion before the software product is
launched in the market.
2. Stress testing
Stress testing is a type of load testing that tests the system’s ability to
handle a high load above normal usage levels. It helps identify the breaking
point of the system and any potential issues that may occur under heavy
load conditions. It involves testing a product under extreme workloads to
see whether it handles high traffic or not. The objective is to identify the
breaking point of a software product.
3. Spike testing
Spike testing is a type of load testing that tests the system’s ability to handle
sudden spikes in traffic. It helps identify any issues that may occur when
the system is suddenly hit with a high number of requests. It tests the
product’s reaction to sudden large spikes in the load generated by users.
4. Soak testing
Soak testing is a type of load testing that tests the system’s ability to handle
a sustained load over a prolonged period. It helps identify any issues that
may occur after prolonged usage of the system.
5. Endurance testing
Endurance testing is similar to soak testing, but it focuses on the long-term
behavior of the system under a constant load. It is performed to ensure the
software can handle the expected load over a long period.
6. Volume testing
In Volume testing, a large number of data is saved in a database and the
overall software system’s behavior is observed. The objective is to check the
product’s performance under varying database volumes.
7. Scalability testing
In Scalability testing, the software application’s effectiveness is determined
by scaling up to support an increase in user load. It helps in planning
capacity additions to your software system.
Why use performance testing?
 The objective of performance testing is to eliminate performance
congestion.
 It uncovers what needs to be improved before the product is
launched in the market.
 The objective of performance testing is to make software rapid.
 The objective of performance testing is to make software stable and
reliable.
 The objective of performance testing is to evaluate the performance
and scalability of a system or application under various loads and
conditions.
 It helps identify bottlenecks, measure system performance, and
ensure that the system can handle the expected number of users or
transactions.
 It also helps to ensure that the system is reliable, stable, and can
handle the expected load in a production environment.
How to conduct performance testing?
Conducting performance testing involves several steps to ensure that a
software application can handle expected loads and perform well under
stress. Here’s a simplified guide on how to conduct performance testing:

performance testing process


Step 1: Set Up the Testing Environment First prepare the place where you
will run the tests for the performance testing. Make sure you have all the
needed tools and understanding for the setup, like what devices and
software you will be using for the performance testing.
Step 2: Decide What to Measure Think about what you want to know from
the tests. This will include things like how fast the system responds to and
how much it can handle the tests. You can also look at successful similar
systems to set your goals.
Step 3: Plan Your Tests to Figure out different scenarios to test, considering
things like how users might behave and what data you will use. This helps
you create tests that cover a range of situations and decide what data to
collect.
Step 4: Set Up Your Tools Get everything ready for testing, including tools
and ways to track what’s happening during the tests.
Step 5: Create and Run Tests Make the tests based on your plan and run
them. Keep track of all the data you get from the tests.
Step 6: Look at the Results After each test, see what you find out. Adjust
your tests based on what you learn, and run them again to see if things
change.
Step 7: Keep Testing Keep analysing and adjusting your tests to get the best
results. Repeat the process until you are satisfied with the performance.
Advantages of Performance Testing
 Identifying bottlenecks: Performance testing helps identify
bottlenecks in the system such as slow database queries, insufficient
memory, or network congestion. This helps developers optimize the
system and ensure that it can handle the expected number of users or
transactions.
 Improved scalability: By identifying the system’s maximum
capacity, performance testing helps ensure that the system can
handle an increasing number of users or transactions over time. This
is particularly important for web-based systems and applications that
are expected to handle a high volume of traffic.
 Improved reliability: Performance testing helps identify any
potential issues that may occur under heavy load conditions, such as
increased error rates or slow response times. This helps ensure that
the system is reliable and stable when it is deployed to production.
 Reduced risk: By identifying potential issues before deployment,
performance testing helps reduce the risk of system failure or poor
performance in production.
 Cost-effective: Performance testing is more cost-effective than fixing
problems that occur in production. It is much cheaper to identify and
fix issues during the testing phase than after deployment.
 Improved user experience: By identifying and addressing
bottlenecks, performance testing helps ensure that users have a
positive experience when using the system. This can help improve
customer satisfaction and loyalty.
 Better Preparation: Performance testing can also help organizations
prepare for unexpected traffic patterns or changes in usage that
might occur in the future.
 Compliance: Performance testing can help organizations meet
regulatory and industry standards.
 Better understanding of the system: Performance testing provides a
better understanding of how the system behaves under different
conditions, which can help in identifying potential issue areas and
improving the overall design of the system.
 Performance testing ensures the speed, load capability, accuracy, and
other performances of the system.
 It identifies, monitors, and resolves the issues if anything occurs.
 It ensures the great optimization of the software and also allows
many users to use it at the same time.
 It ensures the client as well as the end-customer’s satisfaction.
Performance testing has several advantages that make it an
important aspect of software testing:
Disadvantages of Performance Testing
Performance testing also has some disadvantages, which include:
 Resource-intensive: Performance testing can be resource-intensive,
requiring significant hardware and software resources to simulate
many users or transactions. This can make performance testing
expensive and time-consuming.
 Complexity: Performance testing can be complex, requiring
specialized knowledge and expertise to set up and execute effectively.
This can make it difficult for teams with limited resources or
experience to perform performance testing.
 Limited testing scope: Performance testing is focused on the
performance of the system under stress, and it may not be able to
identify all types of issues or bugs. It’s important to combine
performance testing with other types of testing such as functional
testing, regression testing, and acceptance testing.
 Inaccurate results: If the performance testing environment is not
representative of the production environment or the performance
test scenarios do not accurately simulate real-world usage, the results
of the test may not be accurate.
 Difficulty in simulating real-world usage: It’s difficult to simulate
real-world usage, and it’s hard to predict how users will interact with
the system. This makes it difficult to know if the system will handle
the expected load.
 Complexity in analyzing the results: Performance testing generates
a large amount of data, and it can be difficult to analyze the results
and determine the root cause of performance issues.
 Sometimes, users may find performance issues in the real-time
environment.
 Team members who are writing test scripts or test cases in the
automation tool should have a high level of knowledge.
 Team members should have high proficiency in debugging the test
cases or test scripts.
 Low performances in the real environment may lead to the loss of a
large number of users

Regression testing
Regression testing is a crucial aspect of software engineering that
ensures the stability and reliability of a software product. It involves
retesting the previously tested functionalities to verify that recent code
changes haven’t adversely affected the existing features.
By identifying and fixing any regression or unintended bugs, regression
testing helps maintain the overall quality of the software. This process is
essential for software development teams to deliver consistent and high-
quality products to their users.
What is Regression Testing?
Regression testing is like a software quality checkup after any changes are
made. It involves running tests to make sure that everything still works as it
should, even after updates or tweaks to the code. This ensures that the
software remains reliable and functions properly, maintaining its integrity
throughout its development lifecycle.
When to do regression testing?
 When new functionality is added to the system and the code has been
modified to absorb and integrate that functionality with the existing
code.
 When some defect has been identified in the software and the code is
debugged to fix it.
 When the code is modified to optimize its working.
Process of Regression testing
Firstly, whenever we make some changes to the source code for any reason
like adding new functionality, optimization, etc. then our program when
executed fails in the previously designed test suite for obvious reasons.
After the failure, the source code is debugged to identify the bugs in the
program. After identification of the bugs in the source code, appropriate
modifications are made. Then appropriate test cases are selected from the
already existing test suite which covers all the modified and affected parts
of the source code. We can add new test cases if required. In the end,
regression testing is performed using the selected test cases.
Process Regression testing
Techniques for the selection of Test cases for Regression Testing
 Select all test cases: In this technique, all the test cases are selected
from the already existing test suite. It is the simplest and safest
technique but not very efficient.
 Select test cases randomly: In this technique, test cases are selected
randomly from the existing test suite, but it is only useful if all the test
cases are equally good in their fault detection capability which is very
rare. Hence, it is not used in most of the cases.
 Select modification traversing test cases: In this technique, only
those test cases are selected that cover and test the modified portions
of the source code and the parts that are affected by these
modifications.
 Select higher priority test cases: In this technique, priority codes
are assigned to each test case of the test suite based upon their bug
detection capability, customer requirements, etc. After assigning the
priority codes, test cases with the highest priorities are selected for
the process of regression testing. The test case with the highest
priority has the highest rank. For example, a test case with priority
code 2 is less important than a test case with priority code

Selection of Test cases for Regression Testing


Top Regression Testing Tools
In regression testing, we generally select the test cases from the existing
test suite itself and hence, we need not compute their expected output, and
it can be easily automated due to this reason. Automating the process of
regression testing will be very effective and time-saving. The most
commonly used tools for regression testing are:
1. Selenium
 Open Source: Selenium is an open-source tool, making it freely
available and accessible for developers and testers.
 Browser Compatibility: Supports multiple browsers, including
Chrome, Firefox, Safari, and Edge, ensuring tests can be run across
different environments.
 Programming Language Support: Allows writing tests in various
programming languages such as Java, Python, C#, Ruby, and
JavaScript, providing flexibility for testers.
 Cross-Platform: Capable of running on different operating systems,
including Windows, macOS, and Linux, which enhances the tool’s
portability.
 Web Application Testing: Primarily designed for automating web
applications, making it ideal for regression testing of web-based
systems.
 Extensive Community Support: Boasts a large and active
community, offering a wealth of resources, plugins, and extensions to
aid in test automation.
 Integration Capabilities: Integrates well with other tools such as
Jenkins for continuous integration and continuous deployment
(CI/CD), facilitating automated regression testing in development
pipelines.
2. Ranorex Studio
 Comprehensive Testing Solution: Ranorex Studio provides a
complete testing solution that supports end-to-end regression
testing, including both functional and non-functional tests.
 User-Friendly Interface: The tool offers an intuitive and user-
friendly interface, making it accessible for both beginners and
experienced testers.
 Cross-Platform Testing: It supports cross-platform testing, enabling
tests to be executed on desktop, web, and mobile applications,
ensuring broad test coverage.
 Codeless Test Automation: Ranorex Studio offers codeless
automation through its capture-and-replay functionality, allowing
testers to create automated tests without extensive programming
knowledge.
 Robust Reporting: The tool provides detailed and customizable test
reports, helping teams to easily identify issues and track the quality
of the software over time.
 Integration Capabilities: It integrates seamlessly with popular
development and CI/CD tools such as Jenkins, Azure DevOps, and Git,
promoting a streamlined workflow and continuous testing.
 Data-Driven Testing: Ranorex Studio supports data-driven testing,
allowing testers to run the same set of tests with different data
inputs, enhancing test coverage and reliability.
3. testRigor
 AI-Powered Test Automation: testRigor utilizes artificial
intelligence to automate the creation and maintenance of regression
tests, reducing the effort and time required for manual testing.
 Natural Language Processing (NLP): The tool allows users to write
test cases in plain English, making it accessible to both technical and
non-technical team members. This feature simplifies test creation
and improves collaboration.
 Codeless Test Creation: Users can create and execute test cases
without writing any code, which speeds up the testing process and
reduces the dependency on developers.
 Cross-Browser and Cross-Platform Testing: testRigor supports
testing across multiple browsers and platforms, ensuring that the
software works consistently in different environments.
 Self-Healing Tests: The tool automatically updates test scripts to
adapt to minor changes in the application’s UI, minimizing the
maintenance overhead commonly associated with regression testing.
4. Sahi Pro
 Cross-browser Testing: Supports multiple browsers, ensuring
consistent performance across different environments.
 Ease of Use: User-friendly interface with scriptless record and
playback functionality, making it accessible for testers with varying
levels of expertise.
 Robust Reporting: Detailed reports and logs that help in tracking
and analyzing test results efficiently.
 Integrated Suite: Offers integration with various Continuous
Integration (CI) tools like Jenkins, enhancing the automation
workflow.
 Scalability: Capable of handling large-scale test automation projects
with ease.
 Script Flexibility: Supports both scriptless testing and advanced
scripting using JavaScript, providing flexibility for complex test
scenarios.
5. Testlio
 Global Network of Testers: Access to a diverse pool of professional
testers from around the world. Ensures comprehensive test coverage
across different devices, operating systems, and locations.
 On-Demand Testing: Flexible scheduling allows for testing when
needed, fitting into the development cycle seamlessly. Enables quick
turnaround times for regression testing after code changes.
 Integrated Platform: Combines test management, test execution,
and reporting in a single platform. Simplifies the regression testing
process and provides a centralized view of test results.
 Comprehensive Reporting: Detailed reports with actionable
insights. Helps identify and prioritize issues, making it easier to
address regressions promptly.
Advantages of Regression Testing
 Automated unit testing
 Comprehensive test coverage
 System integration
 Faster test execution completion
 Improved developer productivity
 Parallel testing
 Reduced costs
 Regression testing improves product quality
 Reusability
 Scalability
 Time efficiency
Disadvantages of Regression Testing
 It can be time and resource-consuming if automated tools are not
used.
 It is required even after very small changes in the code.
 Time and Resource Constraints.
 Among the significant risks associated with regression testing are the
time and resources required to perform it.
 Incomplete or Insufficient Test Coverage.
 False Positives and False Negatives.
 Test Data Management Challenges.
What is Alpha Testing?
Alpha Testing is a type of software testing performed to identify bugs
before releasing the product to real users or to the public. Alpha Testing is
one of the user acceptance tests. It is the first stage of software testing,
during which the internal development team tests the program before
making it available to clients or people outside the company.
Key points to remember:
Following are the key points related to Alpha Testing:
 Work Done by Developers: The internal development team, which
consists of developers and testers, usually conducts alpha testing in a
controlled setting.
 Goal: Finding and fixing bugs, flaws, and usability issues is the main
goal before releasing the product for external users or wider testing.
 Little User Engagement: Alpha testers are few in number and
frequently comprise members of the development team or those
intimately connected to the project.
 Environment: Alpha testing is typically carried out in a development
environment or laboratory that resembles actual settings.
What is Beta Testing?
Beta Testing is performed by real users of the software application in a real
environment. Beta testing is one type of User Acceptance Testing. A pre-
release version of the product is made available for testing to a chosen set
of external users or customers during the second phase of software testing.
Key Points to remember:
Following are the key points related to Beta Testing:
 Actions Taken by Users: Customers or other users outside the
development team participate in beta testing. The software is
available to these users prior to its official release.
 Goal: The primary objective is to get input from actual users in order
to find any bugs, usability difficulties, or areas that need to be
improved before the product is formally released.
 Greater User Participation: In order to capture a variety of
viewpoints, a larger number of users—including a varied range, can
serve as beta testers.
 Environment: Real-world settings are used for beta testing to
simulate how users will interact with the program while performing
daily duties.
Difference between Alpha and Beta Testing:
The difference between Alpha and Beta Testing is as follows:

Parameters Alpha Testing Beta Testing

Alpha testing uses Beta testing


both white box and commonly uses black-
Technique Used black box testing. box testing.

Alpha testing is
Beta testing is
performed by testers
performed by clients
who are usually
who are not part of
internal employees of
the organization.
Performed by the organization.

Alpha testing is Beta testing is


performed at the performed at the end-
Performed at developer’s site. user of the product.

Reliability and Reliability, security


security testing are and robustness are
Reliability and not checked in alpha checked during beta
Security testing. testing.

Ensures Alpha testing ensures Beta testing also


Parameters Alpha Testing Beta Testing

concentrates on the
quality of the product
the quality of the
but collects users
product before
input on the product
forwarding to beta
and ensures that the
testing.
product is ready for
real time users.

Alpha testing requires Beta testing doesn’t


a testing environment require a testing
Requirement or a lab. environment or lab.

Alpha testing may Beta testing requires


require a long only a few weeks of
Execution execution cycle. execution.

Most of the issues or


Developers can feedback collected
immediately address from the beta testing
the critical issues or will be implemented
fixes in alpha testing. in future versions of
Issues the product.

Multiple test cycles Only one or two test


are organized in alpha cycles are there in
Test Cycles testing. beta testing.

What is Accessibility testing?


This testing method ensures that a specific website or application can be
accessed by anyone including people with disabilities. Information is
collected to make the application usable by people with disabilities. It also
focuses on making the internet facility available to societies, businesses and
individuals across geographical regions.
Assistive technologies such as special keyboard, screen magnification
software, screen reader software, and speech recognition software can be
incorporated into accessibility testing. Accessibility testing ensures that a
specific website or application is built in a disabled-friendly manner. Any
issues pertaining to accessibility should be tackled and solved by the
testing team.
Differences between usability testing and accessibility testing:
Usability testing Accessibility testing
This testing method ensures that aAccessibility testing focuses on making a
website is easy and intuitive to use website accessible to disabled people
The user-friendliness of the softwareThe extent of accessibility that a website
application or product is verified usingcan provide is measured using this
this testing method testing method
Accessibility testing is performed in
Usability issues are identified and fixedaccordance with WCAG (Web Content
in order to deliver a seamless userAccessibility Guidelines) and thus
experience accessibility of a website or application is
strategically analyzed
The four elements that are focused uponThe four principles that are focused upon
are flexibility, learnability, functionality,are robustness, understandable, operable
and industrial design and perceivable
Optimizely, Crazy Egg, Userlytics,Google Lighthouse, Wave, Dynomapper,
Qualaroo, Usabilla, and UserFeel areAccessibility checker, Axe Chrome plugin
some of the key tools that are used inare some of the key tools that are used in
this testing method this testing method
Real users are involved to test theThe website code is reviewed and then
product and evaluate as to what extentmatched with the WCAG guidelines.
the software product or application isKnowledge of CSS, HTML and JavaScript
user-friendly are required
Web Based Testing – Software Testing
Web testing is a software testing technique to test web applications or
websites for finding errors and bugs. A web application must be tested
properly before it goes to the end-users. Also, testing a web application
does not only mean finding common bugs or errors but also testing the
quality-related risks associated with the application. Software
Testing should be done with proper tools and resources and should be done
effectively. We should know the architecture and key areas of a web
application to effectively plan and execute the testing.
Testing a web application is very common while testing any other
application like testing functionality, configuration, or compatibility, etc.
Testing a web application includes the analysis of the web fault compared
to the general software faults. Web applications are required to be tested on
different browsers and platforms so that we can identify the areas that
need special focus while testing a web application.
Types of Web Testing:
Basically, there are 4 types of web-based testing that are available and all
four of them are discussed below:
 Static Website Testing: A static website is a type of website in which
the content shown or displayed is exactly the same as it is stored in
the server. This type of website has great UI but does not have any
dynamic feature that a user or visitor can use. In static testing, we
generally focus on testing things like UI as it is the most important
part of a static website. We check things font size, color, spacing, etc.
testing also includes checking the contact us form, verifying URLs or
links that are used in the website, etc.
 Dynamic Website Testing: A dynamic website is a type of website
that consists of both a frontend i.e, UI, and the backend of the website
like a database, etc. This type of website gets updated or change
regularly as per the user’s requirements. In this website, there are a
lot of functionalities involved like what a button will do if it is
pressed, are error messages are shown properly at their defined time,
etc. We check if the backend is working properly or not, like does
enter the data or information in the GUI or frontend gets updated in
the databases or not.
 E-Commerce Website Testing: An e-commerce website is very
difficult in maintaining as it consists of different pages and
functionalities, etc. In this testing, the tester or developer has to check
various things like checking if the shopping cart is working as per the
requirements or not, are user registration or login functionality is
also working properly or not, etc. The most important thing in this
testing is that does a user can successfully do payment or not and if
the website is secured. And there are a lot of things that a tester
needs to test apart from the given things.
 Mobile-Based Web Testing: In this testing, the developer or tester
basically checks the website compatibility on different devices and
generally on mobile devices because many of the users open the
website on their mobile devices. So, keeping that thing in mind, we
must check that the site is responsive on all devices or platforms.
Points to be Considered While Testing a Website:
As the website consists of a frontend, backend, and servers, so things like
HTML pages, internet protocols, firewalls, and other applications running
on the servers should be considered while testing a website. There are
various examples of considerations that need to be checked while testing a
web application. Some of them are:
 Do all pages are having valid internal and external links or URLs?
 Whether the website is working as per the system compatibility?
 As per the user interface-Does the size of displays are the optimal and
the best fit for the website?
 What type of security does the website need (if unsecured)?
 What are the requirements for getting the website analytics, and also
controlling graphics, URLs, etc.?
 The contact us or customer assistance feature should be added or not
on the page, etc.?
Objectives of Web Based Testing:
 Testing for functionality: Make that the web application performs
as expected for all features and functions. Check that user interface
elements like form submissions and navigation work as intended.
 Testing for Compatibility: To make sure it is compatible, test the
web application across a variety of devices, operating systems, and
browsers. Verify that the program operates consistently in a range of
settings.
 Evaluation of Performance: Analyze the online application’s overall
performance, speed, and responsiveness. Any performance
bottlenecks, such as slow page loads or delayed server response
times, should be located and fixed.
 Testing for load: Examine how well the web application can manage
a particular load or multiple user connections at once. Determine and
fix performance problems when there is a lot of traffic.
 Testing for accessibility: Make sure the online application complies
with applicable accessibility standards (e.g., WCAG) and is usable by
people with disabilities. Make sure the program can communicate
with assistive technologies efficiently.
 Testing Across Browsers: Make sure the operation and appearance
of the web application are consistent by testing it in various web
browsers. Determine and fix any problems that might develop with a
particular browser.
Steps in Software Testing:
In web-based testing, various areas have to be tested for finding the
potential errors and bugs, and steps for testing a web app are given
below:
 App Functionality: In web-based testing, we have to check the
specified functionality, features, and operational behavior of a web
application to ensure they correspond to its specifications. For
example, Testing all the mandatory fields, Testing the asterisk sign
should display for all the mandatory fields, Testing the system should
not display the error message for optional fields, and also links like
external linking, internal linking, anchor links, and mailing links
should be checked properly and checked if there’s any damaged link,
so that should be removed. We can do testing with the help
of Functional Testing in which we test the app’s functional
requirements and specifications.
 Usability: While testing usability, the developers face issues with
scalability and interactivity. As different numbers of users will be
using the website, it is the responsibility of developers to make a
group for testing the application across different browsers by using
different hardware. For example, Whenever the user browses an
online shopping website, several questions may come to his/her
mind like, checking the credibility of the website, testing whether the
shipping charges are applicable, etc.
 Browser Compatibility: For checking the compatibility of the
website to work the same in different browsers we test the web
application to check whether the content that is on the website is
being displayed correctly across all the browsers or not.
 Security: Security plays an important role in every website that is
available on the internet. As a part of security, the testers check
things like testing the unauthorized access to secure pages should not
be permitted, files that are confined to the users should not be
downloadable without the proper access.
 Load Issues: We perform this testing to check the behavior of the
system under a specific load so that we can measure some important
transactions and the load on the database, the application server, etc.
are also monitored.
 Storage and Database: Testing the storage or the database of any
web application is also an important component and we must sure
that the database is properly tested. We test things like finding errors
while executing any DB queries, checking the response time of a\the
query, testing whether the data retrieved from the database is
correctly shown on the website or not.

What is Configuration Testing?


Configuration Testing is the process of testing the system under each
configuration of the supported software and hardware. Here, the different
configurations of hardware and software mean the multiple operating
system versions, various browsers, various supported drivers, distinct
memory sizes, different hard drive types, various types of CPU, etc.
The various configurations are Win XP, Win 7 32/64 bit, Win 8 32/64 bit,
Win 10, etc.
1. Database Configuration: Oracle, DB2, MySQL, MSSQL Server, Sybase
etc.
2. Browser Configuration: IE 8, IE 9, FF 16.0, Chrome, Microsoft Edge
etc.
Objectives of Configuration Testing:
1. Adaptability to Different Configurations: Check that the program’s
basic features work consistently and dependably in all configurations.
Testing the behavior of the program with different setups and
settings is part of this process.
2. Evaluation of Stability: Examine the software’s stability under
various configurations. Find and fix any configuration-specific
problems that might be causing crashes, unstable systems or strange
behavior.
3. Testing the User Experience: Assess the value and consistency of
the user experience across various setups. Make that the graphical
user interface (GUI) of the software adjusts to various screen sizes,
resolutions and display settings.
4. Security Throughout Configurations: To make sure that sensitive
data is kept safe, test the software’s security features in various
setups. Determine and fix any vulnerabilities that might be
configuration-specific.
5. Compatibility of Networks: Examine the software’s behavior with
various network setups. Evaluate its compatibility with various
network types, speeds and latency.
6. Data Compatibility: Check if the programme can manage a range of
data configurations, such as those from diverse sources,
databases and file formats. Verify the consistency and integrity of the
data across various setups.
Configuration Testing Process:
Configuration Testing Process
Types of Configuration Testing:
Configuration testing is of 2 types:
1. Software Configuration Testing: Software configuration testing is
done over the Application Under Test with various operating system
versions and various browser versions etc. It is a time-consuming
testing as it takes long time to install and uninstall the various
software which are to be used for testing. When the build is released,
software configuration begins after passing through the unit test and
integration test.
2. Hardware Configuration Testing: Hardware configuration testing is
typically performed in labs where physical machines are used with
various hardware connected to them. When a build is released, the
software is installed in all the physical machines to which the
hardware is attached and the test is carried out on each and every
machine to confirm that the application is working fine. While doing
hardware configuration test, the kind of hardware to be tested is
spelled out and there are several computer hardware and peripherals
which make it next to impossible to execute all the tests.
Configuration Testing can also be classified into following 2 types:
1. Client level testing: Client level testing is associated with the
usability and functionality testing. This testing is done from the point
of view of its direct interest of the users.
2. Server level Testing: Server level testing is carried out to determine
the communication between the software and the external
environment when it is planned to be integrated after the release.

What is Compatibility testing?


Compatibility testing is software testing that comes under the non-
functional testing category, and it is performed on an application to check
its compatibility (running capability) on different platforms/environments.
This testing is done only when the application becomes stable. This means
simply this compatibility test aims to check the developed software
application functionality on various software, hardware platforms,
networks and browsers, etc. This compatibility testing is very important in
product production and implementation point of view as it is performed to
avoid future issues regarding compatibility.
Types of Compatibility Testing
Several examples of compatibility testing are given below.
1. Software:
 Testing the compatibility of an application with an Operating System
like Linux, Mac, Windows
 Testing compatibility on databases like Oracle SQL server, and
MongoDB server.
 Testing compatibility on different devices like mobile phones, and
computers.
Types based on Version Testing:
There are two types of compatibility testing based on version testing
1. Forward compatibility testing: When the behavior and
compatibility of software or hardware are checked with its newer
version then it is called forward compatibility testing.
2. Backward compatibility testing: When the behavior and
compatibility of software or hardware are checked with its older
version then it is called backward compatibility testing.
2. Hardware:
Checking compatibility with a particular size of
 RAM
 ROM
 Hard Disk
 Memory Cards
 Processor
 Graphics Card
3. Smartphones:
Checking compatibility with different mobile platforms like android, iOS
etc.
4.Network:
Checking compatibility with different :
 Bandwidth
 Operating speed
 Capacity
Along with this there are other types of compatibility testing are also
performed such as browser compatibility to check software compatibility
with different browsers like Google Chrome, Internet Explorer etc. device
compatibility, version of the software and others.
So for now we have known the uses of compatibility in different fields. Now
the question rises is HOW TO PERFORM A COMPATIBILITY TEST?
How to perform Compatibility testing?
Testing the application in a same environment but having different
versions. For example, to test compatibility of Facebook application in your
android mobile. First check for the compatibility with Android 9.0 and then
with Android 10.0 for the same version of Facebook App.
Testing the application in a same versions but having different
environment. For example, to test compatibility of Facebook application in
your android mobile. First check for the compatibility with a Facebook
application of lower version with a Android 10.0(or your choice) and then
with a Facebook application of higher version with a same version of
Android.
Why compatibility testing is important?
1. It ensures complete customer satisfaction.
2. It provides service across multiple platforms.
3. Identifying bugs during development process.
Compatibility testing defects
1. Variety of user interface.
2. Changes with respect to font size.
3. Alignment issues.
4. Issues related to existence of broken frames.
5. Issues related to overlapping of content.

Testing the documentation:


Testing documents are prepared at different stages. These documents
are discussed as follows.
1. Before Testing:
Since testing begins with the generation of the test cases. The
following documents are required for reference –
 SRS document – Functional Requirements document.
 Test Policy document – It means the product must be tested far
before release.
 Test Strategy document – It mentions detailed aspects of test the
team, responsibility matrix, and rights/responsibilities of the test
manager and test engineer.
 Traceability Matrix document – This is SDLC document, that is
related to the requirements-gathering process. As new requirements
come, they are added to this matrix. They can be traced forward and
backward. These matrices help testers know the source of the
requirement.
2. During Testing:
While testing is started and is being done, the following documents
may be required.
 Test Case document – It contains the list of to-be tests. It includes
various testing like Unit test plan, Integration test plan, System test
plan and Acceptance test plan.
 Test description – It is a detailed description of all test cases and
procedures for executing them.
 Test case report – It contains a test case report resulting from the
test.
 Test logs – It contains test logs for every test case report.
3. After Testing:
After testing, only the test summary remains which is a collective
analysis of all test reports and logs. The software is released under
the version control system if it is ready to launch. It summarizes and
concludes whether the software is ready to launch.
Benefits of using Documentation
o Documentation clarifies the quality of methods and objectives.
o It ensures internal coordination when a customer uses software
application.
o It ensures clarity about the stability of tasks and performance.
o It provides feedback on preventive tasks.
o It provides feedback for your planning cycle.
o It creates objective evidence for the performance of the quality
management system.
o If we write the test document, we can't forget the values which we
put in the first phase.
o It is also a time-saving process because we can easily refer to the text
document.
o It is also consistent because we will test on the same value.
The drawback of the test document
o It is a bit tedious because we have to maintain the modification
provided by the customer and parallel change in the document.
o If the test documentation is not proper, it will replicate the quality of
the application.
o Sometimes it is written by that person who does not have the product
knowledge.
o Sometimes the cost of the document will be exceeding its value.

You might also like