A speedy and responsive site is directly correlated with higher levels of visitors and better user experience. Performance testing plays a vital role. It is the only way to determine an application’s behaviour at different levels of load and users. But can performance tests be conducted manually like functional tests? Let’s look into this aspect of performance test through this article.
Author: Sushma S, Senior Software Test Engineer in an MNC.
Delivering a quality product on time with complete Test coverage for the requirements is essential for any application.
Manual and Automation Testing have always existed as two parallel modes to help testers achieve this functional testing goal. However, manual test execution is time-consuming, expensive and is prone to errors. Automation testing addresses these basic challenges and helps in saving time and effort over time.
A few major advantages of Automation Testing:
Similarly, Performance Testing results are more reliable and relevant when automated test scripts are used rather than manual test cases.
Below is a representation of a Performance testing process:
Both Performance testing and Automated testing are indeed some forms of executing simple checks by using different tools. Generally, Test Automation is usually a combination of functional testing, load testing, and performance testing.
When a functional test automation script is adjusted to not only record pass/fail results but also to note the render/records times of objects/screens, the functional test automation script then gets converted into a performance monitor.
The whole process goes as below:
A diagram that explains the combination of 'Performance' and 'test automation' can be as below:
Performance Testing - Can it be done manually?
Now the question is, 'Can Performance testing be done only through automated test scripts or can it be done manually too?'.
As we have read earlier, reliable results are obtained when there is a combination of performance and automation testing. However, there are cases when the performance of the application can be determined manually also.
Let us understand this with the help of some examples:
Example 1: Suppose a short performance test needs to be evaluated by a tester. This is for an AUT within a given time limit. Then, a sanity manual test can be evoked to find out the page load or response time.
Example 2: Similarly, consider a java based web application. In order to execute performance test manually, in this case, many active sessions of the same application should be open for testing. Manually, we can determine the number of active sessions, number of database connections open, and number of threads running. The amount of CPU time, the memory being used and few more parameters can also be obtained.
Tivoli Performance Viewer (TPV) can be installed to monitor the parameters of interest. Usually, the test is performed by deploying the application on the server, accessing the application from various client machines and allowing multiple threads to run.
How is Tivoli Performance viewer used to monitor the performance of any WebSphere Application Server (WAS):
WebSphere Application Server (WAS) is nothing but a software product or framework that hosts java based web applications. The results/data obtained by performance monitoring using Performance viewer for any WAS can be analysed to find out the factors that contribute to large response times. Following which, these factors can be modified to improve performance.
The procedure that is followed to record the performance is as below:
Below diagram explains how it is done:
Check box for 'Server1' is selected. On clicking 'Start Monitoring', performance viewer starts monitoring application server’s PMI data.
The below diagram explains different settings and views displayed in the left panel, that are available for 'Server1' under Tivoli Performance Viewer. The right panel describes the data monitored for the parameter selected in the left panel.
As can be clearly seen from the diagram, the following parameters data can be viewed and analysed:
Example 3: An application’s performance needs to be evaluated for its bandwidth under different available network speeds.
Example 4: A quick preliminary database performance test can be done manually to get the necessary information.
So, in all these instances basic performance testing can be done without any automation scripts. You might need some diagnostic or monitoring tools, but 100% automation is not absolutely necessary.
When can Manual Performance Tests help?
A non-performance tester can quickly perform manual tests without having to go through the process of setting up automated test suites or even without test automation knowledge.
This is very helpful when:
What not to do?
A performance tester can also simulate the performance test conditions from several different client machines by reaching out the servers individually, but that will not be a very effective way of running a performance test. So, keep in mind that not everything can be done manually.
Performance testing is considered one of the most technical and complex types of software testing. It requires extensive technical knowledge. Automated test scripts bring in a tremendous value to the testing effort. But we should not stop exploring new ways to be combined with performance testing. Manual testing can play a helping part.