http://hawkhouse.ru/wp-content/uploads/2017/06/img2_30_06_17-1.jpg		

Кому не обойтись без автоматизированного тестирования?

captcha

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

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

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

Продолжительный цикл жизни продукта

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

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

Volkswagen Beetle

Производство легендарного Volkswagen Beetle, продержавшегося на конвейере 65 лет и разошедшегося по миру в количестве более 20 млн экземпляров, – отличный пример, когда вложения в автоматизацию окупились с лихвой

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

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

Регулярные обновления продукта

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

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

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

Проведение тестирований силами самих разработчиков

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

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

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

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

Критичность ошибки

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

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

Запуск ракеты-носителя «Союз»

Успех любого запуска ракеты-носителя зависит не только от конструкторов, но и от IT-специалистов

Почему не стоит злоупотреблять автоматизацией при тестировании юзабилити?

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

В рамках юзабилити-тестов анализируется огромный объем разнородной информации, включая, к примеру, данные о характере типичных пользователей. «Цифровизировать» характер человека, подогнать его под четкий алгоритм не представляется возможным даже при нынешнем уровне развития IT-индустрии. В то же время опытный специалист по юзабилити способен собрать разрозненные пазлы информации в единую картину.

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

Заключение

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

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