«На конференциях по тестированию обсуждают сдвиг влево. Действительно важная вещь, она заставляет нас точнее рассчитывать свои усилия, а не создает спрос на фейковые отчеты. А я хочу обсудить другой сдвиг: сдвиг тестировщиков вниз, к модульным и компонентным тестам.
На протяжении многих лет мы говорили, что нам необходимо по-другому декомпозировать тестирование. Так вот, хорошая автоматизация редко строится на том, что вы считаете end-to-end-потоками. Хорошая автоматизация должна обеспечить скорость и точность обратной связи, и гранулярность как по времени (результаты теста должны быть немедленно доступны для разработчика, внесшего важное изменение), так и по месту. Быстрое определение источника проблемы экономит всем массу усилий.
Сегодня я говорила об этих двух сдвигах, касаясь темы ИИ в тестировании — как о причине сдвига вниз. По моему мнению, мы будем двигаться не просто влево, а «влево и вниз».
Думаю, нам понравится, что ИИ будет делать много рутинной работы вместо нас. Я также думаю, что осознание компаниями необходимости этих сдвигов поможет им лучше понять, какие инструменты и идеи они автоматизируют.

Что это за сдвиг вниз, о котором я говорю? Я полагаю, что должна быть очень быстрая доставка и тестирование коммитов кода, делающая тестирование этого кода очень быстрым и непрерывным. Давайте помечтаем. Сдвиг вниз нечасто обсуждается.

Сдвиг вниз — это о том, что TDD-разработка великолепна по сути, но ее возможности ограничены квалификацией каждого отдельного разработчика в команде. Многие разработчики хорошо, с каждым днем все лучше, умеют работать и повышать свой уровень. И это со временем позволит командам чаще и регулярнее принимать сгенерированный современными ИИ-инструментами код.
На примере проектов, которые не планировались по TDD, и с неизвестным покрытием юнит-тестирования. Мы видели отчет, в котором говорилось, что 77% багов, которые все-таки попали в продакшн, несмотря на все наши усилия, можно было воспроизвести с помощью юнит-тестов. Это означает, что существует большой потенциал для улучшения QA-процессов на уровне юнит-тестирования.
Мне нравится концепция «исследовательское юнит-тестирование». Она является способом расширить обучение ИИ, чтобы не пропускать эти 77%.
Test-Driven Development и Exploratory Unit Testing могут быть удобными и взаимозаменяемыми подходами. Исследовательское юнит-тестирование побуждает нас потратить свое время на то, чтобы разобраться в пробелах, особенно в легаси-коде, потому что предшественники как правило оставляют нам недостаточно полные тесты, не отражающие их логику.
Сдвиг вниз заставляет команду думать о тестах низкого уровня — модульных, компонентных, и тестах подсистем, и заставляет тестировщиков давать декомпозированную обратную связь.»