Case Study · Field Service Management

Field Service Software Testing: Web and Mobile QA for a SaaS Platform

Web, Android and iOS testing for job and dispatch software used by HVAC, plumbing and electrical contractors, with a manual test pass before every release.

engagement / field-service-saasCompleted
Client
Field service management SaaS company, unnamed
Platform
Web app for contractors, plus mobile apps tested on real Android and iOS devices
Team
2 SprintSynergy QA engineers, alongside 10 frontend and backend developers
Engagement
Nearly 2 years
Manual Testing
1,000+ test cases in Excel, on web, Android and iOS
Web Automation
Playwright with TypeScript: the smoke tests
Mobile Automation
Java with Selenium, Appium and Maven: smoke scripting begun
Test Sheets
Smoke and regression
No Blocker or Critical Bugs in a Release
1,000+Manual Test Cases
3Platforms Tested: Web, Android, iOS
50+Automated Smoke Tests
Nearly 2 Yearsof Release Testing

The Result

What the Client Got

  • Releases with no blocker or critical bugs, for nearly two years. Each release got a manual test pass before it went to production.
  • Web and mobile covered. The web app, plus the Android and iOS apps, tested by hand on real devices.
  • 50+ smoke tests automated. A Playwright and TypeScript framework runs the web smoke tests, and a Java and Appium framework for mobile was started with the first smoke scripts.
  • Seven kinds of bugs found, including a report that kept showing deleted data and invoice numbers that ignored the business's own settings.

Overview

One Connected System, on Every Screen

For nearly two years, SprintSynergy handled QA for a field service management SaaS platform. HVAC, plumbing and electrical contractors use it to run their business: customers and their locations, jobs and dispatch, estimates, invoices, purchase orders and reports, with mobile apps for the field. We wrote 1,000+ test cases in Excel, kept separate smoke and regression sheets, tested releases before they went to production, documented the product's features and ran end-to-end scenarios across the web app. We also tested the Android and iOS apps by hand on real devices, automated the web smoke tests in Playwright with TypeScript and set up a mobile automation framework in Java with Selenium, Appium and Maven, where we began scripting the mobile smoke tests.

Sample Scenario, Simplified: 7 Steps Passed, 1 Failed

The Problem

A Break Shows Up Somewhere Else

Field service software is one connected system. A customer record feeds the job, the job feeds dispatch, and all of it feeds the reports and the invoices. A change in one module can break another, and the break often shows up somewhere else: a report that still shows deleted data, or a numbering setting that never reaches the next invoice.

Testing each screen on its own misses bugs like these. They show up when a scenario runs from start to finish.

What We Tested

Every Module, Web and Mobile

  • Customers and Locations: creating customers, and adding, changing and deleting their locations.
  • Jobs and Scheduling: creating jobs in the jobs queue, assigning them to field employees and dispatching them.
  • Estimates, Invoices and Purchase Orders: creating and editing each, including the starting number setting for each document type.
  • Purchase Orders in Depth: required fields, input checks, navigation and receiving inventory into a warehouse.
  • Reports: scheduling reports such as Jobs by Tech, checked against the data behind them.
  • Projects, Office Users and Imports: each with its own test cases.
  • In-App Messages: the message icon and the support chat status.
  • Mobile Apps: the Android and iOS apps, tested by hand on real devices.

How We Built It

Test Sheets, Release Passes and Two Frameworks

  1. 1,000+ manual test cases in Excel, organized by module: customers, estimates, jobs and scheduling, office users, invoices, projects, purchase orders and imports.
  2. Separate smoke and regression sheets. The smoke sheet is a quick check that a build works. The regression sheet covers the wider product.
  3. Release testing: manual testing of each release before it went to production, with no blocker or critical bug allowed through.
  4. Manual testing of the Android and iOS apps on real devices, alongside the web app.
  5. Feature documentation: written documentation of the product's features.
  6. End-to-end scenarios that follow data across modules. One example: create a customer with a location, create and dispatch a job, check the Jobs by Tech report, then change and delete the location and check the report again.
  7. Web smoke automation: a Playwright framework in TypeScript, with the smoke test cases automated.
  8. Mobile automation: a framework in Java with Selenium, Appium and Maven, where scripting of the mobile smoke tests began.

What We Found

Seven Kinds of Bugs

Reports · Jobs by Tech

Reports Kept Deleted Data

In an end-to-end scenario, a location deleted from a customer's profile still showed against the job in the Jobs by Tech report. A report like this is only useful if it matches the records behind it.

Invoices · Estimates · Purchase Orders

Starting Numbers Did Not Apply

Saving a new starting number for invoices, estimates or purchase orders did not update the Next Number. New documents would not follow the numbering the business had set.

Purchase Orders

Purchase Orders Saved Without Required Fields

A new purchase order could be saved with required fields left empty.

Purchase Orders · Inventory

Invalid Input Accepted

Purchase order fields accepted and saved invalid characters, including the warranty expiration date when receiving inventory into a warehouse.

Purchase Orders · Navigation

Back Button Went to the Wrong Page

Going back from a purchase order opened Reports or another part of the product, instead of the purchase order list.

In-App Messages

Chat Status Did Not Change

The message box kept showing "We'll return today at 07:00 PM" after 7:00 PM, instead of switching to an active status.

In-App Messages · Purchase Orders

Message Icon Missing

The message icon did not appear on the purchase orders page.

What We Delivered

Handed Over

  • 1,000+ manual test cases in Excel, organized by module.
  • Smoke and regression test sheets.
  • Manual release testing before each production release.
  • Manual testing of the Android and iOS apps on real devices.
  • A Playwright and TypeScript framework with the web smoke tests automated.
  • A mobile automation framework in Java with Selenium, Appium and Maven, with the first smoke scripts.
  • Documentation of the product's features.
  • End-to-end scenarios across customers, jobs, dispatch and reports.

Questions

Frequently Asked Questions

By module, end to end and on every platform it runs on. On this platform we kept 1,000+ test cases by module, from customers and jobs to invoices and purchase orders, ran end-to-end scenarios that follow one customer from creation through dispatch to the reports, and tested the Android and iOS apps.

Shipping a SaaS Product on Web and Mobile?

Book a free 30-minute QA strategy call. A written QA plan follows within 48 hours.

Book a Free QA Strategy Call