суббота, 11 февраля 2012 г.

АвтоМАТиЗАция!?!

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

НО:
-время на написание тестов, на их поддержку, и пр пр пр

кофе остыл.. его выпил флешер. пичалька.(

Ручное тестирование... роботы не пашут, пашут тестеры.

по сути тоже самое.
написание тестов, поддержка, тестирование... и т.д.
В ходе тестирования можно попить тоже кофе, разлить на клавиатуру, протестировать новую клавиатуру, наступить на хвост кота, разбить чашку... пролить кофе уже на себя или.....

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

Если только я не ошиблась в расчетах.

Ну-к, тролли автоматизаторы, расскажите сколько в среднем времени вам необходимо для написания авто - тестов которые проверят build, сколько времени  у вас между -на те тестируйте- до -апдейтим-?

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

Сергей Высоцкий комментирует...

А что такое по-вашему автоматический тест? От этого очень сильно мой ответ зависит.

Рина комментирует...

спать охота, поэтому скажу коротко и грубо:
мой тест-кейс пройдет программа и выдаст мне результаты.
сам автотест - есть мой тест кейс в виде кода.
вот на написание автотеста - на основе тест-кейса и прохождение программой + обработка результатов, = времени уйдет больше чем вы это же сделаете вручную например?

проснусь напишу корректней, если не понятно)

Сергей Высоцкий комментирует...

Т.е. unit тесты это тоже плохо?

Рина комментирует...

Почему?)
Их проводят разработчики или не проводят. Их выбор)
Наш отдел не занимается unit тестами. Мы понятия не имеем, каким образом их пишет серверный отдел.

Сергей Высоцкий комментирует...

Просто описание очень обширное. Туда что угодно можно всунуть.

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

Написание такого скрипта у меня занимает от 5 до 30 минут.
Буду ли я его апдейтить? Нет. Ну точно не ближайшие пару лет.
Могу ли я это сделать вручную? Я, мягко говоря, замучаюсь все эти данные руками вбивать и сортировать.
Это автоматический тест? Я не знаю. Точно не ручной. В мире больном бинарной логикой остается один ответ - "да, автоматический".
Буду ли я его впиливать в сборку на CI? Да, может быть в отдельную впилю когда-нибудь.

Рина комментирует...

Понятно)
Спасибо.

Анонимный комментирует...

Автотесты, как и любой инструмент, имеют свою "нишу", где оправданы и хорошо работают. И тут надо разделить мух от котлет.
Ситуация первая: "Мы тут вроде сверстали, посмотри, как это в IE выглядит". Нужна ли здесь автоматизация? Ни в коем случае! Потому что робот не увидит, что там, например, фон неправильно отображается. А даже если и научить его видеть это, затраты труда и времени будут гораздо больше, чем посмотреть ручками.
Ситуация вторая: "Мы тут вроде багу в логике поправили, посмотри, а?". А вот тут уже другое дело. Потому что у нас есть, например, четыре кейса (это очень простая логика :) ), которые состоят из где-то двадцати пользовательских транзакций, а каждая такая транзакция - это много нажиманий разными интерфейсными и служебными кнопочками. Вручную один кейс сделается ну, где-то минут за пятнадцать. Четыре кейса - час. Написание теста на все кейсы на Selenium 2 для этой задачи - полтора часа, специально засекал. Плюс, машина не ошибется, другую кнопку не нажмет, и скриншот результата снять не забудет. И начинается диалог:
"Мы вроде багу в логике поправили, посмотри"
...через пять минут...
"Случай третий врёт"
...спустя два часа...
"Мы вроде багу в логике поправили, посмотри"
...через пять минут...
"Опять случай третий врёт"
...спустя два часа...
"Мы вроде багу в логике поправили, посмотри"
...через пять минут...
"Третий кейс починили, но отвалился первый и второй"
И так далее.
Безусловно, поддержка тестов тоже тратит время. И раздаётся временами вопль разработчика "Так у тебя кейс неправильно написан!" Но всё равно в итоге есть явный выигрыш и времени, и нервов, и качества.

Рина комментирует...

а насколько часто/редко вы сталкиваетесь с тем что функционал настолько переделывается, что ваши тесты нужно все переписывать заново?

в таком случае переписание + проверка работы тестов+ само тестирование = сколько времени?
+
если происходит такое "обновление" сколько времени вам выделяют на само тестирование?

Анонимный комментирует...

Полностью переделывать функционал - это очень печальная работа с требованиями. С полным изменением функционала не сталкивался. Изменения интерфейса и т.п. - это встречается часто и это, по-моему, достаточно нормально. С этим можно бороться - используя более "универсальную" автоматизацию, например, "нажать кнопку "Закрыть"" а не "нажать кнопку с id=1052". В первом случае кнопка может переехать в другое место, изменить дизайн, но она вряд ли исчезнет совсем - функционал "закрыть" нужен. А так, конечно, головой надо думать. Если поддержка тестов+тестирование > чем посмотреть ручками - то надо смотреть ручками. Был, кстати, случай, упирались руками и ногами, чтобы не автоматизировать тестирование именно по этой причине, а автоматизацию хотели "свыше". К счастью, отбились :)
Что касается выделения времени - не работал в таких жестких методологиях.

