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

CCS366 - Software Testing and Automation UNIT IV

This document discusses advanced testing concepts in software development, emphasizing the importance of advanced software testing to ensure compliance with specifications and deliver high-quality products. It covers various types of performance testing, particularly load and stress testing, detailing their objectives, processes, advantages, and tools used. The document also highlights the significance of metrics in evaluating system performance under different testing scenarios.

Uploaded by

Antony Gabriel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

CCS366 - Software Testing and Automation UNIT IV

This document discusses advanced testing concepts in software development, emphasizing the importance of advanced software testing to ensure compliance with specifications and deliver high-quality products. It covers various types of performance testing, particularly load and stress testing, detailing their objectives, processes, advantages, and tools used. The document also highlights the significance of metrics in evaluating system performance under different testing scenarios.

Uploaded by

Antony Gabriel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

UNIT IV

ADVANCED TESTING CONCEPTS


Introduction
The advantages of basic testing in software testing are constrained by a variety
of variables, including financial constraints; uncommon functionality and
scalability needs- Advanced software testing is carried out in order to address these
issues and guarantee that the generated solution complies with the specifiCations.
The specification papers and wire frames are sent to the QA engineers so they
may perform sophisticated software testing. They can then complete the
requirements and stop errors before coding.

Following are a few typical actions in advanced software testing :


●​ Analysis of requirements:This is done in order to accurately define the
requirements and find any flaws that could appear at a later stage of
development.
●​ Sophisticated GUI testing : To make sure that the product’s aesthetics and
functionality are valid across a wider range of testing devices and platforms,
the advanced level of GUI testing is conducted.
●​ Test automation : This kind of testing makes the testing process more
efficient. Automating test execution helps ensure and verify that the product
can function in unique conditions and parameters as well.
●​ Compatibility testing : Compatibility testing is a useful tool for assuring
that the functioning and usability of other programs and system components
won't be impacted by the product that is being produced.
●​ Testing interruptions : Although this kind òf testing is a part of basic
testing, it is also a crucial component of advanced testing. To make sure that
the product can function even under demanding conditions; it is advised to
incorporate load testing and stress testing.
●​ Delivering a high-quality product is ensured through advanced testing.
●​ Basic testing is difficult to manage when dealing with unusual functionality
that goes beyond normal functionality, increased safety requirements,
particularly for goods connected to financial activities, scalability needs and
budget difficulties. Therefore, in the end, it is advisable and advised to
choose an advanced degree of testing to ensure that the final product is of
the highest possible quality.

Performance Testing

Performance testing is the practice of evaluating how a system performs in terms


of responsiveness and stability under a particular workload. Performance tests are
typically executed to examine speed, robustness, reliability, and application size.

There are several types of performance testing, including :


Load Testing
The performance of a system, software product or software application is
assessed during load testing, a sort of performance testing that mimics real-world
stress situations. In essence, load testing examines how thC programme will
behave while many people are using it simultaneously. It is the system's
responsiveness as assessed under different load situations. Both average and high
load circumstances are tested throughout the load testing process.
Performance testing of this kind mimics a real-world load on a system or
application to determine how it responds to pressure. Finding bottlenecks and
figuring out the maximum number of users or transactions the system can
handle are the two main objectives of load testing. It is a crucial component of
software testing since it ensures that the system is capable of handling the
anticipated use levels and reveals any possible problems before the system is
put into use.
To assess the system's performance under varying load situations, numerous
scenarioš are simulated during load testing. This may include simulating a big
number of users operating simultaneously, simulating many requests and
simulating a lot of network traffic. The system's performance is then
measured and examined to find any potential bottlenecks or problemsTools
like Apache JMeter, LoadRunner, Gatling, and Grinder can be used to
simulate load and measure system performance.

Some common load testing techniques include :


• Stress testing : Testing the system's ability to handle a high load above normal
usage levels;
• Spike testing : Testing the system's ability to handle sudden spikes in traffic;

• Soak testing : Testing the system's ability to handle a sustained load over a
prolonged period of time.
What is Load Testing ?
●​ Through load testing, software's performance is evaluated in real-world
scenarios- In other words, load testing is a kind of testing that examines a
system's behavior under the anticipated demand. The predictéd load on the
application in real life must be known before we can load test a system.
●​ Through data collection and analysis, load testing may identify
discrepancies in the system's reaction time, dependability and stability. In
essence; a load test is can-ied out to confirm that a system will operate
steadily under ary anticipated load.
●​ The biggest benefit of load testing is that it aids in determining the
anticipated load that a system can bear, lowering the likelihood of a
breakdown.
Objectives of Load Testing :

The objective of load testing is : ​


●​ To increase a software application's running capability.
●​ To ascertain whether or not the newest infrastructure can operate the
software programme.
●​ To assess the application's viability in conditions of high user demand.
●​ To determine the total number of users who may use the programme
concurrently.
●​ To assess the aþplication's scalability.
●​ To make the application more accessible to more users.
Load testing process :

1. Test environment setup : Set up a special test environment just for carrying out
the load testing. It guarantees that testing will be carried out correctly.
2.Load test scenario : Load test scenarios are produced in the second stage. Data
is then prepared for each transaction and load testing transactions are chosen for
the application.
3.Execution of test scenarios : This step involves running the load tests that were
prepared in the previous phase: To acquire the data, many metrics and measures
are collected.
4.Test result analysis : The testing results are examined and numerous suggestions
are given
5.Retest : If the test is unsuccessful, it is repeated to ensure that the results are
accurate.
Parameters for Load Testing
Metrics are used to understand how load testing performs in various scenarios. It
provides information on how correctly load testing is performing under various test
situations. Typically, it is completed after the creation of load test scripts and
scenarios. The load testing may be evaluated using a variety of measures.
Following is a list of some of them.
• Average response time : This number indicates how long it typically takes to
react to a request made by a client, •customer or user. Additionally, it displays the
application's performance based on how quickly all of the requests are processed.
• Error rate : The error rate, which is expressed as a percentage, indicates thé
proportion of requests for which mistakes were made to the total number of
requests. These errors often appear when the programme is unable to process the
request at the time specified or when there are other technical issues. When the
mistake rate continues rising, the application becomes less effective.
•Throughput : This metric is utilized to determine the bandwidth range required
during load routines or tests as well as the volume of data being used to measure
the request flow between the user sewer and application main server. Kilobytes per
second is the unit of measurement.
• Requests per second : This information indicates the number of requests being
sent to the application server per second. Any kind of request, including those for
photographs, documents, web pages, articles or other materials, may be made.
• Concurrent people : This measure is used to count the number of people who
are online at any one moment or at a certain period. Without making any requests
inside the programme, it simply counts the number of users who have visited the L
application at any given moment. This allows us to quickly determine when a large
number of people are accessing the application or website.
Peak response time is a measure of how long it takes to respond to a request.
Additionally, it aids in determining the length of the longest period of time during
which the request and response cycle is handled as well as which resource is taking
the longest to react to requests.

