Hotwire Tech Blog

Scribes from Hotwire Engineering


If you are already using Jenkins for continuous integration you can easily adopt for iOS as well. You can use all the features of creating jobs like build, unit tests, smoke, and regression as well as creating pipelines. This blog helps you to get started with setting up iOS CI and also running tests in parallel on multiple computers.


Discard Old Builds

Discard Old Builds controls how long we would like to keep the build records such as console output, artifacts, reports. This can be achieved by one of two criteria


Having a good automation framework is fundamental for a quality app. There are several tools available for mobile test automation but not any framework which ties them all together. At Hotwire we wanted to create a test automation framework for Mobile Native apps which will help us to scale & maintain tests as we add more features to the apps. We came up with following requirements for the frameworks:

  1. Test scenarios should be written in plain English so that it is easy to maintain & most importantly tests should reflect end user perspective.
  2. Tests should scale. Able to slice and dice tests based on features set & level of testing like…


What is Kotlin?

Kotlin is a new programming language from JetBrains, the maker of the world’s best IDEs.

  • Kotlin compiles to JVM bytecode or JavaScript.
  • Kotlin is a statically-typed programming language.
  • Kotlin is designed to interoperate with Java code and is reliant on Java code from the existing Java Class Library.
  • The syntax is lean and intuitive. It is a lot like Scala but much more comprehensible for Java developers. It does not completely destroy your OOP paradigm vision.
  • It does not enforce you to use only functional or only OOP style, which really simplifies the migration for existing Java…



Hotwire follows microservices based architecture. However, splitting the core functionality into microservices is a challenge in itself. Integration testing is very important to make sure all the microservices work well together. That is a primary reason why teams here rely more on test automation. Test automation make it easier for teams to be agile and deliver faster. However, just writing lot of integration tests is not enough; making them deterministic really matters. If tests are non-deterministic, SEs/SDETs end up spending more time…


Image comparison in automated testing

powered by ImageMagick

Latest trends suggest that image comparison in automated testing is becoming popular due to growing number of mobile devices and complexity of their UI. At almost every Selenium-related event, speakers mention such tools such as Applitools Eyes or Sikuli, even more so at Appium-related conferences and meetups. So, why is everyone excited about image comparison?



Speed of deployment has always been an important metric used to judge how often and efficiently an app release can be. As we’ve mentioned in our previous post iOS Continuous Deployment , here at Hotwire, we spend a lot of time figuring out ways to reduce release regression time. Two pockets of opportunities are – reduce the test writing/execution time and another is to reduce test framework maintenance time. In the past, it has been a challenge to keep our functional testing framework robust enough with every iOS release considering third party tools(in our…



There are many test case management tools available out there but if the automation team does not select the right tool, they could face one or more of the below limitations:

  • Cannot update test case execution results automatically.
  • Cannot easily integrate with our defect tracking tool.
  • Cannot create custom reports.
  • Cannot notify test results to interested parties automatically.


The Android team has used various tools for managing test cases ranging from simple ones like Word, Excel to full blown ones like TestLink. With Word, Excel etc. we can just list the…