In the Internet era, performance of a software product or service is as critical as its functional accuracy. End users expect information to be available at the click of a button and that the application provides a reliable user experience. Therefore companies are looking for good Performance and Load Testing Services in the market. Most of the software systems do well during engineering cycles and beta releases. However, as the product or service goes into production, the end users suffer as the software system is not able to deliver expected services with desired efficiency. For mission critical software systems, such situations are business blockers.
AFour works hand in hand with the clients from the conception phase of the system for performance engineering activities. We assist clients in defining performance business goals of the product in terms of reliability, availability and scalability. This is further broken down into non-functional requirements (NFRs). If NFRs are already available we categorize them in terms of reliability, availability and scalability attributes of the system.
Once the NFR requirements are frozen, the next phase to work on is architecture performance review. This phase consists of reviewing deployment architecture. Deployment architecture has many key elements which can impact the efficiency of the system. Areas such as storage technology, storage redundancy, storage hardware, application services architecture (sticky sessions, chatty interfaces, application services technology vs. underlying OS platform), cloud services factor, efficiency trade-off for security, etc. are few key things to review. AFour assists its clients in reviewing architecture / design of the system and identify potential improvements areas.
Good implementation of software system is as significant as efficient design. During implementation phase, one needs to closely review implementation of good programming practices (proper use of OOPS philosophy, careful use of static / global variables, controlled process of changing the public interfaces, efficiency of database indexing, etc.) and effective documentation of external APIs. We consult in code reviews and provide periodic reports.
Based on deep experience of performance testing of n-tier distributed enterprise applications, we understand how performance is built into the system right from driving clarity in performance requirements, usage patterns, covering tool selection and simulation of workload, up to performance analysis, tuning and monitoring. We proactively assist our clients in identifying and addressing performance bottlenecks by testing their product or service in production like environments so as to ensure that the system does not give surprises if put to stress with large number of users and for extended duration while in production. With deep expertise in all major tools and with .NET, J2EE/Open source technologies, we are able to provide a very good performance test cycle experience to our clients on all Windows and Linux platforms, covering all aspects related to reliability, availability and scalability.
Our expertise spans the following Performance Engineering activities:
- Performance Strategy (Review Business Objectives, Establish performance goals / requirements and planning for Scalability, Availability, Reliability)
- Architecture Performance Review
- Implementation / Code Review
- Performance Testing
- Performance Monitoring
- Stress Testing
- Soak Testing
- Capacity Planning and Scalability Testing
- Performance Analysis and Identification of Bottlenecks
- Performance Tuning
- Performance Benchmarking
Tools and Technologies:
HP LoadRunner, JMeter, Microsoft VSTS, AppPerfect, OpenSTA are few key tools we use.
Profilers, Database and Web server Monitoring tools
We also build custom tools as per the need for simulating required performance / stress conditions