Load Testing Tool

LoadNinja
Apache JMeter
NeoLoad
HP Performance Tester
WebLoad
LoadView
Advantages of load testing :
●​ Load testing improves the system or software application's resilience.
●​ It enhances the system's or software application's capacity to scale.
●​ It assists in reducing the risks associated with system outages.
●​ It lowers the expenses associated with system failure.
●​ It raises client satisfaction.
●​ Load testing is a crucial component of software testing since it offers a
number of benefits.
●​ Finding bottlenecks : Load testing identifies system bottlenecks including
sluggish -database queries, limited memory or clogged networks. This aids
system optimization and guarantees that it can support the anticipated
volume of users or transactions.
●​ Increased scalability: Load testing helps guarantee that the system can
manage a rising number of users or transactions over time by determining
the maximum capacity of the system. This is especially crucial for
web-based apps and systems that must manage a lot of traffic.
●​ Increased reliability : Load testing aids in the detection of any possible
problems that can arise under situations of high load, such as elevated error
rates or sluggish reaction times. This makes it easier to make sure the
system is dependable and stable when it is put into use in production.
●​ Lower risk : By spotting possible problems before deployment, load testing
helps lower the possibility of system failure or subpar performance in actual
use.
●​ Economical : Load testing is more economical than correcting issues that
arise during production. The cost of finding and fixing problems before
deployment is substantially lower than it is during testing
●​ Better user experience : Load testing assists in ensuring that users have a
pleasant system use experience by identifying and removing bottlenecks. As
a result, consumer loyalty and satisfaction may increase.
Disadvantages of load testing :
There is a requirement for programming skills in order to execute load testing.
Tools for load testing might be expensive. Additionally, there are several
drawbacks to load testing, such as :
●​ Resource-intensive : To simulate a high number of users or transactions,
load testing may need a lot of hardware and software resources. Due to this,
load testing may be; costly and time-consuming.
●​ Complexity: To set up and conduct load testing successfully, it might be
complicated and need specialized knowledge and skills. This might make
load testing challenging for teams with minimal resources or expertise.
●​ Limited testing scope : Because load testing focuses on how the system
performs under stress, it may not be able to find every kind of problem or
flaw. It's crucial to include load testing with other testing techniques, such
as functional; regression and acceptance testing.
●​ Inaccurate results : The test's outcomes may not be accurate if the load
testing environment is not a good representation Of the production
environment or if the load test scenarios don't correctly reflect real-world
use.
●​ Difficulty reproducing real-world use : Predicting how users will interact
with the system and simulating real-world usage are both challenging tasks.
As a result, it is difficult to predict whether the system can support the
anticipated demand.
●​ Difficulty in analyzing the results : Because load testing creates a lot of
data, it. may be challenging to analyze the findings and the underlying
causes of performance problems.
To ensure that the system is completely tested and that any flaws are found
and fixed before deployment, it is crucial to remember that load testing is
one sort of software testing and that it should be supplemented with other
types of testing.
Stress Testing

By testing software beyond the parameters of regular functioning, the stress


testing approach analyses the programmer's resiliency. Although stress testing
is used for many kinds of software, it is especially crucial for essential software.
Instead than focusing on what is appropriate behavior in typical circumstances,
stress testing emphasizes resilience, availability and error handling under a
large load. A sort of software testing called stress testing is described as
confirming the stability and dependability of the system. This test specifically
evaluates the system's resilience and error handling in situations of high load. It
even conducts tests that go beyond the typical operating point and examines
how the system performs in challenging circumstances. Stress testing is done to
make sure the system won't fail in a time of need. Endurance testing and torture
testing are other names for stress testing.
Characteristics of Stress Testing
1.Stress testing examines a system's behavior after a failure.
2.Stress testing ensures that the system can bounce back from errors.
3.It examines the system's functionality under unusual circumstances.
4. When the system is under stress, it makes sure of the presentation of relevant
error messages.
5. It confirms that unanticipated failures don't lead to security problems.
6. It checks to see whether the data was saved before the system crashed or not.

Need For Stress Testing


To prepare for unexpected traffic surges : Stress testing is crucial to prepare for
irregular traffic spikes. For instance, there is a dramatic rise in traffic when a sale
announcement is made on the e-commerce website. If these demands are not met;
there might be a loss of money and reputation.
The ability to show relevant error messages when the system is under stress
circumstances : Stress testing is crucial to determine if the system is capable of
doing so when it is under stress situations.
The system functions in unusual circumstances : Stress testing determines if the
system can continue to operate in unusual circumstances.
Ready for stressful situations : Stress testing makes sure there are enough backup
plans in case of an unexpected failure brought on by stressful situations. Stress
testing should be used to ensure that systems are ready for harSh circumstances.

Stress Testing's Goal


Examine the behavior of the application after a failure : The goal of stress
testing is to examine the behavior of the application following a failure and the
software should show the proper error messages when it is put under a lot of
pressure.
System recovers after failure : The goal-of stress testing is to confirm that there
are strategies for restoring the system to its operational condition so that it can
recover after failing.
Find hardware problems : Stress testing may assist find hardware problems and
data corruption
Identify security flaws : Stress testing aids in identifying security flaws •that
might penetrate the system during periods of persistent high demand and
compromise it.

Assures data integrity : Stress testing,assists in sassesšing the application's data


integrity under heavy demand, which implies that the data should remain reliable
even in the event of a breakdown.
Stress Testing Process
There are 5 phases in the stress testing procedure :
1. Planning the stress test : The first stage is to plan the stress test, which entails
acquiring system data, examining the system and setting the test's objectives.
2.Create automation scripts : In this stage, automation scripts for stress testing
are created and test data is produced for the stress test scenarios.
3.Script execution : This stage entails executing the automation scripts for stress
tests and saving the findings.
4. Results analysis : In this stage, the results of the stress test are analÿzed and
bottlenecks are found.
5.Fine-tuning and optimization : In this-phase; the system is adjusted and the
code is optimised in order to reach the required benchmarks.

Types of Stress Testing


