Stress test is performed to subject the software to extreme situations. Basically, the stress test is based on testing the software limits and evaluating its behavior. Thus, it is evaluated up to when the software may be required and what failures (if any) arise from the test.
Stress testing is critical in applications where efficiency is an important feature. For example:
File servers and web servers, which must meet
requests from a large number of customers;
Industrial applications such as the control of a
petroleum;
Computer games, which need acceptable performance for
are commercially viable.
Let’s consider as an example the implementation of a web server used in e-commerce. A maximum of 5000 transactions per minute were established for a given execution venue when setting the system requirements. A stress test can then be done to answer several questions:
- The system achieves the goal?
- What is the maximum number of transactions actually possible?
- If the execution platform degrades (for example, a failure
partial network, lack of disk space, etc.), as the system if
will carry?
In certain cases it is preferable that the execution of the program be maintained even if it degrades, avoiding a complete stop. A typical example are financial systems.
Failure possibilities under difficult operating conditions, such as recording incorrect operations, must be detected and avoided. A good stress test should be able to reveal this information to evaluators.
The great difficulty of performing a stress test is to properly configure the execution platform. For example: if the reviewer is interested in knowing the minimum amount of memory available for a program to work, physically removing RAM chips is a very laborious solution. In addition to RAM, there are several other parameters, such as disk, CPU and network installations, and it would be impossible to mount and disassemble a computer with different settings for all tests. This is done using stress tools.
An example of a tool that can be used for a stress test is Winstress, of Ultra-X. It is a program that allows artificially reducing the performance of a computer, according to the configuration desired by the evaluator. You can vary parameters such as CPU load, available memory, available disk space and network load.
There are also specific tools for testing network applications. Such tools allow testing a program by simulating an arbitrary number of connections. Some examples are Dieseltest and Opensta, for Internet applications, and Dbmonster, for testing SQL applications.
Other stress tools:
There are a ton of open source products for testing, look at http://www.opensourcetesting.org. Of these I highlight the following:
ab - http://httpd.apache.org apache stress tool, useful for simple load testing.
jmeter - http://jakarta.apache.org/jmeter works well for generating small/medium loads from a single machine, tests different HTTP protocols and allows creating reasonably complex scenarios.
Tsung - http://tsung.erlang-projects.org/ tool capable of simulating very complex scenarios using stochastic modeling of users. Works well to generate huge loads from various machines
slamd - http://www.slamd.com/ very cool sun product, allows creating scenarios and works in a distributed way, can generate large loads, but not compared to Tsung.
Siege - http://www.joedog.org/JoeDog/Siege many people who use Siege for simple load testing, can generate a very large load from a single station, but it’s a lot to process the results or use complex scenarios.
Hardware
For the stress test to be completely efficient, it is also necessary to know if the machine you are working has a good capacity, network and the like, among many N factors that can influence.
But I leave at least one tool for testing:
Heavyload allows to make the following tests:
Use your processor or even a specific number of processor cores for full capacity. Heavyload performs complex calculations to simulate the load on your processor.
Check how your system behaves when confronted with the smallest disk space
Among many other tests.
You knew:
THE 13 MAJOR TYPES OF SOFTWARE TESTING
When we talk about software testing we should always remember that these are divided into several types according to their particular purpose.
1. Test of Configuration
Test whether the software works on the hardware to be installed.
2. Test of Installation
Tests whether the software installs as planned, on different hardware and under different conditions such as little memory space, network interruptions, installation interruptions etc.
3. Integrity test
Test software’s resistance to failures (robustness).
4. Test of Safety
Tests whether the system and data are securely accessed, only by the author of the actions.
5. Functional Testing
It tests functional requirements, functions and use cases. "Does the application do what it should do?"
6. Test of Unity
Test an isolated component or system class.
7. Test of Integration
Test whether one or more combined components work satisfactorily. Some say that the integration test consists of several unit tests.
8. Test of Volume
Tests the behavior of the operating system with the "normal" volume of data and transactions involving the database over a long period of time.
9. Test of Performance
The performance test is divided into 3 types:
- Cargo test
- Tests the software under normal conditions of use. E.g.: response time, number of transactions per minute, concurrent users etc.
- Stress test (as explained above)
- Stability Test: Test whether the system keeps functioning satisfactorily after a period of use.
10. Test of Usability
Test focused on user experience, consistency of interface, layout, access to functionality etc.
11. White Box and Black Box Tests
Basically, white box testing involves the code and the black box, no.
12. Regression Testing
Retain a system or component to check if any recent modification has caused any unwanted effects, and make sure the system still meets the requirements.
13. Test of Maintenance
Tests if the change of environment did not interfere with the functioning of the system.
What is the difference between a load test and a stress test?
Interesting article: http://www.devmedia.com.br/testes-de-performancecarga-e-stress/26546
– Artur Trapp
It’s kicking the server till he’s mad at you.
– Jéf Bueno
Watch Domingão do Faustão
– Karl Zillner