Разделы портала

Онлайн-тренинги

.
Доверяйте автоматизации
19.05.2017 16:26

Автор: Баз Дийкстра (Bas Dijkstra)

Оригинал статьи: http://www.ontestautomation.com/trust-automation/

Перевод: Ольга Алифанова


Сейчас большинство людей уже в курсе, что цель автоматизации – это НЕ "поиск багов". Конечно, неплохо, когда ваши автотесты ловят баг-другой, которые иначе просочились бы в продакшн. Но пока искуственный интеллект автоматизации не достиг больших высот (я имею в виду, действительно БОЛЬШИХ), тестировщики куда более искусны в поиске багов, чем самые умные, развитые автоматизированные решения для тестирования.

Нет, добавочная ценность автоматизации совсем в другом – в уверенности. Из оксфордского словаря:

"Уверенность: твердое убеждение в надежности, правдивости, или способности чего-либо или кого-либо."

Набор хороших автотестов вселит в ваших заинтересованных лицах (включая, но не ограничиваясь тестировщиками) уверенность, что тестируемая система дает результат или выполняет определенные функции так, как предварительно было определено (правильно ли было определено – тема для другой дискуссии). Даже после кучи изменений, фиксов, патчей, рефакторингов и других обновлений.

Эта уверенность появляется благодаря доверию:

"Доверие: чувство или уверенность, что чему-то или кому-то можно верить/полагаться на него."

До недавних пор я не знал о мелких различиях между уверенностью и доверием. То, что оба слова одинаково переводятся на датский ("vertrouwen"), слабо помогло. Затем я увидел это объяснение от Михалиса Павлидиса:

"Обе концепции относятся к ожиданиям, которые могут привести к разочарованию. Однако доверие – это способ, благодаря которому достигается уверенность. Доверие – основа уверенности. Другой способ достичь уверенности – это контроль. Если вы уверены в том, что ваш друг вас не предаст – вы или доверяете ему, или контролируете его."


Возвращаясь к разработке ПО, и, в частности, к автоматизации тестирования: уверенность в качестве компонента ПО достигается через контроль над его качеством или через доверие к нему. Так как мы говорим про автоматизацию, а конкретнее про автоматизированное выполнение предопределенных заранее проверок, я думаю, можно сказать, что мы можем отбросить идею, что автоматизация способна активно контролировать качество конечного продукта. Это оставляет вариант с доверием (и уверенностью как результатом) к тестируемой системе как первичной цели автоматизации тестирования. В целом идея сделать автоматические проверки единственно ответственными за создание и поддержку этого доверия достаточно плохая, но если все сделано правильно, они очень помогают.

Однако для того, чтобы ваши проверки поддержали это доверие, вы должны, в свою очередь, доверять им. Проще говоря: я не уверен в качестве системы, если это качество было (даже частично) оценено при помощи автотестов, которым я не доверяю.

К счастью, есть ряд способов повысить доверие к автотестам. Вот три из них.

  • Запускайте ваши автотесты как можно раньше и чаще, чтобы убедиться, что они быстры, стабильны, и не превращаются в драма-квин, постоянно нуждающихся в поддержке.
  • Проверяйте ваши проверки, чтобы убедиться, что в них все еще хранится создающая доверие сила, которую вы закладывали, когда создавали их. Исследуйте вопрос – возможно, применение техник вроде мутационного тестирования вам поможет.
  • Пусть ваши автотесты сообщают о том, что именно они намерены тестировать, и о результате (что получилось? Что пошло не так?) внятно и однозначно. Об этом я еще напишу, но, думаю, всем понятно, что если предназначение теста неясно, а результат загадочен, ценность такого теста снижается.

Автоматизация тестирования – это отличная штука, но она практически бесполезна, если ей нельзя доверять. Убедитесь, что вы доверяете своей автоматизации, прежде чем добиваться уверенности в качестве вашей системы.

Обсудить в форуме