• Server-client stress testing: It is performed across ali clients from the server and
is also referred to as distributed stress testing.
• Product or Application stress testing: The application or product stress testing
is mainly focused on determining the faults related to network issues, data locking,
blocking, and a performance bottleneck in a software product.
• Transactional stress testing : This kind of testing involves putting one or more
transactions between two or more apps under pressure- It is done to optimize the
system and make final adjustments.
• Systematic stress testing : Also known as integrated testing, systematic stress
testing is used to execute tests on many systems concurrently operating on the
same server. It is used to find errors when the data of one programme prevents the
operation of another application.
• Analytical stress testing : Analytical or exploratory stress testing is done to
evaluate the system under situations or parameters that are aberrant but unlikely to
occur in a real scenario. It is done to look for flaws in strange situations like having
a lot of people logged in at once or a database going down when viewed via a
website.
Stress Testing Tools
1. JMeter : meter, also known as Apache Meter, is a pure Java-based, open-source
application for stress testing websites. It is an Apache project that may be used for
load testing in order to evaluate and gauge the effectiveness of various services.
2. LoadNinja : Developed by SmartBear, LoadNinja is a stress testing application
that allows users to create load tests without using any code; replaces load
simulators with real browsers and aids in achieving high speed and efficiency
using metrics based on browser use.
3.WebLoad : This stress testing solution for mobile and online apps integrates
performance, stability and integrity into a single procedure.
4.NeoLoad : NeoLoad is a potent performance testing tool that analyses the
server's behaviour while simulating a high number of users. Both online and
mobile apps may use if. NeoLoad interacts with many CI/CD software and offers
API testing.
5.SmartMeter : SmartMeter is a simple application that enables coding-free
creation of straightforward tests. It doesn't need any plugins and features a
graphical user interface. With-full and thorough test findings, this programme
automatically creates sophisticated test reports.

Metrics of Stress Testing

The performance of the stress is evaluated using metrics and this is often
done after the conclusion of-the stress scripts or tests. Below are some of the
measures.
Pages per second : The number of pages that are requested and loaded per second.
Pages retrievable : The average time required to obtain all the data from a certain
page.
Byte retrieved : The initial byte of data is usually retrieved from the page in a
reasonable amount of time.
Transaction response time : The amount of time it typically takes for transactions
between programmes to load or complete.
Transactions per second: It keeps track of how many transactions are loaded
successfully each Second as well as how many failures are experienced.
Connection failure: It keeps track of how often a client's system
experienced-connection fàilure.
System attempt failure : The system keeps track of how many times an attempt
has failed.
Rounds : It maintains track of how many test or script conditions were
successfully run by clients, as well as how many rounds were unsuccessful.

Stress testing advantages :


Establishes the system's behavior : Stress testing establishes the system's
response to failure and guarantees speedy system recovery.
Ensure security problems are not caused by failure : Stress testing makes sure
security concerns are not caused by system failure.
Makes the system operate in all circumstances : Stress testing makes the system
perform properly in both normal and abnormal circumstances.

Stress test restrictions :


Manual stress testing might be challenging : The manual stress testing
procedure is more difficult and requires more time to do.

Requires solid scripting expertise : To develop the script test-cases for the
specific tool, solid scripting skills are needed.
Demand for external resources : In order to execute stress testing, extemal
resources are required- It results in an increase in time and resources

Continuously licensed instrument : A continuously licensed stress testing tool


costs more than the industry standard.
Additional tool needed when using an open-source stress testing tool : In
certain cases, an additional load testing tool is necessary to set up the stress testing
environment.
Ineffective test script implementation wastes time and resources : If suitable
stress scripts or test cases are not done, there is a probability that certain resources
may fail and that time will be wasted.

Volume Testing
A form of software testing called volume testing involves exposing the
programme to a significant amount of data. It is also known as flood testing. By
increasing the amount of data in the database, volume testing is done to
evaluate the system's performance.
The influence on reaction time and system behavior when exposed to a big
amount of data may be evaluated with the aid of volume testing.
As an example, examine the music site's behavior while millions of users are
downloading a song.

Benefits of Volume Testing

●​ Money that would have been spent on application maintenance may be


saved by recognising load concerns.
●​ It facilitates a more rapid start for scaling plans.
●​ Identifying bottlenecks early
●​ It guarantees that your system is now ready for use in the real world.
Volume Testing's Goal
Discovering system performance with total amounts of data in the
database-is the primary goal of performing the volume testing.
Some more volume testing goals :
●​ Measure the speed of the system response.
We may assess the system response time since we are aware that successful
volume testing enables business leaders to certify that software performance
is uninterrupted.
●​ Classifying the system's volume
Identifying the system's volume makes it easier to establish scalability, which
is also helpful for creating backup plans.
Additionally, the volume testing provides engineers with knowledge that
enables them to predict how much data the system can handle- without
failing.
●​ Create the scaling plans.
By doing volume testing, the scalability plans are simple to create. We
discover that volume testing informs corporate leaders on whether to
increase system size or add more components.
●​ Check that no data is lost.
The only way the project team can ensure there is no data loss as the
demands placed on-the system and the size of the database increase is
via -volume testing.
●​ Learning more about how the system performs when there are low, medium
and large data loads.
The system's performance under low and medium loads is measured as
the next goal of the volume testing to make sure it filnctions.
Additionally, excessive data loads increase the danger of data loss.
●​ Recognizing mistakes imposed by force on system components.
Finding problems that only emerge during data load spikes; slower
response times, system I l failures or security activities is the goal of volume
testing.

What Various Difficulties Does Volume Testing Face ?


Because all of the first considerations in volume testing must deal with data, there
are a few things we always keep in mind while we Carry out the test.
●​ Volume testing involves handling big data volumes.
Unlike other types of performance testing, volume testing works with
enormous amounts of data. A large team of test engineers and huge data
sets are needed to manage a sizable volume of data. As a result of
frequent testing sessions, the programmer also needs to deal with
handling the data that was bumped.

●​ Maintaining a database.
Due to the fact that we are working with relational databases, which have a
strong structure and a number of nearby tables, it is the difficulty that is
encountered most often during the volume testing.
In order to ensure that the test data is of the highest quality, the tester must
collect a variety of fields, including both the mandatory elective ones that
include big binary files.
●​ Review the data types and connections between them.
Learning the relationships between them, the distinctions between the kinds
and how the software responds is challenging for a testing novice.
During the volume testing, the test specialists must deal with a wide variety of
data that may be legitimate, invalid, missing, boundary-related or incorrect.

Volume Testing Tools


Automated testing saves time and yields more accurate results than manual
testing.
The main benefit of adopting volume testing tools is that we can run the tests at
night, which means that neither the team members nor the members of other teams
will be impacted by the database's data volume.
Open-source tools compatible for volume testing :
HammerDB
DbFit
JdbcSlim
NoSQLMap

1. HammerDB
It is a database benchmarking tool that is open-source for the whole world's
database industry. 'It is multi-threaded, utilised for automation and supports
run-time scripting.
Features of HammerDB
Following are the commonly used features of HammerDb :
●​ It is a completely open-source corporate rating tool with no limits on virtual
users.
●​ It can be utilized by all of the leading IT firms.
●​ It offers complete support for a number of databases, including Oracle, MY
SQL, SQL Server, PostgreSQL etc.
●​ It enables help at the expert level.
●​ It offers thorough and detailed documentation.
●​ It is supported and completely functioning on Linux and Windows systems.

