Skip to content

ACCU York [Apr 2019] - Quickly testing legacy code

Photo of
Hosted By
Gareth L.


This month we welcome Clare Macrae to ACCU York.

Talk Detail:
You've inherited some legacy 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 painful loop?

Clare will present a powerful approach to solve exactly this problem, in both legacy and green-field systems: Llewellyn Falco's "Approval Tests". In addition to its existing implementations for Python, .NET, Java, NodeJS, Swift and others, there is now a C++ version.

She will describe the use of Approval Tests in some real-world situations, including how to quickly lock down the behaviour of legacy code. She will show how to rapidly achieve good test coverage, even for very large sets of inputs. Finally, she will also describe some general techniques I learned along the way.

About Clare Macrae:
Clare has worked in software development for over 30 years. She is 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 has now returned to C++ and Qt, working on the popular 3D crystal structure visualisation program Mercury, which she was the original author of.

Since 2017, Clare has used her spare time to work remotely with Llewellyn Falco on ApprovalTests.cpp, to radically simplify testing of legacy code.

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

Thank you York Science Park for providing us a place to meet
Supported by YorkDevelopers
ACCU York is an ACCU local group
Department of Computer Science, University of York
Deramore Lane, University of York, Heslington, York, YO10 5GH · York
How to find us

Room CSE/082&083

Google map of the user's next upcoming event's location