понедельник, 24 мая 2010 г.

Как мы НЕ автоматизировали тестирование

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


Итак, ситуация: большой проект, написанный на JAVA; большая распределённая команда - бОльшая часть разработчиков и тестеров на нашей стороне, аналитики и практически всё начальство (тестерское и не только) на стороне немцев. 

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

Вывод-1 (элементарный): если автоматизацией не заниматься, то никакой автоматизации не получится, даже если специально для неё купить инструмент :)

Вывод-2: при выборе инструмента важно оценить, насколько он подходит (или может быть адаптирован) под тестируемое приложение.

Вторая попытка была гораздо интереснее, возможно, потому, что инициатива исходила не от немцев (но с их одобрения). В качестве инструмента был найден Marathon - бесплатный и, вроде, заточенный под Java. Также был выделен программист, который не только писал скрипты сам (по предоставленным ему сценариям), но и описывал какие-то общие и доступные всем функции и методы. На нас никто не давил, мы могли писать скрипты по своим нуждам и своему разумению, и  - о, чудо! - даже заработали несколько первых моих скриптов. К сожалению, продлилось это всё недолго - сначала на проекте перешли на новые версии компонентов, и скрипты начали ломаться; а потом об автоматизации снова заговорили немцы и Marathon сразу забраковали, поскольку он бесплатный, что как минимум означает потенциальное отсутствие поддержки данного инструмента. И выделенного программиста по каким-то причинам забрали. Примерно так вторая попытка и закончилась, а выводы мои таковы:

Вывод-3: не всегда хорошо, когда используемый инструмент бесплатен; в определённых условиях бесплатные инструменты могут быть сочтены неприемлемыми.

Вывод-4: хорошо, когда созданием фреймворка для автоматизации занимается человек, имеющий представление о программировании.

Вывод-5: автоматизация должна быть своевременной (либо глобальные изменения в проекте должны быть своевременными :) )

Итак, третья попытка - началась с того, что про автоматизацию снова заговорили немцы. Ими был выбран и куплен инструмент - теперь TestPartner. И они даже вызвали несколько наших тестеров в Германию - для прохождения обучения. Звучало неплохо, однако по приезду какой-то немецкий практикант, разбиравшийся с этим инструментом уже около месяца, рассказал нам, как TestPartner установить и запустить, на чём обучение, можно сказать, было закончено :) До конца командировки от нас потребовалось показать немцам, что мы в принципе можем написать какие-то скрипты. И какие-то скрипты мы написали :)

Вернувшись в Минск, мы стали ждать задание по автоматизации, которое через какое-то время и получили - в виде каких-то тестовых сценариев. Увы, не совсем ясны были цели написания скриптов - то ли они должны были проверять функциональность, то ли замерять время её выполнения, но скорее то и другое сразу :) При этом наш инструмент автоматизации и запущенные в нём скрипты отчаянно тормозили. К тому же некоторые из полученных сценариев из-за их содержания было очень сложно автоматизировать. Вдобавок ко всему выяснилось, что если человек без опыта программирования может чудесно выполнять ручное тестирование, то с написанием скриптов у него могут возникать проблемы. Усугублялось же всё ещё и тем, что ни для кого из нас не была уменьшена обычная (немалая) нагрузка, т.е. времени на автоматизацию было крайне мало. 

Итого - у нас были разнообразные трудности, при этом немцы постоянно требовали от нас результаты. Самым реальным в данной ситуации казалось начать с того, чтобы объяснить немцам, что на автоматизацию нужно выделенное время. И в конце концов немцы отреагировали - приняли решение снять задачу автоматизации с нашей группы и возложить её на каких-то немецких практикантов - насколько мне известно, временных и бесплатных :) 

С тех пор судьба автоматизации стала для меня загадкой - происходящее на проекте никогда не было прозрачными для всех. В некогда регулярных отчётах немецкого начальства я встречала информацию о количестве автоматизированных сценариев - почти неизменном и незначительном. Возможно, кто-то что-то автоматизировал, и возможно - даже на том уровне, который немцев и удовлетворил, однако меня по этому поводу терзают смутные сомнения :) А я делаю для себя следующие выводы:

Вывод-6: хорошо, если сотрудники проходят обучение перед началом внедрения автоматизации, но важно, чтобы обучение было настоящим.

Вывод-7: будущим автоматизаторам желательна хотя бы минимальная подготовка в смысле программирования.

Вывод-8: необходимо, чтобы у автоматизации были чётко поставленные цели.

Вывод-9: желательно автоматизировать сценарии, пригодные для автоматизации.

Вывод-10: на реализацию автоматизации необходимо специально выделенное время.

Вывод-11 (главный): к автоматизации следует подходить серьёзно, это по сути самостоятельный проект, успешная реализация которого требует значительных усилий и хорошей организации.

P.S. Ох и сложно после отпуска войти снова в обычное русло, тем более - начать писать что-то чуть менее легкомысленное, чем впечатления от отпуска в своём ЖЖ :)

