Techknow Study

Early Performance Testing

11:41:00 AM vikas 1 Comments Category :

Early Performance Testing

Performance Testing is the most crucial phase of any project before the project goes live, and most of the performance testers will have very tight project schedules and less duration for performance testing the applications. The most important phase, which is of high significance to the end user, will have limited time and there are times when project go live dates are postponed due to performance bottlenecks.

Of course, the application is functionally stable by the time performance testing is planned/scheduled.  The application bottlenecks/issues can be detected only during performance test executions and detecting them at a later phase is always expensive.

With many emerging technologies and many options to present data (Dashboard View etc.,), end user always expect web pages to respond very quickly within the specified SLA without any delays or server errors.  Most of the performance bottle necks could be due to the bad database calls, too much synchronization, memory leaks, poorly designed web front end, load balancer issues and incorrect estimates for the workload distribution (load profile). Identifying all these issues at a later part will definitely have costly impact and Development team cannot afford to build performance considerations into the application lifecycle.  It will be very difficult for developers, data base administrators to look into the code and make necessary changes at the end when code is completely developed and signed off.

Keeping all the above factors into consideration, performance testing these days is started in parallel with code development.  In this way, performance testing will always remain an additional, integral requirement in the software development.  Agile methodology is adopted in place of traditional waterfall model for software development life cycle.   Performance testing activity needs to be part of agile methodology to make sure performance testing is done at component level and all the individual components meet the specified SLA before they are integrated to one application.

API Performance Testing process


Advantages of starting performance testing in early phases along with development will ensure the below objectives:
Ø  Gather all performance-related requirements and address them during system architecture discussions and planning.
Ø  Work closely with end users and stakeholders to define acceptance criteria for each performance story.
Ø  Involve performance testers early in the project, in the planning and infrastructure stages.
Ø  Ensure that the performance testers work on test cases and test data preparation while developers are coding for those user stories.
Ø  Get performance testers to create stubs for any external Web services.
Ø  Deliver each relevant user story to performance testers as soon as the functional testers sign it off.
Ø  Provide continuous feedback to developers, architects, and system analysts.
Ø  Share performance test assets across projects and versions.
Ø  Schedule performance tests for off-hours to increase the utilization of time within the sprint.
Ø  Performance testing at the code level.
Ø  Performance testing or response time testing for newly developed features during the sprint.


Early performance testing is implemented successfully in one of the projects where in the entire API calls are tested individually until the specified SLAs are met. This helped in identifying typical problems at until level such as dead lock detection, memory leaks, query optimization; architecture issues etc., and ensure the API response time meets the associated e2e SLA requirements.
Below is the approach in which API calls are tested while code development is in progress and performance testing team in collaboration with Development team successfully tuned the performance of individual modules and after all the code fixes are done, a successful integrated load test is executed. This method was successful as it was cost effective and all the teams understood the requirements and the outcome was a perfectly tuned application, which has responses within the specified SLA. 

RELATED POSTS

1 comments

  1. Hi VIKAS JOSHI,

    Very nice post. Thanx for sharing this article with us. Performance testing plays an important role in software testing as it will help in determining the load and performance of the applications when used by 20-30 users at the same time.

    Performance testing is essential during the development cycle of any software application,particularly while considering future iterations and releases. Performance testing should hold utmost priority for the developers and testers at every step of the agile process. Therefore, it is imperative to understand how to integrate such testing properly in an agile workflow.

    Software Testing companies in usa

    ReplyDelete