среда, 28 марта 2012 г.

Ящик автоматизации или пандора тестирования



Ученики уже сидели в классе, когда неожиданно в открытую дверь въехал старый учитель на своем не менее старом Харлее. Поставив его на подножку возле доски, он смахнул пыль с рукава кожаной косоворотки и, исподлобья посмотрев поверх темных очков, сказал:
- Пробки. Пришлось поторопиться, чтобы приехать вовремя.

И в это время зазвенел звонок. Урок начался.

* * *

- Сегодня мы поговорим немного об автоматизации тестирования. Но перед тем, как начать, я хочу узнать, что вы уже знаете о ней. - сказал учитель и, прищурившись, обвел взглядом класс.

Невысокого роста “ботаник” за первой партой стал нервно листать свой конспект. Было понятно, что он уже слышал что-то об этом и даже записал, т.к. он записывал все, что говорил учитель на лекциях. И вот в лекции по процессам тестирования он нашел:
- “Это невиданная сила, это дракон, запертый в ящик пандоры” - неуверенно пробормотал “ботаник”, т.к. он не совсем понимал смысла этих слов, но ничего другого не было в его конспекте.

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

В классе воцарилась тишина. Ученики не знали что ответить, а если и знали, то боялись сбить с мысли учителя. Именно в такие минуты учитель готовил бомбу замедленного действия, которая способна разорвать мозг ученика потоком новой информации.

Учитель начал медленно объяснять:
- Берите ручки и пишите, кто не может писать - рисуйте, кто не умеет рисовать - запоминайте, кто не может запомнить - просто поймите. Автоматизированное тестирование - это с одной стороны всепобеждающее добро, но с другой - это все разрушающее зло. Все зависит от того, с какой стороны к нему подойти и за какую голову взять. Оно экономит время, перебирая миллионы значений за считанные миллисекунды, предупреждает о регрессии, может быть запущено столько раз сколько нам это будет угодно, хоть после каждой сборки новой версии на локальном окружении разработчика, но одновременно с этим автоматизация съедает время и ресурсы, требует глубокого анализа до начала написания автоматизации, требует поддержки и наличия специалистов, как в настоящем так и в будущем, оно может завести в тупик при необдуманном подходе. Вам это понятно?

- Да! - хором ответили завороженные ученики.

Но тут, как-будто проснувшись, они начали поднимать руки.
- Учитель, а почему автоматизация съедает время? - спросила рыжеволосая веснушчатая отличница.

- Хороший вопрос. Ответ следует из того, что тестирование процесс бесконечный. Сценариев тестирования существует бесконечное множество. Всегда будут находиться новые ошибки, которые будут требовать написания новых регрессионных тестов. Увеличивая покрытие, мы берем время на разработку и отладку тестов, увеличиваем время прогона всего тестового набора и время на дальнейшую поддержку. Именно поэтому автоматизация пожирает все, что ей отвели и ей всегда этого будет мало. Надеюсь я понятно объяснил? - спросил учитель, доставая свой портсигар из внутреннего кармана куртки.

Не успел он достать папироску, как послышался еще один вопрос:
- Какой анализ нужен до начала автоматизации и зачем он вообще нужен, когда можно просто взять, сесть и начать “авто-ма-ти-зи-ро-вать” по тест кейсам. - спросил долговязый студент с галёрки.

- Какой шустрый, - сказал учитель. - Видал я таких деятелей, понаписывают, “по-на-авто-ма-ти-зи-руют”, а потом прыг и вон из компании, а другим сиди и перелопачивай килограммами. ВСЕГДА надо думать перед тем как что-то делать. Во-первых, автоматизация - это разработка приложения, но для тестирования. Что уже говорит, что вы должны иметь опыт в программировании, знать необходимые паттерны, фреймворки, инструменты и многое другое. А главное -  вы должны уметь применять все это вместе. Во-вторых, даже если вы знаете как все надо делать, делать надо в соответствии с требованиями, анализ которых ОБЯЗАТЕЛЬНО надо проводить, особенно это важно при автоматизированном нагрузочном тестировании.

- Учитель, это все понятно, а в чем проблема с поддержкой и специалистами? - спросил основательно откормленный толстяк из среднего ряда

- Вместо ответа я приведу вам 2 примера из своей практики. - сказал учитель.
- Пример 1. Большая организация замахнулась на тестирование бизнес цикла. Разбила все на части, провела анализ всех звеньев и начала писать тесты. Сделав автоматизацию каждой отдельной части, начала тестировать полный цикл. НО! Он не отработал, оказалось, что пока писались тесты, изменились сами приложения. Они начали править тесты, затратили не один месяц, но так и не сделали полную автоматизацию до конца. Уж очень длинной была цепочка. Уж очень мало было выделено специалистов для автоматизации.

Пример 2. Компания с достаточно большой и сильной командой тестировщиков и автоматизаторов сделала серьезную систему автоматизации тестирования. Все было хорошо, пока не начали сокращать людей. И до того досокращались, что в течении года не осталось никого, кто бы разбирался в этой системе автоматизации тестирования. И вот надо внести изменения в неё, а некому. Начали искать специалистов, а не так-то это и просто, и не так-то это и дешево. В итоге, систему забросили на свалку.

- Учитель, вы говорите о недостатках, а какие плюсы у автоматизации? - недоумевая спросил кучерявый ученик.

- Уфф... Очевидное под носом, а они спрашивают. Думайте. Основной плюс - тестирует машина, а не вы. Огромное количество данных может быть проверено в считанные минуты, когда вручную вы на это потратите часы-дни-недели. Тест всегда будет выполняться однообразно, исключая человеческий фактор. Из версии в версию вы будете уверены, что проверенный автоматизированно функционал работает.
Однако вы всегда должны следить за балансом “черного и белого”, преимущества всегда должны перекрывать недостатки. Думайте и анализируйте перед тем как начать автоматизацию и смотрите вперед во время написания.

В этот момент зазвенел звонок. Урок окончен...

* * *

- Вам все стало ясно насчет автоматизации? - спросил учитель, садясь на свой Харлей и прикуривая папироску.

- Да, - ответили хором ученики.

Но их уже не было слышно за ревом мотора мотоцикла... Когда дым рассеялся, учителя уже не было видно за горизонтом.

Отправить комментарий

Условия копирования публикаций:

Все публикации в данном блоге являются частной собственностью авторов. Любое копирование информации допускается только при условии указания имени автора и активной ссылки на источник.