15 комментариев:

  1. Хорошая заметка.
    По-поводу Вывода 3: "не всегда хорошо, когда используемый инструмент бесплатен; в определённых условиях бесплатные инструменты могут быть сочтены неприемлемыми."
    Бесплатный инструмент, вовсе не означает, что его создатели не готовы делать что-то для тех, кто готов заплатить за изменения или фикс багов. А скорее даже наоборот, если большой "коробочный" иструмент имеет баг, то починят вам его не раньше следующего релиза. А от "бесплатного" иструмента фикса можно добиться через разумное короткое время, заплатив только за этот фикс.

    ОтветитьУдалить
  2. Спасибо :)

    Касательно вывода-3 - возможно, вы правы, и все эти страхи - просто заблуждение\стереотип. Но так или иначе, от инструмента всё равно пришлось отказаться, хотя есть вероятность, что отказались совсем не по тем причинам, которые я знаю :)

    ОтветитьУдалить
  3. Надоже! Почти дословно что и у нас на проекте ))) только у нас не немцы, а канадцы)

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

    ОтветитьУдалить
  4. Вот это да! :)
    Ну, у нас всё это тянулось гораздо дольше, чем три года - то ли немцы медлительнее канадцев, то ли нашим немцам это было нужно меньше, чем вашим канадцам :)

    Интересно, чего сможет добиться этот нанятый специалист, и каково же будет продолжение "нашей" истории на вашем проекте... :)

    ОтветитьУдалить
  5. На счет вывода 3, когда читал сам хотел на это указать, но Алексей (LeshaL) оказался проворнее :) или прочитал заметку раньше :)
    На счет выбора того или иного инструмента встречался с такой ситуацией, что тот кто пропихивает платный дорогой инструмент, в итоге получает откат, что является самым действенным критерием при выборе :)
    А вообще, что платные, что бесплатные инструменты имеют свои плюсы и минусы.

    ОтветитьУдалить
  6. И еще, в дополнении ко всему.
    Для того чтобы начать автоматизацию нужен человек-драйвер(!!!) - опытный, съевший на этом пути не одну собаку гуру автоматизации, способный научить и направить на верную дорогу в процессе внедрения, написания и поддержки автотестов. Т.к. даже пройдя перед автоматизацией курсы/тренинги, вы окажетесь не готовы и будете наступать на грабли.

    ОтветитьУдалить
  7. Да, Алексей, причины принятия решений типа «откатов» приходят на ум, однако точно такое вряд ли когда узнаешь. Работая на этом проекте, я уже привыкла к тому, что реальные причины принятия тех или иных решений высшим руководством, могут быть очень непонятными с точки зрения меня и видящихся мне нужд проекта, и очень часто вообще неозвучиваемыми :)

    Насчёт плюсов и минусов платных и бесплатных инструментов вообще - с этим не поспоришь.

    А что касается гуру автоматизации для начала автоматизации - это, конечно, хорошо, только не всегда его можно раздобыть, по разным причинам :)

    ОтветитьУдалить
  8. Автоматизацию всегда нужно толкать вперед, она сама никуда не пойдет. В своем блоге Слава Панкратов достаточно популярно описал, что необходимо для внедрения автоматизации. И я с ним тут согласен, если не на 100% до на 95 точно :) Вот ссылка - http://pankratov.org.ua/itlh/chto-neobxodimo-dlya-vnedreniya-avtomatizacii-testirovaniya-po

    ОтветитьУдалить
  9. Спасибо за ссылку - почитала, любопытно, над чем-то стоит подумать.
    Кстати, речь всё-таки идёт о толкателе как о человеке, который будет этим активно заниматься, но не обязательно это должен быть уже сложившийся гуру, насколько я поняла (хотя с гуру, конечно, легче, но как я и сказала выше - не всегда его можно раздобыть по тем или иным причинам).

    Насчёт же ваших слов про толкание автоматизации - это понятно, даже мой элементарный "вывод номер раз" с этим согласен :)

    ОтветитьУдалить
  10. Нам этого гуру-толкателя не выделяют. Но я присмотрелся к инструменту, который не требует глубоких знаний в программировании - TestComplete7 (http://www.automatedqa.com/). Попытаемся все сделать своими силами.
    Кстати, может кто знаком с этим инструментом? Поделитесь впечатлениями?

    ОтветитьУдалить
  11. Юрий, возможно, где-либо на форумах вам с большей вероятностью смогут что-либо подсказать по этому инструменту...

    ОтветитьУдалить
  12. Наша команда занимается автоматизированным тестированием около 2х лет, при этом используем QTP и Selenium. QTP конечно игрушка дорогая, но для тестирования web-приложений (как показывает опыт) и Selenium вполне сгодится. Так что я тоже могу поспорить с вашим третим выводом. Но в остальном наши мнения совпадают.

    ОтветитьУдалить
  13. Елена, я могу только порадоваться, что люди успешно пользуются бесплатными инструментами, и ничто им в этом не мешает :)

    Свой третий вывод я формулировала на основании своего печального опыта, причём сформулировала в форме "не всегда" и "в определённых условиях" - так что я даже не уверена, что вы с этим выводом собственно спорите, вы просто подтверждаете, что "в других условиях" - с использованием бесплатных средств всё может быть отлично :)

    Кстати, я вот подумала, что если бы та история происходила сейчас, и в качестве бесплатного средства рассматривался бы столь популярный нынче селениум, то может и у той истории был бы другой конец :)

    И кстати, на моём нынешнем проекте - тоже используется селениум, причём с благословения иностранных заказчиков :)

    ОтветитьУдалить
  14. Интересно, если продукты, предназначенные для тестирования на уровне СУБД ?

    ОтветитьУдалить
    Ответы
    1. Честно говоря, не знаю, поскольку не интересовалась. Такие вопросы лучше попробовать задать на специализированных форумах.

      Удалить