Товарищи, что вы знаете про мутационное тестирование и как оно может помочь сделать ваш софт более качественным? А хотите узнать? — Тогда вам сюда! В этом выпуске у меня в гостях Алексей Денисов, скромный программист, автор системы мутационного тестирования mull. Помимо этого, Алексей занимается разработкой ПО для луноходов.
Вначале мы обсудили теоретическую часть:
- Что такое мутационное тестирование?
- Какое положение оно занимает среди других видов тестирования?
- В чем суть мутационного тестирования?
- Как изменение кода программы может помочь найти в ней дефекты?
- Как устроен процесс мутационного тестирования ПО?
- Какие есть сложности и проблемы?
Так же Алексей рассказал про историю появления проекта mull. Как он сам пришёл к идее написания инструмента для мутационного тестирования, как устроен mull, как LLVM помог в реализации проекта. Обсудили различные вопросы, связанные с оптимизацией, распараллеливанием тестов, диагностикой проблем и прочим.
Не обошли мы стороной и разработку ПО для луноходов. Алексей рассказал, как он попал в компанию, и какую роль в этом сыграло мутационное тестирование. Вкратце рассказал про компанию и чем она занимается, что за софт они пишут и как они его тестируют.
Ссылки на ресурсы по темам выпуска:
- Блог и твитер Алексея Денисова
- Доклад Алексея на FOSDEM’17 “Mutation Testing: Leaving the Stone Age”
- Mull. Mutation testing system built on top of LLVM
- White paper “Mull it over: mutation testing based on LLVM”
- Статья в блоге Алексея “LLVM-based Mutation Testing System. Request For Comments”
- Выпуск #4 подкаста «Подлодка» с участием Алексея
- Страница на Википедии “Мутационное тестирование”