Video details

Quickly Testing Qt Desktop Applications with Approval Tests - Clare Macrae - CppCon 2020

English --- You've inherited some Qt GUI code: it's valuable, but it doesn't have tests, and it wasn't designed to be testable, so you need to start refactoring. But you can't refactor safely until the code has tests, and you can't add tests without refactoring! How can you ever break out of this loop?
The talk will review the challenges and potential sources of error that are specific to code that uses the Qt cross-platform graphical user interface library, and then describe how to guard against them.
There are many options for unit-testing Qt code, including Qt Test, Google Test and Catch. As well as covering those, and general principles for applying them, I will present a small but surprisingly effective C++11 library for applying "Approval Tests" to cross-platform Qt code.
Finally, the talk will briefly cover some other tools that can aid with inspecting and maintaining Qt code, which can in turn improve testability.
Attendees will discover some quick, practical techniques to help write unit tests and integration tests for Qt code.
--- Clare has worked in software development for over 30 years, and in C++ for 20 years.
Since 2017, she has used her spare time to work remotely with Llewellyn Falco on [ApprovalTests.cpp](, to radically simplify testing of legacy code. She has enjoyed this so much that she recently went independent, to focus even more on helper others work more easily with legacy code.
Clare was until recently a Principal Scientific Software Engineer at Cambridge Crystallographic Data Centre, which releases data and powerful software for scientific education, research, and streamlining the design and manufacture of new medicines.
From 2016 to 2018, she lead the team that replaced their 30 year old database format and Fortran code. She then returned to C++ and Qt, working on the popular 3D crystal structure visualisation program [Mercury](, which she was the original author of.
When not thinking about supporting teams to streamline development, testing and releases, she spends time with family and friends, and enjoys the Raspberry Pi, folk music and cinema.
--- Streamed & Edited by Digital Medium Ltd - [email protected]