We have spent a good amount of time discussing the Acumatica Cloud xRP platform in general and drilling into a number of topics, demonstrating its power & utility over the course of the past nine months. We discussed customization via White Labeling & Creating & Validating Fields. We have discussed Web Services & Debugging your applications. We have discussed the various opportunities for ISV Partners along our Integration Spectrum – among a number of other topics.
One of the often neglected arts in software development is Performance Testing. This is a topic that is dear to my heart – as I have worked earlier in my career bringing many Enterprise ISV Partners into our performance labs at Microsoft. At our recent Summit, I had a conversation with Rahul Gedupudi, CEO of Kensium and found that he too was very interested in the topic. So of course, I asked him to write about it for us in the context of our platform. He was very gracious – as he always is – agreeing to deliver the following guest post for our developer & partner community.
ENHANCE PRODUCTS THROUGH PERFORMANCE TESTING
The Acumatica Framework delivers a set of core services and tools that are important for building and deploying large business applications. All these tools and services are generic and transparent to the application developer. This means that the application developer need not worry about implementing them during the design or application programming stages. With Acumatica’s development framework & Acumatica Extensibility Framework (AEF) provide endless possibilities for independent software vendors (ISVs) to build solutions on the Acumatica platform. In addition to creating add-on solutions, the AEF can also be leveraged to customize a customer’s installation. Some of the core features of AEF include:
These AEF features, along with others that provide powerful extensibility support, allow developers to build scalable Acumatica-based applications without worrying about interactions with third-party customization. Along with solid structural flexibility, the AEF gives ISVs a number of advantages, including:
Compatible with C#.NET compliant code, the AEF provides endless solution capabilities for ISVs building their third-party products and extensions on Acumatica. The framework delivers faster development times and access to built-in tools that help reduce errors in design, coding, and more.
With complex business logic varying between applications, performance and scalability can be unpredictable. Products should be tested in every case to ensure an optimized final output.
One of the most common challenges that ISVs face in optimizing their products is the handling and processing of large amounts of data. These pieces of data can include stock items, customers, orders, shipments, and other essential data that need to be exchanged between Acumatica and third-party applications. Issues related to these factors should be properly addressed to guarantee consistent levels performance at all reasonable capacities.
DISCOVERING DEGRADATION WITH LOAD TESTING
Before products are put through a comprehensive QA process, there’s no guarantee that they run flawlessly under all conditions. While many common tests check to see that the product runs seamlessly in all necessary areas for a single user, load testing ensures whether the product continues to function similarly when several users are placing the system under specific, expected conditions.
In short, load testing exposes bottlenecks and potential design flaws that lead to degradation. These types of results can save you from costly reworks that may be necessary after an inadequately tested product goes to market.
Load testing results give product developers useful insights regarding interactions inside the product environment, performance analytics, and product optimization tasks. These insights can be used to make adjustments that improve the scalability of the application and ensure that you’re doing everything in your control to release a stable, functional product.
There are several other types of testing that are similar to load testing, with the most popular of these probably being stress testing. While load testing is only meant to simulate expected loads and gather performance results, stress testing pushes systems to the point at which they fail to function properly and begin to break.
Stress testing can yield results that help increase product capacity, but these results often appear at levels far beyond realistic peak loads. If a traditional load test yields the results you would expect from a stress test and a breaking point is revealed, the system’s load capacity must increase dramatically to avoid degradation and breakdown in regular use.
REQUEST PROFILER: ACUMATICA’S BUILT-IN TESTING TOOL
Acumatica’s built-in Request Profiler tool provides a way for development teams to test their product capacity. It measures performance of logic built for different functionalities and screens. Some of the components the Request Profiler can measure to help pinpoint degradation and bottlenecks include:
TYPICAL INPUTS, OUTPUTS, AND VARIABLES
While every load test should be considered its own entity and parameters should be based on requirements specific to the company and product, here are some of the more common inputs, outputs, and variables.
|Input:||The information that is assembled for the test|
|Output:||The information that is yielded from the test|
|Variables:||The specific information sought in outputs|
|-Number of users||-Behavior of product||-Database touch-points|
|-Critical scenarios||-Performance Data||-Execution Times|
|-Parameters||Threshold data||Server communication|
|-Workload models||-Bottlenecks||-Traffic variation|
|-Feedback methods||-Product finality||-Peak capacity|
IMPROVING PERFORMANCE THROUGH INSIGHTS
Through countless hours of testing our Acumatica products, we have uncovered several insights which we have shared below. While we are unable to point out exactly how Acumatica products should be coded to your specific requirements, here are some things we’ve learned that we often apply to our products today, and should help you in your development as well.
To find insights regarding your products, it is recommended you follow Acumatica’s testing procedures. These should be followed to maintain compliance with Acumatica’s coding standards and optimal functionality on the platform. You should test your products using the built-in Acumatica features such as web services, Integration Services, Test SDK, Request Profiler, etc. Outlined below are some of these tools and the usage.
Following Acumatica’s coding standards and testing protocols has allowed us to reduce performance issues in our applications. By incorporating the above mentioned solutions into our development and review processes, we have been improving the overall quality of our products, and pass on this value earned from refined processes to our clients.
For information on how we at Kensium Solutions can help you bring your Acumatica products to customers, visit our Acumatica Partners page.
Also please watch Rahul’s Video discussing developing on our Platform here.
Our promise to you:
1. We will never give your e-mail address to anyone else for any reason.
2. You can opt-out at any time.
Signing up for newsletters indicates you agree with our terms of service
If you decide that you no longer want to receive a newsletter, you can unsubscribe by clicking the "Unsubscribe" link, located at the bottom of each newsletter.