Компания Twitter открыла для всеобщего пользования инструмент под названием Diffy — свободную программу для анализа исходного кода HTTP-сервисов с целью выявления багов, тестирования и сравнения результатов без необходимости писать большое количество постороннего кода (юнит-тестов).
Diffy ищет баги в Apache Thrift и HTTP-сервисах. Программа требует минимальных усилий для установки и начала работы.
Разработчики из Twitter объясняют сложности при тестировании веб-сервисов. Дело в том, что здесь количество функций растёт с каждым коммитов. И каждый раз приходится писать новые юнит-тесты. К тому же, юнит-тесты покрывают отдельные маленькие фрагменты функциональности, но не общее поведение системы.
По мере возрастания сложности системы становится все сложнее покрыть всю функциональность юнит-тестами. Поэтому нет другого выхода, кроме как использовать инструменты для автоматического тестирования. Diffy — один из таких инструментов, которые используют в компании Twitter.
Основной подход Diffy заключается в сравнении результатов тестов с разными условиями, с выявлением полезных данных в информационном шуме. На диаграмме показана логика работы алгоритма.
В репозитории на Github опубликованы подробные инструкции по установке и использованию программы, а также примеры ее использования.