Разделы портала

Онлайн-тренинги

.
Внедрение автоматизации тестирования ПО на уровне проекта
20.05.2010 15:19

Автор: Алексей Ракицкий – ведущий специалист по автоматизации функционального и нагрузочного тестирования ПО Qulix QA.
Оригинал: http://www.qa.qulix.ru/knowledge/articles-automation.php

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

Статья посвящена рекомендациям по наиболее безболезненному варианту внедрения автоматизации тестирования на уровне проекта в случае, если это направление в целом не развито в компании – производителе ПО.

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

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

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

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

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

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

К достоинствам такого фрэймворка можно отнести:

  • Максимальная повторная используемость кода: фактически создается только один скрипт, который обеспечивает управление процессом выполнения;
  • Данная технология не исключает применение методик Data Driven, что добавляет ей все достоинства Data Driven подхода;
  • Все операции представлены в виде таблиц Excel или в любом другом формате;
  • Все объекты пользовательского интерфейса хранятся во внешних файлах;
  • Все сценарии тестирования (test cases) и пакеты запуска (test suites) также описываются во внешних файлах (как правило, используется Excel), что позволяет легко управлять параметрами запуска;
  • Фреймворк обладает максимальной гибкостью: вы можете легко добавлять, удалять, редактировать существующие сценарии тестирования и пакеты запуска, при этом для данной задачи не требуется дополнительной квалификации, необходимо лишь умение работать с фреймворком;
  • В систему легко могут быть добавлены новые операции, или изменены существующие; при этом не потребуется каких-либо сложных действий, необходимо будет только написать новую функцию. Это позволяет легко и безболезненно расширять сам фреймворк;
  • В случае необходимости перейти на другой инструмент автоматизации, переработке подлежит минимум кода, сценарии тестирования останутся в том же виде.

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

Как построить процесс внедрения?

Как показывает практика – оптимально проведение трех этапов:

  1. Анализ набора задач и используемых технологий для разработки приложений. По результатам анализа подбирается оптимальный инструмент автоматизации (платный или бесплатный). На базе планируемых задач и специфики проекта разрабатывается план внедрения и необходимая процессная документация, вносятся необходимые корректировки в программу обучения, практические задания строятся на базе выбранного инструмента.
  2. Второй этап - обучение специалистов, которые должны приобрести необходимые теоретические знания по процессу, организации и методикам автоматизации, получить навыки работы с инструментами, научиться правильно создавать тест-кейсы, объединять их в сценарии для автоматизации, разрабатывать базовые библиотеки для построения фреймворков и организации запуска скриптов.
  3. Завершающий этап – это непосредственно внедрение полученных знаний на практике. На этом этапе специалисты на базе рабочего проекта, совместно с консультантом планируют степень покрытия автоматизированными тестами приложения, разрабатывают фреймворк, проводят автоматизацию запланированного набора функционала системы, разрабатывают удобные механизмы запуска скриптов и сбора результатов.

В результате этого должны получиться:

  • Полностью готовая инфраструктура для развития автоматизации на проекте;
  • Набор функциональных скриптов, покрывающих запланированный объем функционала с заданной глубиной тестирования;
  • Обученные специалисты, способных самостоятельно развивать автоматизацию разрабатываемого проекта;
  • Регламент по проведению автоматизации тестирования;
  • Описание фреймворка и скриптов для программного продукта, на базе которого происходило внедрение.

Длительность работ по такому проекту может (но не обязательно) уложиться в следующие рамки:

  • Анализ задач на внедрение: ~ 1 - 2 недели;
  • Обучение (зависит от программы): ~ 4 – 10 рабочих дней;
  • Внедрение на активный проект (зависит от объема запланированных работ): ~ 3 недели – 1,5 месяца.

Обсудить в форуме