Dbf-it
A free tool that facilitates test-driven development is called DbFit. The DbFit
tests may be used as a working example of our system behaviour documenta,tion.
Benefits of DbFit
These are some of the DbFit features that are often used :
• It supports agile development techniques including test-driven
development and refactoring.
• It supports a variety of database types, including Oracle, SQL Server etc.
• It aids in improving the product's quality, maintainability and design.
• It provides Comprehensible syntax, enhancing communication with
non-technical persons.
• It offers examples-filled online documentation.

JdbcSlim
JdbcSlim is a different volume testing tool that makes it simple to include
database statements and queries into Slim FitNesse testing: It focuses mostly on
maintaining the setup, test data and SQL instructions clearly.
JdbcSlim's Characteristics
The following are some of JdbcSlim's frequently used features :
●​ SQL-literate developers, testers and business users may utilize the JdbcSlim
framework.
●​ It supports any database that a JDBC driver is available for.
●​ It also involves ensuring that the requirements are clear for users to
comprehend and write independently of execution.

NoSQLMap
●​ An open-source Python programme called ÑoSQLMap is designed to
automatically inject outbreaks and interfere with Database setups in order to
assess the hazard.
Advantage of Volume Testing
The following are a few advantages of volume testing :
It helps reduce maintenance expenses related to application development.
It only works with the MongoDB database.
Early bottleneck discovery is aided by this.
It facilitates séalability plans' speedier starts.
The volume testing ensures that the technology can be used in the actual
world.
Disadvantages of Volume Testing
The following are drawbacks of volume testing :
The exact partition of memory utilized in the actual world cannot be achieved
using the volume tests.
To acquire the volume testing that would result in an additional cost to the
project, a knowledgeable database performance testing team is necessary.
The personalized representation of the actual world is challenging and
complex.
Executing complete volume testing, which includes all test scenarios, writing
scripts and running those scripts, takes a lot of time. This might push back the
application's release date.

Fail-Over Testing

A method called failover testing checks whether a system can assign


additional resources and backup all the data and processes in the event of an
unexpected system failure. This test establishes a system's capacity to manage
significant failures and additional servers. Therefore, the testing is not reliant on
the server's actual hardware.
It is ideal for testing to be carried out by servers. The two most frequent
configurations for standby are active-active and active-passive. Although they
accomplish failover in very different ways, both strategies are used to increase
the server's dependability.
For instance, if we have three servers and one of them dies from a high
amount of demand, two things happen. The surviving servers will manage the
demand, either because the failed server will resume on its own or because
another circumstance will arise in which the failed server cannot restart. During
this exam, such scenarios are put to the test.

Important considerations before failover testing :


l . Before considering executing the Failover test, the budget must be the first item
to be taken into account.
2. The budget is linked to the structural elements that might collapse or degrade
under stress or strain.
3. Always bear in mind how much time it will take to address all of the problems
brought on
by a system breakdown- ​

4. List the outcomes in order of the degree of damage that each failure would cause
and then note which failures are most likely to occur.
Important considerations for failover testing :
1. Maintain a list of actions to be done after a test.
2. Concentrate On carrying out the test plan.
3. Establish a baseline to ensure that performance standards can be met.
4. Write a report on thé problem requirements and/or asset requirements.
Working of Failover testing :
1. Before doing failover testing, take into account variables like money, time, team,
technology, etc.
2.Analyze the causes of failover and provide fixes.
3.Create test cases to examine possibilities for failover.
4.Execute the test plan based on the results.
5.Write a thorough failover report.
6.Based on the report, take the appropriate action.
The following are some advantages of failover testing :
1. Users may adjust anything, including user access, network settings and other
things.
2. Verifies that the setup is functioning correctly.
3.The system's server can quickly fix all of the issues in advance.
4. Offers improved services to ensure seamless operation of users' servers.
5. Assures that no loss occurs during downtime.
Recovery Testing
System testing techniques called "recovery testing" are used to determine if a
system can recover from errŒs. The method entails failing the system and then
confirming that the system recovery was successfully completed.
Recovery testing must be carried out to make sure that a system is
fault-tolerant and capable of quickly recovering from errors.A system is
anticipated to repair errors and go on with its task within a certain time frame. Any
mission-critical system, such as a defense system, medical equipment etc.,.
requires recovery testing. In such systems, a tight protocol is placed on how the
system should recover from failure, how long it should take to do so and how it
should act while failing.
It is important to test a system or piece of software for failures like :
●​ Power supply failure
●​ The external server is unreachable
●​ Wireless network signal loss
●​ Physical conditions
●​ The external device not responding
●​ The external device is not responding as expected etc.

Steps to follow before doing a recovery test :


Before performing the recovery testing technique, a tester must make sure that
the following stages are carried out

l . Recovery Analysis: It's critical to assess the system's capacity to assign more
resources, such as servers or additional CPUs. This would make it easier to
cornþrehend how modifications linked to recovery could affect how the system
functions. Additionally, each potential failure, its potential effect, its severity and
how to handle it should be researched.
2.Creating the test scenarios while considering the environment and the outcomes
of the recovery analysis.
3.Designing the test environment in accordance with the findings of the recovery
analysis.
4.Keeping a backup - It's important to keep a backup of any information pertaining
to the programme, including its different states and database. Additionally, if the
data is crucial, it is crucial to back it up in many different places.
5.Allocation of recovery workers It's crucial to assign recovery employees who are
knowledgeable and skilled enough for the recovery tests being done.
6.Documentation - This stage focuses on recording all the actions taken before and
during the recovery testing so that the system's performance in the event of a
failure may be evaluated.
Example of recovery testing :
• By cutting off the power to a system that is receiving data through a network for
processing, we may cause software failure. After some time has passed, we may
plug the system back in to see whether it can resume receiving data where it left
off.
• Another example would be the ability to simulate software failure by
restarting a browser that is running several sessions. We can check to see
whether the system recovers from the failure and IQads all of the sessions it
was previously working on after restarting it.
Why If we relocate to an area without a. network when a movie is downloading
via a Wifi network, the download will be paused. We now return to a location with
a Wifi network. to see whether the procedure is able to resume functioning after
the interruption: The programme has an excellent recovery rate if the downloading
may be restarted.
Advantages of recovery testing
●​ Enhances the system's quality by removing any possible defects and
ensuring that it performs as intended
●​ Disaster Recovery Testing is another name for recovery testing. Many
businesses have disaster recovery facilities to ensure that there is a backup
system in case one of the systems is destroyed or fails for any other reason.
●​ Since the potential weaknesses are found and fixed, risks may be completely
eliminated. Better performance as faults are fixed and the system becomes
more dependable and operates more effectively in the event of a breakdown.

Disadvantages of recovery testing


