Почему QA не должен отвечать за всё качество
У нас уже давно и очень успешно работает AI-агент, который анализирует задачи и формирует чек-листы для тестирования. Учитывает требования, контекст, возможные риски и неочевидные сценарии.
Недавно задумался: а почему мы используем этот подход только для QA?
Если посмотреть на наш процесс, тестирование участвует в обеспечении качества практически на всех этапах работы с задачей.
1. Требования. QA анализирует их полноту, ищет противоречия, уточняет сценарии и потенциальные риски ещё до начала разработки.
2. Разработка. Здесь QA практически не участвует. Разработчики реализуют функциональность, проводят технические проверки и code review. Но отдельного механизма проверки полноты реализации с учётом QA-экспертизы у нас пока нет.
3. Тестирование. QA проверяет реализацию, исследует нестандартные сценарии, ищет дефекты и оценивает риски.
4. Релиз. QA участвует в оценке готовности продукта, анализирует оставшиеся риски и помогает принять обоснованное решение о выпуске.
Получается интересная ситуация.
На этапе требований мы помогаем предотвратить ошибки. На этапе тестирования находим их. А непосредственно во время разработки практически не используем накопленную QA-экспертизу.
И мне кажется, это хорошая точка для улучшения.
Ведь в процессе разработки задача может обрастать деталями. Появляются уточнения, дополнительные условия, меняется логика. Разработчик реализует всё по частям, и в конце не всегда просто быстро проверить, что ничего не упущено.
Поэтому сейчас хочу расширить нашего AI-агента.
Помимо подробного чек-листа для тестировщика, он будет формировать короткий чек-лист для разработчика по конкретной задаче.
Например, при добавлении фильтрации заказов агент может напомнить о сочетании фильтров, сбросе пагинации, сохранении параметров и обработке пустого результата, если эти сценарии применимы к задаче.
Не десятки универсальных пунктов и не полноценное тестирование. Несколько конкретных проверок, которые помогут разработчику оценить полноту своей работы перед передачей задачи в QA.
Причём подход хотим распространить на frontend, backend и мобильную разработку.
Идея не в том, чтобы QA контролировал каждый шаг разработчика. Наоборот, хочется передать часть нашей экспертизы непосредственно в процесс разработки, сохранив самостоятельность команды.
Сейчас, когда все стремятся оптимизировать процессы и ускорить разработку, важно не забывать одну вещь: можно сколько угодно ускорять тестирование, но если задачи постоянно возвращаются на доработку, мы просто быстрее гоняем их по кругу.
Гораздо интереснее сокращать сами возвраты, а не только время проверок.
Посмотрим, как пилот повлияет на возвраты задач и количество дефектов, обнаруживаемых на тестировании.
Для меня здесь главный принцип: качество должно обеспечиваться на каждом этапе, а не становиться ответственностью одной команды в конце процесса.
А как у вас QA взаимодействует с разработкой до передачи задачи на тестирование? Есть какие-то интересные практики?