As a tester, your
job is to deliver the best possible feedback on the promptness of an
application in the development cycle as early as possible. Obviously, in the
real business scenario, deadlines are always tight and testing starts later
than it should. There are a few simple principles that can help make your performance testing projects more
effective.
- A reasonably accurate result at present is worth more than a very accurate result later on. It is well understood that modifications become costlier later in the project. As a result, the sooner the performance issued are found, fixing them seems the easier.
- Test broadly instead of deeply. It is better to test a broad range of scenarios in a very easy manner than to test a few test cases very intensely. In the beginning of a project, a fairly accurate simulation of the real world is all right. Time spent obtaining each test case to unerringly mimic the predicted scenario or testing many slight variations of the real world scenario is better spent a wide range of scenarios is tested.
- Testing should be performed in a controlled environment. Testing without good configuration management and dedicated servers will yield test results that cannot be reproduced. Hence, in such a case you cannot measure the improvements correctly when the system’s next version is ready for testing.
How to make a load testing program successful
Based on input
from partners and customers, here’s a list of best practices that will assist load testers
to make a quick start on the way to
a quality load testing program.
First, find out
the most frequent workflows in the application that is being tested. For an
existing application, you need to identify this by checking analytics and
server logs to get exposed to the most common scenarios.
When you are
recording, confirm that you test the application in a production-like setting,
including factors like SSO, SSL, firewalls and load balancing. This is crucial
for simulating exact end-to-end behaviour. You are recommended to record
scripts from all of the ordinary user environments including different mobile
devices and browsers.
2. Improving a script with validation and correlation
Find and replace
all dynamic values in the recorded script, for instance, session-id as well as
security tokens. If these values are not regenerated at the time of test
execution, most of the systems will not function properly. This procedure is
called Correlation.
Ensure that you
stress the application’s back-end instead of only the cache servers, by
restored static values in place of parameters that will be defined at run time
automatically. Validation logic needs to be added to the script in order to confirm
that the results obtained under load are consistent.
Create practical
runtime scenarios which take into consideration the number of users, the test
scripts, network limitations¸ browser types and schedule. The SLA or set of
criteria should be defined for a successful performance test. Keep away from
the temptation to extrapolate outcome, one server with 100 users could not run
like two servers with 200 users. Testing the equivalent of your complete
production stack should be performed.
It’s imperative
to verify all the application parameters along with the number of connections,
transaction times, response time as well as throughput. There are several
reasons why an application breaks under load and the actual cause is not always
easy to predict.
For effective performance testing, server
side statistics needs to be analyzed side-by-side with client side statistics.
Also, remember to search for any discrepancies that may indicate a problem.
Authenticate results against recognized industry rules to fast identify
possible bottlenecks.