Software testing unit IV (1)
Software testing unit IV (1)
Performance Testing: Load Testing, Stress Testing, Volume Testing, Fail-Over Testing,
Recovery Testing, Configuration Testing, Compatibility Testing, Usability Testing, Testing
the Documentation, Security testing, Testing in the Agile Environment, Testing Web and
Mobile Applications.
PERFORMANCE TESTING:
Performance Testing is a type of software testing that ensures software applications perform
properly under their expected workload. It is a testing technique carried out to determine
system performance in terms of sensitivity, reactivity, and stability under a particular
workload.
1.Load testing
2.Stress testing
3.Volume testing
4. Fail Over testing
5.Recovery testing
6.Configuration testing
7.Compatibility testing
8.Usability Testing
1.LOAD TESTING
Load testing is a type of Performance Testing that determines the performance of a system,
software product, or software application under real-life-based load conditions.
1. Test Environment Setup: Firstly create a dedicated test environment setup for performing
the load testing. It ensures that testing would be done in a proper way.
2. Load Test Scenario: In second step load test scenarios are created. Then load testing
transactions are determined for an application and data is prepared for each transaction.
3. Test Scenario Execution: Load test scenarios that were created in previous step are now
executed. Different measurements and metrices are gathered to collect the information.
4. Test Result Analysis: Results of the testing performed is analyzed and various
recommendations are made.
5. Re-test: If the test is failed then the test is performed again in order to get the result in
correct way.
Load Testing Tools:
Apache Jmeter
Load Ninja
NeoLoad
WebLoad
HP Performance Tester
Load View
Load UI Pro
2.STRESS TESTING
Stress Testing is a software testing technique that determines the robustness of software by
testing beyond the limits of normal operation. Stress testing is particularly important for
critical software but is used for all types of software.
Stress testing emphasizes robustness, availability, and error handling under a heavy load rather
than what is correct behavior under normal situations.
3.Volume Testing
Volume Testing is a type of software testing which is carried out to test a software application
with a certain amount of data. The amount used in volume testing could be a database size or it
could also be the size of an interface file that is the subject of volume testing.
#1)DbFit:
This is an open-source tool that supports test-driven development.
DbFit testing framework is written on top of Fitness, the tests are written using tables and can be
executed using any Java IDE or CI tool.
#2) HammerDb:
HammerDb is also an open-source tool that can be automated, multi-threaded, and even allows
run-time scripting. It can work with SQL, Oracle, MYSQL, etc.
#3) JdbcSlim:
JdbcSlim commands can be easily integrated into Slim Fitness and it supports all the databases
which have a JDBC driver. The focus is on keeping the configuration, test data, and SQL queries
separate.
#4) NoSQLMap:
This is an open-source Python tool that is designed to automatically inject attacks and disrupt the
DB configurations to analyze the threat. It works only for MongoDB.
#5) Ruby-PLSQL-spec:
The PLSQL can be unit tested using Ruby as Oracle is available as an open-source
tool. This basically uses two libraries: Ruby-PLSQLand Rspec.
Failover testing is a technique that validates if a system can allocate extra resources and back
up all the information and operations when a system fails abruptly due to some reason. This
test determines the ability of a system to handle critical failures and handle extra servers. So,
the testing is independent of the physical hardware component of a server.
It is preferred that testing should be performed by servers. Active-active and active-
passive standby are the two most common configurations.
Considerable Factors Before Performing Failover Testing :
1. The budget has to be the first thing to be taken into consideration before thinking about
performing the Failover test.
2. The budget is connected to the frameworks that might crash or break down under
pressure/load.
3. Always keep in mind how much time it will take to fix all the issues caused by the failure
of the system.
4. Note down the most likely failures and organize the outcomes according to how much harm
is caused by the failure.
Considerable Factors While Performing Failover Testing
1. Keep a plan of measures to be taken after performing a test.
2. Focus on the execution of the test plan.
3. Set up a benchmark so that performance requirements can be achieved.
4. Prepare a report concerning issue requirements and/or requirements of the asset.
Working of Failover testing:
1. Consider the factors: Before performing failover testing like budget, time, team,
technology, etc.
2. Analysis on failover reasons and design solutions: Determine probable failure situations
that the system might experience. Examine the causes of failover, including software bugs,
hardware malfunctions, network problems, etc. It provides fixes for any flaws or
vulnerabilities found in the failover procedure.
3. Testing failover scenarios: It develops extensive test cases to replicate various failover
scenarios. This covers both unplanned failovers (system or component failures) and
scheduled failovers (maintenance). Test cases ought to address many facets of failover,
such as load balancing, user impact, network rerouting, and data synchronization.
4. Executing the test plan: To reduce the impact on production systems, carry out the
failover test plan in a controlled setting. Keep an eye on how the system behaves during
failover to make sure it satisfies the recovery point and recovery time objectives (RPO and
RTO, respectively).
5. Detailed report on failover: Keep a record of the failover testing findings, including any
problems you ran across, how long it took to failover and how it affected customers or
services. Assess problems according to their severity and offer suggestions for
improvements.
6. Necessary actions based on the report: Distribute the report on the failover test to all
pertinent parties, such as project managers, developers, and system
administrators. Determine what needs to be done and prioritize it based on the report’s
conclusions. This might involve fixing found flaws in the system, updating failover
setups or improving the documentation.
Benefits of Failover Testing:
1. Determines Vulnerabilities and Weaknesses: Failover testing helps in locating holes and
vulnerabilities in the system by simulating different failure scenarios. Organizations can
address any problems before they have an impact on production settings by taking a
proactive approach.
2. Verifies Redundancy Procedures: Redundancy mechanisms are frequently incorporated
into systems to improve reliability. In order to make sure that these systems such as
redundant servers, databases, or network paths, work flawlessly in the event of a
breakdown, failover testing verifies their efficacy.
3. Improving the User Experience: Consumers anticipate consistent and dependable service
availability. By reducing interruptions and ensuring service availability even in the face of
unanticipated circumstances, failover testing contributes to the provision of a positive user
experience.
4. Encourages Compliance: Failover testing supports organizations in demonstrating
compliance with these rules by ensuring that systems can recover within prescribed times.
5. Encourages Continuous Improvement: Organizations that regularly test their systems
can learn from each test cycle, fix problems found and upgrade their failover procedures to
meet changing business needs and technological advancements.
5. RECOVERY 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.
Configuration Testing Process:
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.
7.COMPATIBILITY TESTING
8.USABILITY TESTING
Usability Testing in software testing is a type of testing, that is done from an end
user’s perspective to determine if the system is easily usable. Usability testing is generally the
practice of testing how easy a design is to use on a group of representative users. Several tests
are performed on a product before deploying it. You need to collect qualitative and quantitative
data and satisfy customers’ needs with the product. A proper final report is made mentioning
the changes required in the product (software).
Usability testing involves evaluating the functionality of a website, app, or digital product by
observing real users as they navigate through it.
Types of Usability Testing
here are some common types of usability testing explained simply:
1. Remote Usability Testing: Participants use a product or website from their own location
while researchers observe and gather feedback remotely. It’s convenient and allows testing
with diverse users without geographical constraints.
2. Moderated Usability Testing: A researcher guides participants through tasks, observes
their interactions, and collects feedback in real-time. It’s helpful for understanding user
behavior and thoughts as they navigate through the product.
3. Unmoderated Usability Testing: Participants complete tasks independently, without
direct guidance from a researcher. They usually record their screen and verbalize their
thoughts while interacting with the product. It’s efficient for gathering feedback from a
large number of users quickly.
4. Comparative Usability Testing: This involves testing multiple versions of a product or
interface to determine which performs better in terms of usability. It helps in making
informed design decisions by identifying strengths and weaknesses of each version.
5. Think-Aloud Testing: Participants verbalize their thoughts and actions as they interact
with the product. This provides insights into their decision-making process and helps
identify usability issues that might not be obvious otherwise.
6. A/B Testing: Also known as split testing, it involves presenting users with two (or more)
versions of a product or interface and measuring which one performs better based on
predefined metrics such as conversion rate or user engagement.
7. Guerrilla Usability Testing: Conducted informally in public spaces or online
communities, often with minimal planning and resources. It’s useful for gathering quick
feedback from a diverse range of users in a natural setting.
Techniques and Methods of Usability Testing
There are various types of usability testing that when performed lead to efficient software. But
few of them which are the most widely used have been discussed here.
1. Guerilla Testing
It is a type of testing where testers wander to public places and ask random users about the
prototype. Also, a thank gift is offered to the users as a gesture of token. It is the best way to
perform usability testing during the early phases of the product development process. Users
mostly spare 5–10 minutes and give instant feedback on the product. Also, the cost is
comparatively low as you don’t need to hire participants. It is also known as corridor or
hallway testing.
2. Usability Lab
Usability lab testing is conducted in a lab environment where moderators (who ask for
feedback on the product) hire participants and ask them to take a survey on the product. This
test is performed on a tablet/desktop. The participant count can be 8-10 which is a bit costlier
than guerrilla testing as you need to hire participants, arrange a place, and conduct testing.
3. Screen or Video Recording
Screen or video recording kind of testing is in which a screen is recorded as per the user’s
action (navigation and usage of the product). This testing describes how the user’s mind runs
while using a product. This kind of testing involves the participation of almost 10 users for 15
minutes. It helps in describing the issues users may face while interacting with the product.
Generally, there are two studies in usability testing –
1. Moderated – the Moderator guides the participant for the changes required in the product
(software)
2. Unmoderated – There’s no moderator (no human guidance), participants gets a set of
questions on which he/she has to work.
While performing usability testing, all kinds of biases (be it friendly bias, social bias, etc.)
by the participants are avoided to have honest feedback on the product so as to improve
its durability.
Factors Affecting Cost of Usability Testing
The testing cost will depend on the following factors:
1. No. of participants for testing.
2. Number of Days which you need for testing.
3. which type of testing.
4. the size of the team used for testing.
2.Find your participants: The second phase of usability testing is finding an employee
who is helping you with performing usability testing.
3. Write a test plan: This is the third phase of usability testing. The plan is one of the
first steps in each round of usability testing is to develop a plan for the test.
4. Take on the role of the moderator: This is the fourth phase of usability testing and
here the moderator plays a vital role that involves building a partnership with the participant.
5. Present your findings/ final report: This phase generally involves combining your
results into an overall score and presenting it meaningfully to your audience.
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.
10. SECURITY TESTING
Security Testing is a type of Software Testing that uncovers vulnerabilities in the system and
determines that the data and resources of the system are protected from possible intruders. It
ensures that the software system and application are free from any threats or risks that can
cause a loss.
Agile Testing is a type of software testing that follows the principles of agile
software development to test the software application. All members of the
project team along with the special experts and testers are involved in agile
testing.
Agile testing is not a separate phase and it is carried out with all the
development phases i.e. requirements, design and coding, and test case
generation.
Agile testing takes place simultaneously throughout the Development Life
Cycle. Agile Testing has shorter time frames called iterations or loops. This
methodology is also called the delivery-driven approach because it provides a
better prediction on the workable products in less duration time.
1. These are software programs that are These are software programs that are used
S.
No.
Mobile App Testing Web App Testing
The following are the tools or The following are the tools or Frameworks
Frameworks for Mobile App Testing- for Web App Testing-