Новости‎ > ‎

Стоимость автоматического тестирования

Отправлено 25 апр. 2011 г., 07:26 пользователем Saltsevich Tatsiana   [ обновлено 26 апр. 2011 г., 07:41 ]

Автор Владимир Трушкин

Перевод статьи Татьяны Салцевич (оригинал http://qaart.blogspot.com/2010/04/test-automation-cost.html

 

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

    На сегодняшний день хорошо известно что наиболее важный фактор использования автоматического тестирования это Окупаемость Инвестиций (Return On the Ivestment - ROI). В традиционной  модели затрат ROI определяется как:

ROI=прибыль/затраты

    Если ROI около 1, то вы в тонусе. Если меньше 1, то вы тратите больше чем получаете.

    Несмотря на то, что выглядит это достаточно просто, сложности начинаются, как только вы пытаетесь понять что стоит за терминами прибыль и затраты.

    Прибыль

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

    Хорошая новость – есть параметр стоимости, который можно непосредственно вычислить. Я имею ввиду стоимость выполнения тестов. Если вы отслеживаете сколько стоит выполнять тесты вручную (хотя бы приблизительно), вы можете легко сказать сколько вы сэкономите, если эти тесты будут автоматизированы.

    Давайте представим что у нас есть 100 ручных тестов, выполнение которых занимает 2 дня. После того, как эти тесты заавтоматизированы, вы будете экономить 2 дня каждый раз, когда вам нужно будет их выполнять. Самое важное тут – «каждый раз», потому что чем чаще вам нужны эти тесты, тем более выгодна их автоматизация. Но не путайте «необходимость» выполнять с «желанием» выполнять. Из-за такой запутанности легко стать жертвой самообмана и сделать неправильный вывод на счет эффективности автоматизации.

    Итак, я бы определил прибыль от автоматизации как сумму прибыли которую вы получаете от выполнения тестов плюс еще чуть-чуть (свободно оценивайте сколько это будет для вашего проекта: 10%, 20%, или даже 50%).

    Прибыль = выполнение*повторения + еще чуть-чуть

    Затраты

    Когда люди думают о затратах, они обычно связывают их с разработкой. Это естественно, потому что разработка это первое, что приходит на ум. Хитрость заключается в способности увидеть более полную картину. Разработка это всего лишь один из параметров. Есть и другие факторы, которые могут  сильно повлиять на стоимость автоматизации. Далее приведен список факторов, которые также могут повлиять на ROI.

    Опыт автоматизации тестирования

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

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

    Я бы оценил фактор опыта как самый большой в формуле затрат. Он может увеличить затраты более чем на 100%.

    Поддержка

    О ней легко забыть, потому что мы редко думаем о поддержке до тех пор, пока она нам не понадобится. Но она пригодится гораздо раньше чем вы можете себе представить. Изменения будут палить как из пушек по корпусу вашего набора тестов, заставляя его тонуть. Единственный способ удержаться на плаву это способность быстро справляться с ними.

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

    Из моего опыта, фактор поддержки составляет 40% для больших проектов. Для достаточно маленьких проектов ее можно понизить до 20%.

    Опыт владения инструментами

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

    Этот параметр наиболее важен для больших проектов. Архитектура проекта автоматизированного тестирования наиболее важна в этом случае. Архитектура строится в пределах ограничений тула и практически нет возможности их обойти. Так что будьте готовы к созданию новых архитектурных шаблонов.

    Я бы оценил, что этот параметр может принести рост в 30%

    Стоимость отладки тестовых наборов

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

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

    По моему опыту отладка тестовых наборов добавляет 10%

    Формула затрат

    затраты = стоимость разработки + стоимость разработки*(опыт% + опыт работы с инструментом% + поддержка% + отладка тестовых наборов%)

    Заключение

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

    Я никогда не использовал эту схему, т.к. изучал, как объединить все эти факторы, принимая решения много раз в моей профессиональной карьере. Но если вы сочтете ее полезной, я буду счастлив знать, что я потратил свое время не напрасно. =)

    

Комментарии


Comments