●​ Recovery testing takes time since there are many stages and preparations to
do both before and after the test.
●​ As the process of recovery testing is done under his supervision, the
recovery employees must be trained. To guarantee that recovery testing is
carried out correctly, the tester must be taught. He should have sufficient
data and backup files to undertake recovery tests.
●​ In a few instances, the possible defects or problems are unexpected. It is
challenging to pinpoint the precise cause of the same, but because the
software's quality must be preserved, a variety of test cases are built and run
to make sure any possible defects are eliminated.
Configuration Testing
Configuration testing is a type of software testing that examines how well a
system works with various combinations of hardware and software to determine
the ideal setup for the system that will allow it to operate flawlessly and meet
all of its functional requirements.
Testing the system in all software and hardware configurations that are
supported is known as configuration testing. The numerous operating system
Veršions, browsers, supported drivers, RAM sizes, hard drive kinds, and CPU
types are examples of the diverse hardware and software combinations in this
context.

What is the purpose of this testing ?


As previously said, this testing is a method for assessing a programme; system
or application's perf01Tnance while taking into consideration different system
parameters.
Through testing, the ideal settings for a system or programme to operate
faultlessly and without errors are ascertained. This testing identifies the
configuration that will. provide the required performanée characteristics in the
most efficient manner.
The second main justification for this testing (software requirement
specification) is the system's interoperability with other software or equipment
included in the SRS.
Types of configuration testing :
• Software configuration testing :
It is carried out on the application being tested using multiple operating
system and browser versions, among other things. Testing takes a lot of time
since it takes a while to install and remove the different testing-related software.
After passing the unit -test and integration test, software configuration starts
when the build is deployed.

• Hardware configuration testing :


In laboratories where real computers' are utilized and diverse hardware is linked
to them, hardware configuration testing is frequently carried out.
When a build is made public, it is tested on each and every physical system to
which the hardware is connected after being installed in order to ensure that the
programme is operating properly. Since there are so many different pieces of
computer hardware and peripherals, it is almost difficult to run all the tests
while doing hardware configuration testing.

Configuration testing may also be divided into the two categories below:
1. Testing at the client level : Testing at the client level includes usability and
functionality testing. The consumers immediate interest is taken into
consideration while doing this testing.

2. Server level testing : When softwaæ is intended to be integrated after the


release, server level testing is done to ascertain how the programme will
communicate with the external environment.
Compatibility Testing
How does Compatibility Work ?
The capacity to coexist or cohabit is what constitutes compatibility. In
everyday life, milk and water may be readilý, while oil and water are
incompatible.

What is Compatibility Testing


A type of software testing called' compatibility. testing determines if your
programme can function on various types of hardware, operating Systems,
applications, network settings or mobile devices.
Types of Compatibility Tests
●​ Hardware : It examines software compatibility with various hardware
setups.
●​ Operating systems: Your programme is tested for compatibility with a
variety of operating systems, including Windows, UNIX, Mac OS, and
others.
●​ programme : It verifies that the programme you generated is compatible
with other applications. For instance, the MS Word programme should work
with other programs like MS Outlook, MS Excel, VBA, etc.
●​ Network : A system's performance inside a network is evaluated using a
variety of characteristics, such as bandwidth, operating speed, and capacity.
Along with the above listed factors, it also examines applications in various
networks.
●​ Browser: It examines your website's compatibility with several browsers,
including Firefox, Google Chrome, Internet Explorer and others.
●​ Devices: It determines if your programme is compatible with various
devices, including Bluetooth, USB port devices, printers and scanners.
●​ Mobile : Verify that your programme is compatible with mobile operating
systems like iOS and Android.
●​ Software versions : This involves ensuring that your software programme is
compatible with various software versions. Taking Microsoft Word as an
example, make sure it is compatible with Windows 7, Windows 7 SPI,
Windows 7 SP2, and Windows 7 SP3.
There are two types of version checking in compatibility testing :
●​ Backward compatibility testing : Backward compatibility testing is a way
to check how newly produced hardware or software behaves and works with
earlier iterations of the same gear or software. Testing for backward
compatibility is more predictable since all Of the modifications from earlier
versions are known.
●​ Forward compatibility testing : Forward compatibility testing is a
procedure to check how newly produced hardware or software behaves and
works with older versions of the same gear or software. Forward
compatibility testing is rather unpredictable since it is unknown what
modifications will be implemented in later versions.

Tools for compatibility testing :


1. BrowserStack - Browser -compatibility testing : With the use of this tool,
a software developer may test an applicatiön across many browsers.
2. Virtual Desktops - Operating system compatibility : This allows users to
execute apps as virtual computers across several operating systems. It is
possible to link a number of systems and compare the outcomes.

Usability Testing

Today, there are several applications in the app store that may assist individuals
in their job. And when they can, they write a'bad review or a low rating, which
directs a certain product in their direction before a select group of end consumers
download or install it.
In a nutshell, we may say that one negative review can ruin all of the hard work,
talent and strategy that went into creating the product.
This is why usability testing, which plays a significant role and is carried out by
the test engineers throughout the STLC (Software Testing Life Cycle), enters the
picture to address these kinds of problems.

What is Usability Testing ?


●​ A prominent method of software testing that falls •under the category of
non-functional testing is usability testing.
●​ It is largely used in user-centered interaction design to evaluate a software
product's usability or ease of use. Since usability testing is a thorough
process, its execution calls for knowledge about the programme.
●​ Usability testing is often carried out from the perspective of the end user to
determine whether or not the system operates well.
●​ The main goal of doing usability testing is to ensure that the application
meets the client's defined functional and business requirements while being
simple to use for the end user who is intended to utilize it.
●​ The usage of usability testing ensures that the created software is simple to
use without any issues and makes the lives of end users simpler.
●​ In other words, usability testing is one of the distinctive testing methods that
reveals flaws in the way a software product communicates with its end
users. Because of this, it is sometimes referred to as "User Experience (UX)
Testing."
●​ It assists us in resolving various usability issues with a certain website or
programme, as well as ensuring its perfection and performance.
●​ The following qualities may be used in usability testing to characterize
user-friendliness :
○​ Easy to understand
○​ Easy to access
○​ Look and feel
○​ Faster to access
○​ Effective navigation
○​ Good error handling
Easy to understand

