~/talk

Automated acceptance tests for terminal applications

Talkat linux.conf.au 2020 · 2020-01-13..01-17· [testing]
links:none on file
slides:none on file

Automated acceptance tests exercise a terminal MUA called purebred by driving windows with tasty-tmux, taking periodic screenshot captures and asserting on terminal text. Tests expose timing flakiness: tmux control-sequence differences, races when sessions restart, terminal color and line-wrap variance, and fragile regex matching. Mitigations include a persistent keepalive session, running the suite in CI before merges, logging flaky failures with terminal dumps, and preferring richer parsed output over raw regexes.

AI-written summary · about

  1. 0:00Intro
  2. 0:29Terminology Motivation • What is the Test Framework • Pitfalls
  3. 7:42ACCEPTANCE TESTING • Test whether the system/feature fullfills it's acceptance criteria • testing from the users point of view (e.g, user stories) can be any type (unit-, integration-, system tests)
  4. 8:48HOW IS THE TESTING CARRIED OUT? Manual vs Automated • Humans are very good at finding outliers or differences • automated is "infinitely" repeatable and fast
  5. 10:03ACCEPTANCE TESTING TERMINAL APPLICATIONS Selenium doesn't exist for terminal applications • support for command line interface apps, but less for text UIS
  6. 10:37UNIT TESTING THE TERMINAL APPLICATION UI usually straight forward for parts
  7. 14:47HOW DO WE USE TMUX FOR TESTING
  8. 29:28PREVENTATIVE MEASURES
  9. 30:42HAVE CI RUN ALL TESTS BEFORE MERGE
  10. 31:47TIME TO DEBUG FAILURES improves debugging skills of your engineers better ability to reason out a complex system
  11. 32:41CONFIDENCE THAT THE PULL REQUEST DOES NOT REGRESS THE APPLICATION BEHAVIOUR
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.