Рина комментирует...

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

Анонимный комментирует...

Может быть, пробовать частичную автоматизацию? Например, функционал, который стабилен и жизненно важен, и вы его проверяете каждый день имеет смысл автоматизировать. А то, что живёт в цикле разработки пару дней и потом забывается, по идее, проще ручками проверить.
Общее правило - автоматизация выигрывает там, где много повторов тест-кейсов.

Сергей Высоцкий комментирует...

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

ЗЫ: Ну и как коллега сказал - не нужно автоматизировать вообще все.

Рина комментирует...

функционал который стабилен и жизненно важен и проверяете каждый день.. нет такого)

ЗЫ: Ну и как коллега сказал - не нужно автоматизировать вообще все.
это итак понятно.
просто пытаюсь понять что у нас можно автоматизировать кроме проверки регистрации вообще)

Сергей Высоцкий комментирует...

> просто пытаюсь понять что у нас можно автоматизировать кроме проверки регистрации вообще)

Это, кстати, само по себе интересная задача. Как в плане выявления проблем testability, так и в плане обнаружения проблем текущего процесса разработки.

А.Б. комментирует...

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

Судя по Вашим рассуждениям (см. пост и ответы к комменатм) Вы просто не знаете что это такое. Отсюда делаю вывод - не нужна Вам эта автоматизация.

Sergey Martynenko комментирует...

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

Рина комментирует...

Поддерживаю)
Но я фанат своей работы) Можно так сказать.
И делать что-либо что станет затратно для компании и не выгодно - не стану только ради повышения себе зп.

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

Анонимный комментирует...

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

Сергей Высоцкий комментирует...

Вы так пишите, будто исследовать используя automation harness никак нельзя. Всегда нравилось как узко у нас вопринимают такое явление как автоматизация. Потому и хороших решений нет, что все делают дамп ручных тестов в скрипты.

Рина комментирует...

Алексей, я подхожу со стороны "А нужно ли это компании" и "А насколько выгодно это мне"

выгодно= удобно, комфортно, сокращение времени.

Если я пойму, что автоматизации мне не сделает +, естественно, она не нужна.
Но если это действительно сократит мне нервы и время - я найду способ донести руководству о такой необходимости.
У вас неверное впечатление).

Рина комментирует...

Это, кстати, само по себе интересная задача. Как в плане выявления проблем testability, так и в плане обнаружения проблем текущего процесса разработки.


Согласна) Вот ей как раз и занимаюсь)

Рина комментирует...

Я отвечала уже выше)
Болтон не ближе к нашей ситуации, да и прочитан давно))) а исследовательское тестирование у меня прокачано больше чем какое-либо)
Но спасибо за рекомендацию.)

yangicher комментирует...

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

Рина комментирует...

А что вы ждете от автоматизации?
Зачем она вам?
Сколько у вас проектов, которые требуют вашего внимания?

yangicher комментирует...

Жду увеличения скорости выполнения тест-кейсов.
Автоматизация нужна для собственного развития, потому что мне кажется что сплошное кликанье, поиск багов вручную - это очень не професионально. Нужно развиваться.
Я работаю на двух проэктах.

Рина комментирует...

Увеличение скорости вы можете и не получить.
Особенно если будете только это изучать.

сплошное кликанье -не профессионально
вы заблуждаетесь

Развиваться можно и нужно. Это можно делать и в рамках ручного тестирования и в рамках автоматизированного.
Лучше быть отличным black-box тестировщиком, чем фиговым автоматизатором.=)

Это не говорит о том, что автоматизировать не нужно.
Но на автоматизацию следует смотреть рационально. Спросите для начала себя: насколько это выгодно мне?
скажу сразу - если вы 1 на двух проектах (я не знаю что за проекты, но беру средний в соц. сети по нагрузке) вы не автоматизируете все.
Время на поддержку и ручного и автоматизированного тестирования - кушается очень много.

+
ваша компания готова вкладывать в средства для автоматизации? Это же не бесплатная программа) Тот же селениум нужно купить.

+ вы знаете программирование? или только хотите научится :изучить, научится, и начать автоматизировать?
(щас появится оксана и скажет что это не обязательно))))

если и это необходимо + вклад финансов.

Скажу сразу на своем опыте.
У нас два проекта.
Каждый из них имеет версию в соц. сетях.
Итого около 7 проектов.
+ разрабатываются новые.

Мы ничего не автоматизировали, т.к. нам это не выгодно.