• The end-users must be able to see all the features of the software or apps.
Easy to Access
• A user-friendly programme needs to be available to all users.
Easy to Access
• The application's appearance and feel must be superb and alluring in order
to capture the user's attention.
• The user interface (GUI) of the programme should be decent since a poor
GUI might lead the user to lose interest in the application or software.
• The product meets the client's expectations for quality.
Faster to Access
●​ The programme should operate more quickly when accessed, indicating that
the application responds quickly.
●​ If an answer takes a long time, the user could get agitated. [We need to make
sure that the response time for our application is between 3 and 6 seconds.
Effective Navigation
●​ The most important feature of the programme is effective navigation.
Among the elements for successful navigation are :
o Effective Internal Linking
o A helpful header and footer
o A useful search function
Good Error Handling
• Handling errors at the code level ensures that the programme or application
is resilient and bug-free.
• By displaying the appropriate error message, the application's usability and
user experience will be improved.

Usability Testing Process


The usåbility testing process is broken down into a few key Components.
With the help of this pròcedure, we will be able to provide and produce various
outcomes for every problem that emerges throughout the course of the testing.
Even though it takes time, usability testing examines how the programme
behaves from the user's point of view in real time, giving the tester the most
accurate results from actual testing.
And it helps us clearly before placing our product on the server by giving us an
idea of its problems and shortcomings.
To assist the team in getting a thorough and beneficial feedback from the
end-users, the usability testing procedure follows a particular set of procedures.

Step 1 : Planning
• Planning is the first stage in the usability testing process. During this
phase, the team creates a test strategy and some document samples to aid
in the completion of the usability testing tasks. It is a critical and one of
the most important steps in the usability testing process.
• The planning stage determines the usability test's goal. Here, the goal is
not to have the volunteers use our programme. while documenting their
actions; rather, we need to address the system's most important functions
and components.
• Our test engineers who are acquainted with these essential elements
need to be given the jobs. Additionally, during the planning stage, the
usability testing methodology, the quantity and demographics of usability
test engineers and test report formats are determined

Step 2 : Team Recruiting


●​ We will move on to the team recruitment phase of usability testing when
the planning stage is finished.
●​ According to the budget and density of the product, we will here employ or
recruit the end user delegates, participants and test engineers.
●​ These staff members or test engineers are ready to observe the testing
sessions and confirm the accuracy ånd usefulness of the product.
●​ The selection of these test engineers is mostly dependent on the need for
testing as well as the quantity of people included in the fest plan.
●​ The team is assigned to the specific duties and occupations as soon as the
employment of a test engineer is accomplished.

Step 3 : Test Execution


●​ Once the planning and team-building phases have been effectively
completed. The execution of the test will be the following step that we take.
●​ The test execution stage is where the test engineers carry out the usability
testing and carry out their designated duties- In this case, consumers must
test the goods to identify any irregularities and accurately record them.

Step 4 : lest Result Documentation


●​ The test execution stage's findings are included in the test result
documentation step, after which additional analysis is conducted.

Step 5 : Data Analysis


●​ The following stage of the usability testing procedure, namely Data
Analysis, will be undertaken when the test results documentation has been
completed.
●​ During the data analysis step, usability testing assessment provides the
response or feedback.Additionally, the results are categorised and the trends
are recognised.
●​ In this phase, the results of the usability tests are thoroughly examined in
order to draw meaningful conclusions and assist us in making suggestions
that will improve the usability of our product as a whole.

Step 6 : Reporting
●​ We will eventually get at the last phase of the usability testing pröcess,
which is referTed to as Reporting, after successfully completing all the
aforementiòned processes.
●​ With the development team, designer and other project participants, we may
report the results and recommend changes, as well as exchange all the
relevant materials, including audio, databases, screen recordings etc.

The Advantages of Usability Testing


●​ Conducting usability tests enables us to verify the software's usefulness.
●​ It increased customer satisfaction with the software product and guaranteed
a high quality product was delivered.
●​ Usability testing will be put into practise, which-will inCrease the software's
suitability and consistency.
●​ Before releasing the finished product, we may identify usability problems
with the use of usability testing.
●​ The application's end-user is always eager to. utilise it.
●​ Conducting usability testing enables us to find potential problems and flaws
in the programme

The Disadvantage of Usability Testing


●​ Budgeting is, as we all know, the most important consideration when
carrying out any software. testing. Costing for usability testing is also very
important in this situation. Establishing a usability test lab involves a lot of
resources and sometimes it might be expensive to hire or acquire a usability
test engineer.
●​ Because usability testing is carried out by end users, as was previously
discussed- it might be challenging to find volunteers who are willing-to
serve as test engineers.
●​ In the first place, usability testing does not always accurately reflect the
situation.

Testing the Documentation

●​ The documenting of artefacts produced during or before the testing of a


software programme is known as testing documentation. The value of
processes to the client, the person and the organization is reflected in the
documentation.
●​ All document projects have a high degree of maturity. Careful
documentation may help the organization save time, money and resources.
●​ The definition of testing documentation is "documentation that fully
describes the methods used for testing, the bugs discovered during testing,
the information of the fixed errors and the methods . used to fix them." any
adjustments made to fix the issues. The testing documentation contains all of
them.
●​ Software testing documentation has to be created either before or during the
testing process.
●​ This document is crucial because it tells other testers and developers about
the mistakes that have been repaired and how they were fixed.

Types of Test Document

There are various types of testing documents in software testing. Some of them are
as follows :
●​ Test scenarios : The methods used to test an application: programme are
called test scenarios. It excludes the inputs and outputs needed for
application navigation. However, it is often used to comprehend how the
programme works from point to point. whereas test scenarios and test cases
both include similar kinds of principles, test scenarios involve many stages
for evaluating the programme whereas test cases just include a test case.
●​ Test case : Test scenarios and test cases are both used to test the application,
as we recently talked with test scenarios. However, a test case is a single
input and output scenario used to evaluate an application. Onlÿ one test case
is insufficient to test an applicätion, thus numerous test cases are created to
test the programme and these test cases are recorded in a test document.
●​ Test plan : As the name suggests, we will create a strategy in this document
for the software testing that will be done either during the programme or
thereafter. For efficient software application testing, this strategy is quite
helpful. Although the test plan document is crucial for effective testing,
whatever we perform with' a plan becomes successful.

• Test data : Test data is the data that is present before the testing processes are
carried out. The test data may be used to compare test case findings, whether
they are accurate or not.The test data document is created in an Excel sheet
format.
Benefits of using Documentation
●​ Clear documentation makes the effectiveness of approaches and goals clear.
●​ When a consumer employs a software programme, it guarantees internal
co-operation.
●​ It guarantees transparency about the consistency of duties and output.
●​ It offers feedback on tasks involving prevention.
●​ It offers feedback for your cycle of planning.
●​ It provides unbiased proof of the effectiveness of the quality management
system.
●​ The values that we entered in the first step cannot be forgotten while writing
the test document.
●​ We can quickly consult the text document, which saves time in the
procedure
The fact that we will test on the same number makes it consistent as well.

The Drawback of the Test Document


●​ Maintaining the customer-provided update and the document's
corresponding change is a little tiresome.
●​ If the test documentation is inadequate- the application's quality will be
replicated.
●​ Sometimes a writer who lacks product expertise contributes to the article.
●​ The expense of the document may sometimes outweigh its worth.

Security testing

Software testing that identifies system flaws and establishes whether the
system's data and resources are secure from potential hackers is known as
security testing. It makes sure that the software system and application remain
secure and unaffected by any dangers or threats that might result in harm. Any
system's security testing aims to identify any potential flaws and
vulnerabilities that might lead to the loss of data or the organization's
reputation. Software testing that focuses on assessing the security of a system
or applicåtion is known as security testing. In order to guarantee that the
system is secure against unauthorized access, data breaches and other
security-related problems, security testing aims to discover vulnerabilities and
possible threats.

Principle of Security Testing

Following aspects of security testing :


l) Availability
2) Integrity
3) Authorization
4) Confidentiality
5) Authentication
6) Non-repudiation

