Quickly Testing Legacy C++ Code with Approval Tests - Clare Macrae - CppCon 2019

  Рет қаралды 4,457

CppCon

CppCon

Күн бұрын

CppCon.org
-
Discussion & Comments: / cpp
-
Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2019
-
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 loop?
Whether Legacy code for you means "old code", "code without tests", or "code you wish to redesign for new features or unit-tests", this talk will enable you to become productive and work safely, quickly.
The simplicity, convenience, ease-of-use, power and flexibility of Llewellyn Falco's "Approval Tests" approach has long been proven in a dozen programming languages. And now all this is now available to C++ developers too!
Clare will present a small but surprisingly effective C++11 library for applying "Approval Tests" to cross-platform C++ code - for both legacy and green-field systems, and with a range of testing frameworks.
She will describe its use in some real-world situations, including how to quickly lock down the behaviour of legacy code. She will show how to quickly achieve good test coverage, even for very large sets of inputs. Finally, she will describe some general techniques she learned along the way.
Attendees will discover some quick, practical techniques to use for common challenges, such as testing outputs containing dates and times, that can be applied very easily using Approval Tests.
-
Clare Macrae Consulting Ltd
Director
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](github.com/approvals/Approval..., 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](www.ccdc.cam.ac.uk/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.
-
Videos Filmed & Edited by Bash Films: www.BashFilms.com
*-----*
Register Now For CppCon 2022: cppcon.org/registration/
*-----*

Пікірлер: 2
@xiongding
@xiongding 2 жыл бұрын
Our team needs this product!!!
@colinjohnson5515
@colinjohnson5515 Жыл бұрын
Great talk Claire Macrae! Thank you. I was looking for ways to test a legacy C++ product but I really like this approach for any legacy application. Great talk
Practical C++ Modules - Boris Kolpackov - CppCon 2019
1:01:16
아이스크림으로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 60 МЛН
НРАВИТСЯ ЭТОТ ФОРМАТ??
00:37
МЯТНАЯ ФАНТА
Рет қаралды 2,6 МЛН
Add APPROVAL TESTING To Your Bag Of Tricks
19:23
Continuous Delivery
Рет қаралды 15 М.
How to Test Legacy Code (Emily Bache)
1:30:49
Tech Excellence
Рет қаралды 1,1 М.
Great C++ is_trivial - Jason Turner - CppCon 2019
54:53
CppCon
Рет қаралды 26 М.
From Legacy Code To STATE OF THE ART DEVELOPMENT
20:04
Continuous Delivery
Рет қаралды 22 М.