Can anybody explain the difference about soak and stress testing? I googled about them and found that both are about to test the software beyond its limits. Is it right for both testing strategies?
According to the various answers found here and on Wikipedia, soak testing seems to be a test of normal sustained use for a long period of time. This is done to to ensure bugs or memory leaks do not appear after what is considered to be a relatively "normal" usage period.
Stress testing is also a form of reliability test that tests beyond normal usage of the application for a shorter time to see if it breaks or not. In that category you can typically find testing how the application behaves when a lot of concurrent users are connected and system resources start to lack (memory, processing time, bandwidth, etc.)
The tests can be similar or the same the main difference is the goal.
In stress testing the objective is to find at what point the system will brake. The goal is to push it until it doesn't work anymore, in order to establish the maximum capacity of the system.
In soak testing the goal is totally different. The goal is to determine if something is not going to work as early as possible. This test is trying to expose a bad design.