Availability
• This ensures that the data and statement services will be available whenever
we need them by requiring that the data be kept on file by an authorised
individual.
Integrity
●​ In doing so, we shall protect the data that an unauthorised individual
modified. Integrity's main goal is to provide the receiver control over the
data that the system provides.
●​ The secrecy structures and integrity systems often use some of the same
underlying strategies. However, instead of encrypting every communication,
they often incorporate the communication data to establish the basis of an
algorithmic check. Additionally, make sure that accurate data is sent from
one programme to the next.

Authorization
●​ It involves determining whether a customer is. allowed to both execute an
activity and receive services. Access control is a good illustration of
authori$ation.
Confidentiality
●​ Because it is the only method we can ensure the security of our data, it is a
security procedure that delays the leak of data from outsiders.

Authentication
●​ In order to provide access to the system or private information,- it is
important to trace the
source of a product and validate a person's uniqueness.

Non- repudiation
●​ It is a term used to refer to digital security, and it provides assurance that
neither the sender nor the receiver of a communication may dispute having
transmitted or received the message.
●​ The non-repudiation principle is used to confirm that a communication has
been sent and received by the individual claiming to have done so.

Types of Security Testing


As per open source security testing techniques, we have different types of
security testing which as follows :
l. Security scanning
2. Risk assessment
3.Vulnerability scanning
4.Penetration testing
5.Security auditing
6.Ethical hacking
7. Posture assessment
1. Security scanning : Both automated testing and manual testing may use
security scanning. The vulnerability or undesired file modification in a web based
application, websites, network or file system will be found using this scanning. It
will then offer the results that enable us to lessen those dangers. Those systems
need security screening, depending on the architecture they use.
2. Risk assessment : Both automated testing and manual testing may use security
scanning. The vulnerability or undesired file modification in a web-based
application, website's network or file system will be found using this scanning. It
will then offer the results that enable us to lessen those dangers. Those systems
need security screening, depending on the architecture they use.
3.Vulnerability scanning : A network’s desktops, servers, laptops, virtual
machines, printers, switches and firewalls are all included in this programme,
which is used to identify and create a list of all the systems containing those
components. The automated application may be used to do vulnerability scanning,
which also detects the programs and devices that have admitted to having security
flaws.
4.Penetration testing : Penetration testing is a security procedure where a
cyber-security expert attempts to locate and take advantage of a computer system's
vulnerability. The main goal of these tests is to mimic epidemics, identify system
flaws and protect against intruders who could profit from them.
5.Security auditing : An organized way for assessing the organization's security
controls is security auditing. We will check the application and the control system
from the inside out for security flaws in this.
6.Ethical hacking : Ethical hacking is used to identify system flaws and assists
organizations in plugging security weaknesses before malicious hackers reveal
themBecause ethical hackers sömetimes use the same strategies; devices and
methods as malicious hackers, but with the official person's consent, they will aid
us in strengthening the security position of the organization.Ethical hacking aims
to strengthen security and defend systems against assaults from harmful users.
7.Posture assessment : We can show the whole security posture of an organization
by combining ethical hacking, risk assessments and security scans.

Testing in the Agile Environment

Principles of Agile Testing


Agile testing includes various different principles that help us to increase the
productivity of our software.
1. Constant response
2. Less documentation
3. Continuous Testing
4. Customer Satisfaction
5. Easy and clean code
6. Involvement of the entire team
7. Test-Driven
8. Quick feedback
Constant response : Agile testing implementation continuously provides a
reaction or feedback. Our product can thus satisfy corporate requirements.
In other words, we may claim that during the continuous reaction, the Product and
business needs are understood.
Less documentation : Agile teams or all test engineers employ a reusable
specification or a checklist, thus less paperwork is needed for agile testing
execution. And the team prioritizes the test above the auxiliåry data.

Continuous testing : The agile test engineers continuously do testing since it is


the only method to ensure that the product is being improved.
Customer satisfaction : Customer satisfaction is crucial for any project delivery
since consumers are constantly exposed to the product.
The client may quickly update and adjust requirements as the development process
moves along. Additionally; the tests may be modified to meet the revised
specifications.
Easy and clean code : When the flaws discovered by the testing team or the agile
team are corrected in a comparable iteration, we end up with simple, clean code.

Involvement of the entire team : As far as we are aware, the testing team is the
sole team in the software development life cycle that is in charge of the testing
process. However, Business Analysts (BA) and developers may also test the
product or the application in agile testing.

Test-driven : Agile testing requires us to cany out the testing procedure during
implementation, which reduces the amount of time needed for development.
However, testing is done either after implementation or during the conventional
process of developing software-

Quick response : The business team participates in each agile testing iteration. As
a result,we may get constant input, which helps us shorten the time it takes to
respond to comments on development activity.
Agile Test Plan
The agile test plan is produced and modified for every release, in contrast to the
waterfall style.
The agile test plan also includes the testing kinds that were carried out during a
particular iteration, such as test environments, test data specifications, test
outcomes and infrastructure. The-agile test plans emphasize the following :
●​ Testing Scope : The testing scope outlines the test coverage, test scope and
sprint targets that will be used to implement the test.
●​ Performance and load testing : This section describes the various testing
techniques.
●​ Testing kinds or levels according to the complexity of the feature : It
specifies the testing types or levels that will be applied. Additionally, it
describes the test's data and specifications as well as the environment in
which the test will be run.
●​ Mitigation or risks plan : It describes the fallback strategy created to deal
with risks or problems. Additionally, it lists any difficulties that could arise
when testing the programme for the most recent version.
●​ Deliverables and Milestones : It establishes test deliverables and
milestones from the customer's point of view.
●​ Infrastructure consideration : It controls the equipment needed to do the
tests.
●​ Resourcing : It enumerates the test-related jobs and the frequency of tests,
which specifies how often the tests will be run.
●​ Establish the newly tested functionality.

Agile Testing Strategies

