7–9 November 2016: Conference & Tutorials
9–10 November 2016: Training
Amsterdam, The Netherlands

Need for speed: Accelerate automation tests from three hours to three minutes

Emanuil Slavov (Falcon.io)
13:45–14:25 Monday, 7/11/2016
Average rating: ****.
(4.27, 15 ratings)

Prerequisite knowledge

  • Basic programming knowledge
  • Familiarity with test automation and deployment pipelines

What you'll learn

  • Explore Komfo’s journey to drastically accelerate automation test execution time

Description

All automated tests (other than unit) are too slow and unreliable for the fast development pace every company craves, and there are many external dependencies and factors outside of your control, so when these tests fail, it’s hard to pinpoint the exact reason why.

Komfo had automated tests running for more than three hours every night. The execution time just kept growing unrestricted, and the tests were getting more unstable and unusable due to a feedback loop. At one point, the continuous integration build for the tests was red for more than 20 days in a row. Regression bugs started to appear undetected in production. The Komfo team decided to put an end to this madness—after considerable effort and dedication, the same tests currently run for only three minutes.

Emanuil Slavov tells the story of how Komfo achieved 60x faster tests. Along the way, Emanuil touches on topics such as test automation framework design, hermetic servers, optimizing test environments for speed, architecture for testability, DevOps collaboration, virtual containers, reliable tests when depending on services outside of your control, and the joys and pitfalls of parallel execution.

Having automated tests run that fast completely changes the software development game. There is no need to wait for the nightly tests to complete, and there are no more smoke tests. You can run all tests, get fast feedback, and release instantly without falling behind. In the near future, this will be standard practice, much like infrastructure as code or continuous integration are today. In order for a company to stay competitive, all existing automated tests—static code analysis, unit tests, API, and UI—should complete in less than five minutes after every code, database, or infrastructure change.

Photo of Emanuil Slavov

Emanuil Slavov

Falcon.io

Emanuil Slavov is Director of Engineering at Falcon Social, where he deals with the ever-changing landscape of social networks and works with dev, ops, and test teams to implement automated testing, static code analysis, custom build systems, development tools, continuous integration, and delivery pipelines. For more than 15 years, Emanuil has specialized in software quality in industries including online money transactions, secure file transfers, email and network security, and antifraud, as well as various legacy and backend applications.