Уровень 4
— Смоук-тесты запускаются автоматически перед отправкой нового кода.
— Смоук-тесты проходят за время меньше 30 минут.
— Нет недетерминированных тестов.
— Общее тестовое покрытие не меньше 40%.
— Тестовое покрытие только малыми тестами не меньше 25%.
— Все важные фичи покрыты интеграционными тестами.
Уровень 5
— Добавить тест к исправлению всех нетривиальных багов.
— Активно использовать доступные средства анализа.
— Общее тестовое покрытие не меньше 60%.
— Тестовое покрытие только малыми тестами не меньше 40%.
Сначала мы обкатали программу на нескольких командах разработчиков, которые и так были позитивно настроены по отношению к тестированию. Они хотели улучшить свои навыки. Когда мы сбалансировали механизм наград, мы объявили открытым большое соревнование за бейджи по всей компании. Наша программа была принята на ура.
Продать нашу идею оказалось не так сложно, как казалось. Команды разработки только выигрывали от этого:
— Они получали поддержку от опытных тестировщиков, которые согласились стать наставниками тест-сертификации. Ресурсы тестирования всегда в дефиците, а присоединившись к программе, команда получала больше тестировщиков, чем ей было положено официально.
— Они получали помощь экспертов и учились лучше писать малые тесты.
— Они видели, какие команды лучше проводят тестирование, и понимали, у кого стоило учиться.
— Они могли похвастаться перед другими командами своим уровнем тест-сертификации.
Вся компания могла следить, как команды разработки зарабатывают уровни.
Руководители разработки успешных команд получали хорошие отзывы от руководителей направления продуктивности разработки. Команды, которые выражали скептицизм и подтрунивали над участвующими, на самом деле рисковали. Если ресурсы тестирования так сложно получить, зачем лишний раз разочаровывать ребят из направления продуктивности? Конечно, не все шло гладко. Дадим слово людям, которые руководили этой программой.
Интервью с основателями программы тест-сертификации
Марк Стрибек — руководитель разработки Gmail. Нил Норвиц — разработчик, занимающийся инструментами ускорения разработки. Трэйси Бялик и Расс Руфер — разработчики в тестировании, одни из лучших инженеров Google. Эти четверо помогали запустить программу тест-сертификации.
Расскажите, с чего началась тест-сертификация? Какие проблемы команда пыталась решить при запуске? Совпадают ли они с теми, которые вы решаете сегодня?
Трэйси: Мы хотели изменить культуру разработчиков Google, чтобы тестирование стало ежедневной обязанностью каждого программиста. Вначале мы просто делились положительным опытом в тестировании и уговаривали команды писать тесты. Некоторые заинтересовались, но не могли решить, с чего начать. Другие включали совершенствование тестирования в список квартальных целей. Обычно это так и оставалось только на бумаге, как постоянные обещания себе похудеть в следующем году. Хорошая, достойная цель, но если ее формулировать абстрактно, не удивляйтесь, если она так и не сможет обрести плоть.
Программа тест-сертификации помогает спланировать совершенствование тестирования по шагам. На первом уровне мы формируем основу: настраиваем фреймворк для запуска автотестов и собираем данные о тестовом покрытии, выявляем недетерминированные тесты и создаем пакет смоук-тестов, если полный тестовый пакет выполняется долго.