• Products
    Test Automation
    BitBar Cloud-Based Mobile App Testing Solution CrossBrowserTesting Run Selenium & Appium Tests in the Cloud TestComplete Automated UI Functional Testing
    App Stability Management
    Bugsnag Mobile, Web, & Backend Error Monitoring
    Performance Testing
    LoadNinja Automated UI Performance Testing
    API Lifecycle
    AlertSite Global, Synthetic API Monitoring ReadyAPI  API Testing  API Performance  API Virtualization SwaggerHub Design, Model, & Share API Definitions
    Test Management + BDD
    CucumberStudio Design Features & Tests Using BDD   Zephyr Standalone & Jira Test Management
    Collaboration
    Collaborator Code, Document, & Artifact Review
    Open Source
    Cucumber Open Validate Specs Against Your Code SoapUI Create & Execute API Test Automation Swagger Interact With API Resources VIEW ALL PRODUCTS
  • Solutions
    Solutions
    API Lifecycle Microservices Service Virtualization DevOps Code Quality Agile Testing Continuous Testing
    Automated Testing Functional Testing API Testing End-to-End Testing Performance Testing Test Management API Monitoring
    See All Solutions
    Integrations
    CI/CD Source Code Management Collaboration Cloud
    See All Integrations
  • Resources
    Support
    AlertSite AQTime Pro BitBar Collaborator CrossBrowserTesting CucumberStudio LoadComplete LoadNinja QAComplete
    ReadyAPI SwaggerHub TestComplete TestEngine TestLeft Zephyr Enterprise Zephyr Squad Zephyr Scale
    New Support Case
    Manage My Cases
    Education
    Case Studies Webinars eBooks
    Academy Community Docs
    Blog
    Recent Posts
    The 5 Gaps You May Not Realize Are Missing From Your UI Test Automation Strategy
    SmartBear + Test Management for Jira: Delivering testing solutions and BDD within Jira
    About Us
    News
    Partners
  • Careers
  • Cart
  • EN DE
  • Login
  • Try Any Tool for Free
    TestComplete ReadyAPI CrossBrowserTesting BitBar LoadNinja TestLeft AlertSite Collaborator AQTime Pro CucumberStudio SwaggerHub Zephyr Enterprise Zephyr Squad Zephyr Scale Capture for Jira

VersaTrans

VersaTrans RP is a school bus planning and routing solution designed to help school districts manage their bus scheduling needs effectively. The current version builds on 20 years of providing scheduling solutions for the K-12 market.

VersaTrans completely rewrote their flagship application during their latest upgrade. During development they noticed performance issues and decided they needed a good profiling tool, so they turned to AQtime for help.

Redesigning a Flagship Application

"We completely rewrote our company’s flagship application, VersaTrans RP, when we went from version 8 to version 9. We went from using file based database with many data elements in flat files to a client server application designed with Microsoft SQL Server as the back end datastore," said Chris Miller, from VersaTrans.

"While moving from a design geared for flat file storage to client/server, many of the processes that we used to manipulate data had to be rewritten from scratch. Mid-way through the development process, we started noticing some performance issues that would make the new version difficult to use."

Slow Batch Assignments

Chris said that they had performance issues in one particular operation: their batch assignment feature. "To grossly oversimplify what our batch assignment does, it allows the user to take a selection of students and generate all of the transportation requests (which bus stop, which school) and assign each request to a school bus route. Under the hood, a lot of calculations get done on both the client side and on the database side. For a mid sized school district, a batch assignment of 15,000 students was taking about 10 to 12 hours to run on a Pentium 4 box. With the previous version, the equivalent action would take abut an hour to run. The 10 fold increase in execution time made the new version a non-starter. We had to fix this."

VersaTrans Needs a Profiler Tool

"We knew we had to refactor some code; but the question was "Where do we start?". We needed to measure how long the various functions used by the batch assignment took to execute and how often they were called. That's when we knew we needed a profiler tool and we needed a good one," said Chris.

Searching for the Right Tool

Chris said that once they determined that they needed a profiler tool, they checked Borland's newsgroups. "I read a lot of good things about AQtime from SmartBear. I downloaded the trial version and I was blown away with the scope and breadth of the features. This was the profiler tool that we had to get."

Working with AQtime

"We work with the AQtime in two modes. First, we use it on new or updated code to make sure that we have not introduced any performance bottlenecks. This is fairly straight forward, we run the code and examine the execution times and percentages," said Chris.

"We also use it when we have a module or feature that needs to run more efficiently. We do an initial pass on the code to find bottlenecks and with that information we decide if we need to optimize the existing code or if we need to rethink how we are doing things."

"In either case, we use AQtime to drill down into specific functions that we are using to see where we need to concentrate our efforts. It’s seeing where you need to optimize and what you don’t need to touch. AQtime is invaluable for this type of work!"

AQtime Produces Results

Chris said that AQtime allows them to determine where they need to address performance issues. "We are able to prioritize our optimization efforts, based on the analysis provided by AQtime. For example, we were able to take the batch assignment process that took 10+ hours to run and get it under 15 minutes. Using the results from AQtime was significant in getting that optimization done."

"If you are doing any coding where performance time is an issue, then AQtime is your best friend. The ability to profile execution time down to individual lines of code is invaluable. It allows you to tell which modules or functions need to be optimized and which ones don’t"
— Chris Miller, from VersaTrans

Saving Time and Implementing More Features

"AQtime has saved us too many hours to count. It takes the guesswork out of optimization. We can measure performance changes as we make them. The time that we save using AQtime is spent implementing more features," said Chris.

Chris said that the flexibility that AQtime provides is a great time saver. "The flexibility in how you can profile your code was a great time saver. We didn’t have to profile every line of code; we could do it by the module or the function. We only needed to see what we needed to see."

VersaTrans
Key Products

Webinar
SoapUI 101: The Beginners Guide to Functional API Testing
Ever needed a step-by-step walkthrough on functional testing in SoapUI? We heard you, and
Webinar
6 Steps to Achieving Performance Nirvana in 2016
Performance improvements are multifaceted: they can be challenging and sometimes
1 hour 2 minutes
Webinar
6 Steps to Become a .Net Performance Expert
To get you started, we are offering a tutorial-like webinar for testing performance
60 minutes
  • 0
  • 1
  • 2
Explore SmartBear Products
  • AlertSite
  • AQTime Pro
  • BitBar
  • Bugsnag
  • Capture for Jira
  • CrossBrowserTesting
  • Collaborator
  • Cucumber for Jira
  • CucumberStudio
  • Cucumber Open
  • LoadNinja
  • ReadyAPI
  • SoapUI
  • Swagger
  • SwaggerHub
  • TestComplete
  • TestEngine
  • TestLeft
  • Zephyr
  • About Us
  • |
  • Careers
  • |
  • Solutions
  • |
  • Partners
  • |
  • Responsibility

  • Contact Us
  • |
  • +1 617-684-2600 USA
  • |
  • +353 91 398300 EUR
  • |
  • +61 391929960 AUS
  • |
© 2022 SmartBear Software. All Rights Reserved.
  • Privacy
  • |
  • Terms of Use
  • |
  • Site Map
  • |
  • Website Terms of Use
  • |
  • Security
Close

Choose your product to log in to

AlertSite
CrossBrowserTesting
CucumberStudio
LoadNinja
QAComplete
SwaggerHub
SmartBear Community
Case Management Portal
License System