Contact us

Software Testing

Software Quality is one of the most crucial aspects of the Software Development Life Cycle (SDLC). Property tested products reduce time-to-market and meet customer expectations. That’s why our QA teams employ cutting-edge automated testing approaches in order to minimize manual intervention.

We can describe our approach in a few easy steps:

Access product requirements.
Automate all repetitive cases by using the Test Pyramid Model.
Integrate all tests into the Continuous Integration (CI) system.
If one of the tests fails, Pull Request (PR) does not proceed.

The result:

Bugs are detected before even pushed to the main code stream.
Distribution builds are more stable without any major bugs.
As most processes are automated, time for manual testing is used more efficiently.

Mobile testing:

We follow the best practices from Google, Apple, and Facebook by using native solutions:


Stub all backend APIs for stability; XCTests with XCAssert for test writing.

Design scalable test architecture with Page Object by using the latest Swift practices:

  • Protocols
  • Etensions
  • Generics

Espresso testing

Stub all tests with OKHTTP library for stability; Use JUnit 4 with Kotlin for writing tests. Design scalable test architecture with Page Object by using the latest practices in Java/Kotlin:

Design scalable test architecture with Page Object by using latest practices in Java/Kotlin:

  • Dagger2
  • Idling resources
  • Idling resources

Web testing

We build custom web automation solutions, based on customer current technology stack:



WebDriver 3.0

Cucumber, Rspec


WebDriver 3.0/ Capybara/ SitePrism



WebDriver 3.0


SauceLabs and BrowseStack integration

Upon client request, we can use BDD Cucumber framework for better test readability. We can even do an integration with cloud solutions such as BrowserStack and SauceLabs.

API testing (End point testing)

Our team is not only involved in Web or Mobile functional testing but in the API testing as well. Testing API is much faster than implementing functional tests and because it cheks the whole client logic without UI, it covers most data permutations. At Limestone Digital, we are big fans of the Test Pyramid Model, hence we usually build an entire solution for functional and API testing in a single bundle. And if any of those tests are failing, we could easily determine whether this is happening on the client or service side.

Load testing

Does your application, server, or service deliver the appropriate speed? How could you know? Are you 100-percent certain that your latest feature hasn’t triggered a performance degradation or memory leak? There's only one way to verify - and that's we regularly check the performance of your app.