Skip to content

Instantly share code, notes, and snippets.

@romanofski
Last active July 28, 2019 05:04
Show Gist options
  • Save romanofski/af63e895b68c80d24d97d051264dd734 to your computer and use it in GitHub Desktop.
Save romanofski/af63e895b68c80d24d97d051264dd734 to your computer and use it in GitHub Desktop.

Automated acceptance tests for terminal applications

Acceptance testing is a method of testing an application from a users point of view. In this talk, I will demonstrate our approach to full automated testing a terminal email application (purebred) with the tasty-tmux framework. I'll elaborate the benefits and trade-offs, what problems we experienced and how we solved them.

Automating acceptance testing is challenging, because the tests can not adapt to timing sensitive changes in the application. This causes random failures and unresponsiveness. The longer these problems are ignored, the more value diminishes and investment increases for workarounds and fixes.

The audience will get a better understanding of what it takes to automate timing sensitive tests. The concept, problems and solutions are language agnostic, applicable to any terminal application.

Project URL: https://github.com/purebred-mua/tasty-tmux

Abstract

  • What is acceptance testing and why should you automate it
  • What other choices of testing did we have and why we haven't chosen them
  • The effort we put into automating our tests
  • What we gained with automating our acceptance tests
  • Future ideas

Audience

Developers

Private abstract

Many tools and frameworks exist to automate testing for web applications. Nothing was available when we started to work on our terminal based email application.

We implemented a new framework (tasty-tmux) to fully automate our acceptance tests for purebred, a terminal email client. With the implementation of the automated user acceptance tests came random failures which we addressed individually. We optimized the framework for speed afterwards. Now we are able to find regressions before they're merged into the code base providing us more stability with bug fixes and implementations of features.

All of this knowledge we gained will be given through this talk to the general public which can learn from our mistakes, and use the tasty-tmux framework to test their own projects.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment