System Test: What Is System Testing ?
System Test: What Is System Testing ?
It comes under Black box testing (i.e. only external working features of the software evaluated during this testing), it
does not require any internal knowledge of coding, programming, design and completely based on users perspective.
2. Stress Testing
Scalability Testing
Definition – a non functional testing method that measure performance of a system or network when the number of
users requests are scaled up or down.
The purpose of Scalability testing is to ensure that the system can handle increase in user traffic, data volume,
transaction counts frequency, lets the system to meet the growing needs.
Attributes :-
• Response Time
• Screen Transition
• Network Usage
• Web Server
Requirements :-
• OS – What operating system do the load generation agents and load test master run under
• Processor – What CPU is required for the virtual user agent and load test master
• Memory – How much memory would be enough for the virtual user agent and load test master
• Define a process that is repeatable for executing scalability tests throughout the application life-cycle
• Set the testing environment and configure the hardware required to execute scalability tests
• The test script should have a detailed step that determine the exact actions a user would perform.
• The test plan should determine any run time data that is required to interact with the application
• If the scripts need varying data at run-time, you need to have an understanding of all the fields that require this
data
Stress Testing
Definition – a type of software testing that verifies stability and reliability of software application. The goal of Stress
testing is measuring software on its robustness and error handling capabilities under extremely heavy load conditions
and ensuring that software does not crash under crunch situations.
Need – It is imperative to perform Stress Testing to accommodate such abnormal traffic spikes. Failure to accommodate
this sudden traffic may result in loss of revenue and repute.
• System failure under extreme conditions could result in enormous revenue loss
Distributed Stress Testing: In distributed client-server systems, testing is done across all clients from the server. The
role of stress server is to distribute a set of stress tests to all stress clients and track on the status of the client. After the
client contacts the server, the server adds the name of the client and starts sending data for testing.
Night run is the best option to run these stress testing scenarios. Large server farms need a more efficient method for
determining which computers have had stress failures that need to be investigated.
Application Stress Testing: This testing concentrate on finding defects related to data locking and blocking, network
issues and performance bottlenecks in an application.
Transactional Stress Testing: It does stress testing on one or more transactions between two or more applications. It is
used for fine-tuning & optimizing the system.
• Create Automation Scripts: In this phase, you create the Stress testing automation scripts, generate the test data
for the stress scenarios.
• Script Execution: In this stage, you run the Stress testing automation scripts and store the stress results.
• Results Analysis: In this stage, you analyse the Stress Test results and identify bottlenecks.
• Tweaking and Optimization: In this stage, you fine-tune the system, change configurations, optimize the code
with goal meet the desired benchmark.
Stress Tester
This tool provides extensive analysis of the web application performance, provides results in graphical format, and it is
extremely easy to use. No high-level scripting is required and gives a good return on investment.
Neo load
This is a popular tool available in the market to test the web and mobile applications. This tool can simulate thousands
of users in order to evaluate the application performance under load and analyse the response times. It also supports
Cloud-integrated – performance, load and stress testing. It is easy to use, cost-effective and provides good scalability.
Stability Testing
Definition – It is one of the tests done during performance testing. A simple way to understand stability testing is to
imagine the extent to which stress impacts your activity levels.
In instability testing, the software efficiency likewise depreciates until it falls apart. The overloaded application under
test allows testers to track their ability to cope with errors
QA engineers mostly stretch the system by deploying mass virtual audiences to use it.
• To establish operational issues, we must confirm the system’s reliability and load by using the standpoint.
• To allocate various tasks and functions, such as creating, planning, reviewing, and executing tests.
• To guarantee that the right testing tools and expertise are in place.
• To determine threats and expenses for testing and essentially estimate all executions’ cost based on CPU usage
and memory.
• To evaluate error tracing and analysis while aligning them with the specifications.
• To determine the Business issues, verify the system performance and load as per end user perspective.
• To assign the different Responsibilities and Roles like -Creating Test plan, Test Case design, Test case review,
Test execution, etc.
• To ensure proper Load Testing tools and experience team is present for the same.
• To measure the risk and cost involves in the testing. This will determine the cost of each execution in terms of
CPU utilization and memory.
• Determine the Defect tracking and reporting and their proper mapping with the requirements.
• WebLOAD
• LoadRunner
• Apache JMeter
• NeoLoad
• CloudTest
• Loadstorm
• LoadUI
• WAPT
• LoadImpact
• Loadster
• Httperf
• OpenSTA
• Performance Tester
• Testing Anywhere
Load Testing
Definition – Load Testing is a non-functional software testing process in which the performance of software application
is tested under a specific expected load. It determines how the software application behaves while being accessed by
multiple users simultaneously.
The goal of Load Testing is to improve performance bottlenecks and to ensure stability and smooth functioning of
software application before deployment.
• Determine connection speeds. Some users may be connected via leased lines while others may use dial-up
• Re-test
LoadNinja – is revolutionizing the way we load test. This cloud-based load testing tool empowers teams to record &
instantly playback comprehensive load tests, without complex dynamic correlation & run these load tests in real
browsers at scale. Teams are able to increase test coverage. & cut load testing time by over 60%.
Advantages and Disadvantage of Load Testing
Advantages
• Performance bottlenecks identification before production
Disadvantage
• Need programming knowledge to use load testing tools.
• Tools can be expensive as pricing depends on the number of virtual users supported