Agile testing has four different approaches, which help us to enhance our
product quality.
• Iteration 0
• Construction iteration
• Release End Game or Transition Phase
• Production
Let us discuss them one by one in detail .
1. Iteration 0
●​ Iteration 0 is the initial technique or strategy in agile testing. Here, we carry
out the preparatory setup duties including recruiting test subjects, setting up
test instruments, arranging resources or a usability testing lab etc.
●​ In Iteration 0, the below steps are accomplished .
○​ Validating a business case for the project's boundaries and situational
circumstances.
○​ List the key specifications and use cases that will influence the
strategic trade-offs.
○​ Schedule the first project and estimate costs
○​ Spotting the danger.
○​ Describe one or more potential designs.
2.Construction Iteration
●​ Construction Iteration is the following agile testing technique. The bulk of
the testing is done using this method.
●​ In order to produce an increment of the answer, the building iteration is
carried out as a series of iterations.
●​ Simply said, the agile team executes the specified requirements throughout
each iteration, acquiring the most important business needs or requirements
that have been left behind from the work item stack.
●​ The construction iteration process divided into the following two types of
testing :
l. Confirmatory testing
2. Investigative testing
1. Confirmatory Testing : We will catTY out the confirmatory testing to
make sure the product satisfies the needs of all the stakeholders.
Confirmatory testing may be further divided into the following two
categories of testing :
o Agile acceptance testing
o Developer testing
Agile acceptance testing : It combines acceptability testing with
functional testing. The development team and stakeholders may jointly
conduct the agile acceptance testing.
Developer testing : It combines integration testing with unit testing.
Additionally, it verifies the database structure as well as the application
code.
2. Investigative Testing : We will do investigative testing in order to test
thoroughly and find any problem that confirmatory testing missed.
3.Release End Game or Transition Phase
●​ Release is the third strategy used in agile testing . This particular strategy's
goal is to successfully put our technology into production.
●​ In the end, the test engineer will be working on its defect tales. In the release
end game or transition stage, we have the following activities :
○​ Support Individuals
○​ Training of end-users
○​ Operational People
●​ Similarly, it involves some additional activities as well .
○​ Back-up and Restoration
○​ Marketing of the product release
○​ User documentation
○​ Completion of system
Whole system testing and acceptability testing are included in the final testing
phase of the agile approach- We should have to test the product more
extensively throughout building iterations if we want to successfully finish
our final testing pháse.

4. Production
When the release stage is over, the product will proceed to the manufacturing
step.

Agile Testing Life Cycle

Agile Testing life cycle completed into five different phases, as we can see in the
following image :

Let understand all the phases in detail :

Phase 1 : Impact Assessment


Impact assessment is the first stage of- the Agile testing life cycle- In order to
out the impact assessment phase, we now gather the input and feedback from users
and stakeholders. This stage, sometimes referTed to as the feedback stage, helps
the test engineers define the goals for the subsequent life cycle.
Phase 2 : Agile Testing Planning
Agile testing planning is the second stage of the testing life cycle. The testing
proCess schedules, frequent meetings and deliverables are planned at this phase in
collaboration with the developers, test engineers, stakeholders, customers and end
users.

Phase 3 : Release Readiness


Release readiness is the next stage in the Agile testing life cycle, when test
engineers must assess the fully developed features to determine if they are ready to
go live or not. They must also determine whether features need to return to the
earlier stages of development.
Phase 4 : Daily Scrums
The next stage of the Agile testing life cycle is daily scrums, which comprises
morning meetings every day to review testing and set the goals for the day.
Additionally, daily objectives and targets are defined in order to assist test
engineers in understanding the state of testing.

Phase 5 : Test Agility Review


The test agility review is the last and concluding component of the Agile life
cycle. The weekly meetings with the stakeholders to analyse and assess the
progress towards the targets are part of the test agility phase.

In order to evaluate the development process's progress, we may state that agility
reviews are implemented on a regular basis.

Advantages of Agile Testing


●​ Agile testing paves the door for frequent end-user input and evaluations,
which aids in improving the quality and attributes of the software product-
●​ The use of agile testing will result in significant time and cost savings,
improving the transparency of cost estimates.
●​ Daily meetings help us identify more important concerns
●​ Agile testing takes less paperwork to nrn or we might argue that it minimises
documentation.
●​ Improving software productivity and lowering mistakes are the two main
benefits of using Agile software testing.
●​ As we learned from the discussion above, agile software development
divides the effort into manageable chunks and prevents developers from
veering off course.We will also see more efficiency and more little
discrepancies in the outcomes.

Disadvantage of Agile Testing

●​ The biggest drawback of agile testing is that if two or more team members
quit, the project would fail.
●​ In order to test the programme or the application, the testing team must be
determined, which leads to uneven results.
●​ The lack of documentation that translates into precise criteria and
requirements makes it difficult for us to forecast expected outcomes.
●​ Agile testing often involves bug patches, revisions and releases, which
might sometimes cause us to introduce new problems into the system.

Testing Web and Mobile Applications


The practice of testing application software just for managing and handling
mobile devices is referred to as mobile app testing. It is used to assess a mobile
app's usability, compatibility and other factors.
●​ Web app testing :
Web app testing is the process of evaluating application software that is hosted
on the internet to assure its quality, functionality, usability etc. It's sometimes
referred to as website testing or web testing .
Difference between Mobile App Testing and Web App Testing

Sr.No. Mobile app testing Web app testing


1.​ These are software These are software
programs that are used programs that are used on
on mobile devices. computers.

2. Mobile applications are web applications ​


developed for a broader developed for shorter
range of users. users as compared to
mobile applications.
3. New application can be
downloaded from the Applications will be
app store. updated on the website.
4. "It's not easy to create It is easy to code relative
responsive designs for design for large screen
small screen devices such devices such as desktop
as mobile devices, and laptop.
tablets".
5. Mobile storage capacity is Desktop or laptop has
less than desktop or laptop larger storage capacity as
when it comes to compared to mobile.
downloading apps and
multimedia therefore,
sometimes it becomes
difficult to test mobile
apps.
6. Mobile apps sometimes Webapp generally
do not require any requires an internet
internet connection but connection tOveìform
speed matters, quality -of any task.
connection matters,
speed of LTE connection
etc.
7. It is quite complex and It is easy and simple to
complicated to test test web applications
mobile apps because of because of the
different mobile devices functionality of the
having different and desktop.
greater number of
functionalities.
8. Testing team háve to There is no such proþlelll
check performance of of battery life
-mobile devices on fully
charged devices' and low
charged devices because
aþpÌication that drains
battery life gets deleted
soon.
9. One has to consider One does not consider
different screen size; such things in web app
different OEM's (Original testing.
Equipment Manufacturer),
Storage capacity etc., in
mobile app-testing.
10. Testing team has to Testing team does not
focus on interaction of need on interaction or web
mobile devices with devices With user's move,
direction of user's
user's moves; voice and attentions; eye moves etc.
environment, eye moves as it offers less variety of
etc., as it offers a variety options to perform
of options to perform operations
operations.

You might also like