Как пишется автотестирование

Содержание

  • 1 Русский
    • 1.1 автотестирование I
      • 1.1.1 Морфологические и синтаксические свойства
      • 1.1.2 Произношение
      • 1.1.3 Семантические свойства
        • 1.1.3.1 Значение
        • 1.1.3.2 Синонимы
        • 1.1.3.3 Антонимы
        • 1.1.3.4 Гиперонимы
        • 1.1.3.5 Гипонимы
      • 1.1.4 Родственные слова
      • 1.1.5 Этимология
      • 1.1.6 Фразеологизмы и устойчивые сочетания
      • 1.1.7 Перевод
      • 1.1.8 Библиография
    • 1.2 автотестирование II
      • 1.2.1 Морфологические и синтаксические свойства
      • 1.2.2 Произношение
      • 1.2.3 Семантические свойства
        • 1.2.3.1 Значение
        • 1.2.3.2 Синонимы
        • 1.2.3.3 Антонимы
        • 1.2.3.4 Гиперонимы
        • 1.2.3.5 Гипонимы
      • 1.2.4 Родственные слова
      • 1.2.5 Этимология
      • 1.2.6 Фразеологизмы и устойчивые сочетания
      • 1.2.7 Перевод
      • 1.2.8 Библиография

Русский[править]

автотестирование I[править]

В Викиданных есть лексема автотестирование (L144051).

Морфологические и синтаксические свойства[править]

падеж ед. ч. мн. ч.
Им. а̀втотести́рование а̀втотести́рования
Р. а̀втотести́рования а̀втотести́рований
Д. а̀втотести́рованию а̀втотести́рованиям
В. а̀втотести́рование а̀втотести́рования
Тв. а̀втотести́рованием а̀втотести́рованиями
Пр. а̀втотести́ровании а̀втотести́рованиях

а̀втотести́ровани·е

Существительное, неодушевлённое, средний род, 2-е склонение (тип склонения 7a по классификации А. А. Зализняка).

Префиксоид: авто-; корень: -тест-; интерфикс: -ир-; суффиксы: -ова-ниj; окончание: .

Произношение[править]

  • МФА: [ˌaftətɛˈsʲtʲirəvənʲɪɪ̯ə]

Семантические свойства[править]

Значение[править]

  1. автоматическое тестирование ◆ Отсутствует пример употребления (см. рекомендации).

Синонимы[править]

Антонимы[править]

Гиперонимы[править]

Гипонимы[править]

Родственные слова[править]

Ближайшее родство

Этимология[править]

От ??

Фразеологизмы и устойчивые сочетания[править]

Перевод[править]

Список переводов

Библиография[править]

Для улучшения этой статьи желательно:

  • Добавить пример словоупотребления для значения с помощью {{пример}}
  • Добавить синонимы в секцию «Семантические свойства»
  • Добавить гиперонимы в секцию «Семантические свойства»
  • Добавить сведения об этимологии в секцию «Этимология»
  • Добавить хотя бы один перевод в секцию «Перевод»

автотестирование II[править]

В Викиданных есть лексема автотестирование (L144052).

Морфологические и синтаксические свойства[править]

падеж ед. ч. мн. ч.
Им. а̀втотести́рование а̀втотести́рования
Р. а̀втотести́рования а̀втотести́рований
Д. а̀втотести́рованию а̀втотести́рованиям
В. а̀втотести́рование а̀втотести́рования
Тв. а̀втотести́рованием а̀втотести́рованиями
Пр. а̀втотести́ровании а̀втотести́рованиях

а̀втотести́рование

Существительное, неодушевлённое, средний род, 2-е склонение (тип склонения 7a по классификации А. А. Зализняка).

Префиксоид: авто-; корень: -тест-; интерфикс: -ир-; суффиксы: -ова-ниj; окончание: .

Произношение[править]

  • МФА: [ˌaftətɛˈsʲtʲirəvənʲɪɪ̯ə]

Семантические свойства[править]

Значение[править]

  1. тестирование автомобиля ◆ Отсутствует пример употребления (см. рекомендации).

Синонимы[править]

Антонимы[править]

Гиперонимы[править]

Гипонимы[править]

Родственные слова[править]

Ближайшее родство

Этимология[править]

От ??

Фразеологизмы и устойчивые сочетания[править]

Перевод[править]

Список переводов

Библиография[править]

Для улучшения этой статьи желательно:

  • Добавить пример словоупотребления для значения с помощью {{пример}}
  • Добавить синонимы в секцию «Семантические свойства»
  • Добавить гиперонимы в секцию «Семантические свойства»
  • Добавить сведения об этимологии в секцию «Этимология»
  • Добавить хотя бы один перевод в секцию «Перевод»

Что Такое автотестирование- Значение Слова автотестирование

Русский

автотестирование I

Морфологические и синтаксические свойства

падеж ед. ч. мн. ч.
Им. а̀втотести́рование а̀втотести́рования
Р. а̀втотести́рования а̀втотести́рований
Д. а̀втотести́рованию а̀втотести́рованиям
В. а̀втотести́рование а̀втотести́рования
Тв. а̀втотести́рованием а̀втотести́рованиями
Пр. а̀втотести́ровании а̀втотести́рованиях

а̀втотести́ровани·е

Существительное, неодушевлённое, средний род, 2-е склонение (тип склонения 7a по классификации А. А. Зализняка).

Префиксоид: авто-; корень: -тест-; интерфикс: -ир-; суффиксы: -ова-ниj; окончание: .

Произношение

  • МФА: [ˌaftətɛˈsʲtʲirəvənʲɪɪ̯ə]

Семантические свойства

Значение

  1. автоматическое тестирование ◆ Отсутствует пример употребления (см. рекомендации).

Синонимы

Антонимы

Гиперонимы

Гипонимы

Родственные слова

Ближайшее родство

Этимология

От ??

Фразеологизмы и устойчивые сочетания

Перевод

Список переводов

Библиография

автотестирование II

Морфологические и синтаксические свойства

падеж ед. ч. мн. ч.
Им. а̀втотести́рование а̀втотести́рования
Р. а̀втотести́рования а̀втотести́рований
Д. а̀втотести́рованию а̀втотести́рованиям
В. а̀втотести́рование а̀втотести́рования
Тв. а̀втотести́рованием а̀втотести́рованиями
Пр. а̀втотести́ровании а̀втотести́рованиях

а̀втотести́рование

Существительное, неодушевлённое, средний род, 2-е склонение (тип склонения 7a по классификации А. А. Зализняка).

Префиксоид: авто-; корень: -тест-; интерфикс: -ир-; суффиксы: -ова-ниj; окончание: .

Произношение

  • МФА: [ˌaftətɛˈsʲtʲirəvənʲɪɪ̯ə]

Семантические свойства

Значение

  1. тестирование автомобиля ◆ Отсутствует пример употребления (см. рекомендации).

Синонимы

Антонимы

Гиперонимы

Гипонимы

Родственные слова

Ближайшее родство

Этимология

От ??

Фразеологизмы и устойчивые сочетания

Перевод

Список переводов

Библиография

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

Автотесты в веб-сервисы Наигру: сценарии

Что такое автотесты простым языком?

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

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

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

С определениями разобрались. Поехали дальше.

Что и как можно автоматически тестировать?

Автоматически можно тестировать программный код или пользовательский интерфейс. В статье мы будем говорить про автотесты через пользовательский интерфейс.

Если говорить совсем точно, статья будет про автоматическое end-to-end (E2E, сквозное) тестирование, имитирующее пользовательскую среду и поэтапно моделирующие действия пользователей.

Автоматическое end-to-end (E2E) тестирование — это процесс автоматического тестирования с подробной эмуляцией действий пользователя: кликаньем мышки, переходами по страницам, заполнения форм и так далее. Цель E2E тестирования — удостовериться, что программа работает именно так, как задумано для конечного пользователя.

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

Пример. Мы «выкатываем» приложение с потенциалом 10 000 регистраций в месяц. Предположим, мы не заметили, что после изменения одной из функций пользователи не видят модальное окно об успешной регистрации и это снижает общую конверсию на 5%. Стоимость одной регистрации составляет 15 долларов. За первый месяц мы потеряем 7 500 долларов.

Типы E2E тестирования: черный и белый ящик

Метод черного ящика — метод тестирования, при котором проверяется только интерфейс. Ошибки в логике не отслеживаются.

Метод белого ящика — метод тестирования, при котором проверяется сопоставление работы программы с эталоном.

Мы в проекте использовали метод белого ящика и проверяем правильность работы не только блоков интерфейса, но и логики.

Как мы пришли к автотестам в проекте Наигру

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

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

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

Наигру: Ошибка «Не показывается модальное окно»

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

Ручное тестирование

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

Регрессионное тестирование делится на 3 уровня: проверка нового блока, проверка ранее добавленных блоков, а также проверка связанных и не связанных сторонних блоков после добавления или изменения блока. В среднем одно такое тестирование занимало два рабочих дня.

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

Подготовка к автоматическому тестированию

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

  • Регистрация/авторизация пользователей

  • Создание и редактирование игры
  • Запись на игру
  • Отписка игрока от тренировки
  • Запись в резерв, переход в основной состав

Сформировали алгоритмы поведения пользователей

Например, проверка регистрации: сайт открывается → выбор чекбокса города Москва → нажатие «Сохранить» → нажатие на «Войти или создать аккаунт» → проверка ошибки неправильно заполненного телефона → ввод сгенерированного номера → нажатие «Войти» → проверка наличия авторизации после регистрации и выход из профиля.

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

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

Наигру: проверка алгоритма действий организатора
Наигру: проверка алгоритма действий игрока

Что получили в итоге?

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

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

Отчет об автоматическом тестировании (пайплайн)

Email с отчетом по итогу автотестирования

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

Было/стало

Ручное тестирование:

  • Тестировали только функционал, который дорабатываем – пропускали непрогнозируемые ошибки базового функционала
  • Узнавали о проблемах по факту – тратили много времени на поиск причины и на ее устранение

Автотесты:

  • Без полной проверки базового функционала на рабочий сайт не попадает ни одна доработка
  • Узнаем о проблеме заблаговременно и затрачиваем меньше ресурсов на устранение

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

Про инструментарий (Внимание! Начинается техническая часть)

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

Селениум:

  • Не user-friendly
  • Сложнее отследить, на каком моменте тест провален – отсутствует система репортов

Сайпрес:

  • Удобен для написания тестов и отладки – продуманный интерфейс
  • Наглядно показано (информация и скриншот), на каком моменте и по какой причине тест провален

У каждого инструмента есть свои нюансы

Например, Cypress, на котором остановились мы, не сохраняет Cookie и LocalStorage между тестами. В нашем случае это влияет на сохранение данных о пользователе между тестами (данные об авторизации), чтобы алгоритм работал так, будто действия создает один и тот же пользователей. Для устранения этой проблемы мы подобрали плагин (cypress-localstorage-commands), который сохраняет необходимые данные между тестами, а также настраивали файл конфигурации, чтобы сохранялись Cookie.

Файл конфигурации: сохранение Cookie

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

Экспериментальные функции сессий: сохранение Cookie

Отдельные элементы кода

Капча (CAPTCHA) тоже может мешать запуску автотестов – в рамках тестов настроили авторизацию по POST-GET запросу к API, минуя интерфейс авторизации.

Авторизация по POST-GET запросу к API

Разновидность сайта

Есть и свои нюансы автотестов для разных типов сайтов. Наигру реализован как Single Page Application – для такого рода сайтов “скриптовые” ошибки, которые не являются критичными для работы сервиса, мешают работе теста. Их приходилось отключать, чтобы предотвращать провалы теста, так как инструмент не пропускал алгоритм дальше.

Скриптовая ошибка

Структура кода

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

В проекте Наигру подобной проблемой стало расположение селекторов в структуре HTML-древа. Как итог – невозможно настроить тест таким образом, чтобы он понимал, какому конкретному организатору принадлежит игра. Этот момент необходимо учитывать при построении алгоритма тестирования

Необходимые навыки для создания автотестов

С автоматизаций тестирования вполне справится опытный тестировщик.

Для этого специалисту необходимо:

  • базовые навыки программирования и знание JavaScript (преимущественно автотесты пишутся именно на нем)
  • знание Node.js – помогут при установке плагинов и настройке связей между спецификациями
  • понимание особенностей построения архитектуры HTML-древа и работы селекторов
  • знание Git – для более эффективного взаимодействия с командой разработки, поможет создавать “коммиты” и загружать их в проект

Чтобы специалисту за довольно короткое время освоить автотестирование понадобится документация выбранного инструмента автоматизации и парочка роликов на youtube. Наш тестировщик вдохновлялся каналом Глеба Бахмутова.

Со сложными для понимания вопросами можно обратиться к коллеге-программисту уровня мидл и выше.

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

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

Золотое соотношение в видах тестирований

В отрасли применяют разные соотношения между ручными и автотестами. Например, в Google автотесты занимают около 10% от всего вида тестирования, а остальные тесты выполняются специалистами вручную.

Главное правило звучит так: автотестов должно быть существенно меньше, чем обычных – иначе это приведет к существенному удорожанию поддержки проекта.

Мы не советуем покрывать автотестами более 10-15% функционала.

Заключение

С точки зрения реализации – автоматическое тестирование можно сделать под любой проект.

Преимущества автотестов:

  • Быстро находят критичные ошибки
  • Нет человеческого фактора – непредвзятые
  • Накапливают сценарии для регресс-тестирования

Слабые места:

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

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

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

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

Пожалуйста, поставьте статье upvote (стрелочка вверх), мы старались :)

Выбор инструмента тестирования

Выбор средства тестирования во многом зависит от технологии, на которой построено тестируемое приложение. Например , QTP не поддерживает Informatica. Таким образом, QTP нельзя использовать для тестирования приложений Informatica . Хорошая идея – провести Proof of Concept of Tool (демонстрация практической осуществимости) на AUT.

Определяем объем автоматизации

Объем автоматизации – это область тестируемого приложения, которая будет автоматизирована. Его помогают определить следующие пункты:

  • Функции, важные для бизнеса
  • Сценарии с большим объемом данных
  • Общие функции приложений
  • Техническая осуществимость
  • Частота повторного использования бизнес-компонентов
  • Сложность тестовых случаев
  • Возможность использовать одни и те же тестовые сценарии для кросс-браузерного тестирования

Планирование, проектирование и разработка

На этом этапе вы создаете стратегию и план автоматизации, которые содержат следующие детали:

  • Выбранные инструменты автоматизации
  • Конструкция каркаса и его особенности
  • Входящие и выходящие за рамки элементы автоматизации
  • Подготовка стендов автоматизации
  • График и временная шкала сценариев и выполнения
  • Результаты тестирования автоматизации


Выполнение теста

На этом этапе выполняются сценарии автоматизации. Сценариям необходимо ввести тестовые данные, прежде чем они будут запущены. После выполнения они предоставляют подробные отчеты об испытаниях.

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

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

Обслуживание автоматизированного тестирования

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

Платформа для автоматизации

Фреймворк – это набор руководств по автоматизации, которые:

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

Для автоматизации тестирования программного обеспечения используют четыре типа фреймворков:

  1. платформа автоматизации на основе данных;
  2. фреймворк автоматизации на основе ключевых слов;
  3. модульная платформа автоматизации;
  4. гибридная среда автоматизации.


Рекомендации для эффективной автоматизации тестирования


Чтобы получить максимальную рентабельность инвестиций в автоматизацию, соблюдайте следующие правила:

  • Объем автоматизации необходимо детально определить до начала проекта. Это позволит убедиться, что ожидания от автоматизации будут оправданы.
  • Определите правильный инструмент автоматизации: инструмент не должен выбираться на основании его популярности, он должен соответствовать требованиям автоматизации на конкретном проекте.
  • Выберите подходящий фреймворк.
  • Стандарты создания сценариев. При написании сценариев для автоматизации необходимо соблюдать стандарты. Вот некоторые из них:
    • cоздайте единые скрипты, комментарии и отступы кода;
    • разработайте правила наименования тестовых сценариев;
    • прикладывайте необходимые документы, если, например, сложно понять прохождение тестового сценария без скриншота и/или спецификации.
  • Определите метрики и следите за ними. Успех автоматизации нельзя определить лишь путем сравнения затраченных усилий, на тот или иной вид тестирования. Вот основные показатели:
    • процент обнаруженных дефектов;
    • время, необходимое для тестирования автоматизации выпуска каждого нового цикла;
    • минимальное время требуемое для выпуска;
    • индекс удовлетворенности клиентов;
    • улучшение производительности.

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

Преимущества автоматизации тестирования

  • На 70% быстрее, чем при ручном тестировании.
  • Более широкий тестовый охват функций приложения.
  • Надежные в результаты.
  • Обеспечивает согласованность тестовых моделей.
  • Экономит время и деньги.
  • Повышает точность.
  • Позволяет исполнять процесс тестирования без вмешательства человека.
  • Повышает эффективность .
  • увеличивает скорость исполнения тестирования.
  • Повторно использует тестовые скрипты.
  • Позволяет тестировать часто и тщательно.
  • Больший цикл выполнения может быть достигнут за счет автоматизации.
  • Сокращает время выхода продукта на рынок


Типы автоматизированного тестирования

  • Смоук тестирование
  • Модульное тестирование
  • Интеграционное тестирование
  • Функциональное тестирование
  • Проверка ключевых слов
  • Регрессионное тестирование
  • Тестирование на основе данных
  • Тестирование черного ящика

Как выбрать инструмент автоматизации?

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

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

Выбор инструмента – одна из самых серьезных проблем, которую необходимо решить, прежде чем приступать непосредственно к автоматизации. Во-первых, определите требования, изучите различные инструменты и их возможности, установите ожидания от инструмента и сделайте Proof Of Concept.

Инструменты автоматизации тестирования

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

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

Особенности:

  • Функциональный пользовательский интерфейс и сквозное тестирование на ПК, в Интернете и на мобильных устройствах
  • Кроссбраузерное тестирование
  • SAP, ERP, Delphi и унаследованные приложения.
  • iOS и Android
  • Запускайте тесты локально или удаленно, параллельно или распределяйте в Selenium Grid
  • Надежная отчетность

Testim

«Самый быстрый путь к отказоустойчивым сквозным тестам – без кода, с кодированием или и тем, и другим. Testim позволяет создавать удивительно стабильные тесты без кода, которые используют наш ИИ, а также гибкость для экспорта тестов в виде кода. Такие клиенты, как Microsoft, NetApp, Wix и JFrog, ежемесячно проводят миллионы тестов на Testim.

Особенности

  • Вы можете использовать современный JavaScript API от Testim и свою IDE для отладки, настройки или рефакторинга тестов.
  • Храните тесты в своей системе управления версиями, чтобы синхронизировать их с ветвями и запускать тесты при каждой фиксации.
  • Интеграция с популярными инструментами»


21 Labs

«Это сложная самообучающаяся платформа автоматизации тестирования и аналитики для приложений iOS и Android.

Особенности:

  • Быстрая и интеллектуальная разработка – создание с помощью ИИ дает пользователям возможность создавать автоматизированные функциональные тесты и тесты пользовательского интерфейса за считанные минуты.
  • Результаты, которым вы доверяете – бесшовная система алгоритмических локаторов обеспечивает стабильные результаты во всех средах.
  • Устранение проблем с обслуживанием и нестабильных результатов – самообучающееся обслуживание автоматически обновляет тесты и гарантирует, что ваша команда может сосредоточиться на разработке новых функций, полагаясь на результаты тестов.
  • Выпускайте с уверенностью – производственная интеграция закрывает цикл обратной связи и анализирует фактическое покрытие. Используйте данные при выпуске.
  • Полностью SaaS, не требует установки или устройств для создания или выполнения тестов. Предлагает беспрепятственный доступ к десяткам устройств».

Selenium Это инструмент тестирования программного обеспечения, используемый для регрессионного тестирования. Это инструмент тестирования с открытым исходным кодом, который предоставляет возможность воспроизведения и записи для регрессионного тестирования. Селен IDE поддерживает только Mozilla Firefox веб – браузер.

Особенности:

  • Он обеспечивает возможность экспорта записанного скрипта на других языках, таких как Java, Ruby, RSpec, Python, C# и т. д.
  • Его можно использовать с такими фреймворками, как JUnit и TestNG.
  • Он может выполнять несколько тестов одновременно
    Автозаполнение для общих команд Selenium
  • Пошаговые тесты
  • Идентифицирует элемент с помощью идентификатора, имени, X-пути и т. Д.
    Храните тесты как Ruby Script, HTML и любой другой формат
  • Он предоставляет возможность утверждать заголовок для каждой страницы
  • Он поддерживает файл selenium user-extensions.js
  • Это позволяет вставлять комментарии в середину скрипта для лучшего понимания и отладки.

QTP (MicroFocus UFT)

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

Особенности:

  • Нетехническому человеку проще адаптироваться и создавать рабочие тестовые примеры.
  • Он быстрее устраняет дефекты, тщательно документируя и воспроизводя дефекты для разработчика.
  • Сверните создание тестов и документацию по тестам на одном сайте
  • Параметризация проще, чем в WinRunner
  • QTP поддерживает среду разработки .NET
  • У него лучший механизм идентификации объекта
  • Он может улучшить существующие сценарии QTP без доступности «Тестируемого приложения», используя активный экран.

Rational Functional Tester Это объектно-ориентированный инструмент автоматизированного функционального тестирования , способный выполнять автоматическое функциональное, регрессионное тестирование, тестирование на основе данных и тестирование графического интерфейса. Основные особенности этого инструмента:

Особенности:

  • Поддерживает широкий спектр протоколов и приложений, таких как Java, HTML, NET, Windows, SAP, Visual Basic и т. д.
  • Может записывать и воспроизводить действия по запросу
  • Он хорошо интегрируется с инструментами управления исходным кодом, такими как Rational Clear Case и Rational Team Concert.
    Он позволяет разработчикам создавать скрипт, связанный с ключевыми словами, чтобы его можно было использовать повторно.
    Редактор Eclipse Java Developer Toolkit
  • Помогает команде кодировать тестовые сценарии на Java с помощью Eclipse.
  • Поддерживает настраиваемые элементы управления через прокси SDK (Java / .Net)
  • Поддерживает управление версиями, чтобы обеспечить параллельную разработку тестовых сценариев и одновременное использование географически распределенной командой.

Watir

Это программное обеспечение с открытым исходным кодом для регрессионного тестирования. Это позволяет вам писать тесты, которые легко читать и поддерживать. Watir поддерживает только Internet Explorer в Windows, а веб-драйвер Watir поддерживает Chrome, Firefox, IE, Opera и т. д.

Особенности:

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

SilkTestSilk Test предназначен для выполнения функционального и регрессионного тестирования. Для приложений электронного бизнеса шелковый тест является ведущим продуктом для функционального тестирования. Это продукт поглощения Segue Software компанией Borland в 2006 году. Это объектно-ориентированный язык, как и C ++. Он использует концепцию объекта, классов и наследования. Его основная особенность включает

Особенности:

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

Заключение

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

Автоматизированное тестирование программных
продуктов

Наша компания уделяет особое внимание качеству разработки и финального
программного продукта.

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

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


Для повышения надежности продуктов, увеличения эффективности процессов развития и выпуска новых версий продуктов линейки «1С:Производственная безопасность», разрабатываемых с фирмой 1С по программе 1С:Совместно, мы используем регрессионное тестирование. В этой статье расскажем о том, как мы это делаем.


Используемые технологии
и инструменты


Vanessa-Automation

Проверка и отладка тестов в среде 1С в нашей компании выполняется с использованием инструмента Vanessa-Automation, которая является продолжением проекта Vanessa-Behavior.


GitLab

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


Visual Studio Code

Рабочая среда для подготовки и актуализации сценариев автотестирования. Тесты написаны на языке Gherkin — человеко-читаемом языке, служащим для описания поведения системы, который использует отступы для задания структуры документа (пробелы или символы табуляции). Каждая строчка начинается с одного из ключевых слов и описывает один из шагов.


TortoiseGit

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


Jenkins

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

Результат выполнения тестов можно проанализировать благодаря различным отчетам


Покрытие систем механизмами
автотестирования


Создание и актуализация универсального набора автоматизированных тестов для трёх конфигураций:

  • 1С:EHS Комплексная производственная безопасность КОРП
  • 1С:Экология. Охрана окружающей среды КОРП
  • 1С:Производственная безопасность. Комплексная

Получение актуальных демонстрационных баз данных по результатам прогона тестов


Непрерывное обновление и расширение набора тестов


Максимальное распараллеливание выполнения сценариев тестирования для сокращения общего времени выполнения тестов


Методы и подходы
к разработке тестов

Для ранее разработанной функциональности используется следующий подход:

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


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

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


В результате прогона тестов мы получаем наполненную демо базу.

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

Горизонты развития

В своей работе мы достигли значительных результатов, таких как:

  • Унифицированы и созданы сценарии тестирования наполнения базовой НСИ для трех конфигураций
  • Выполнение тестирования конфигурации переведено из Jenkins в GitLab в рамках подготовительных работ по распараллеливанию тестирования и подготовке проведения тестирования для каждого из запросов на слияние до помещения изменений в продуктивное хранилище
  • Подготовлены специалисты и наработана практика обучения по написанию авто-тестов
  • Активно идет развитие унифицированного ландшафта автоматизированного тестирования конфигураций для проектов 1С-КСУ и ПБЭ.

Но на этом мы не останавливаемся и всегда находим перспективы для развития данного направления:

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

В завершение хочется выделить следующие положительные моменты применения автоматизированного тестирования:

  • Повышение качества и надежности поставляемых коробочный решений
  • Набор стабильно работающих тестов можно презентовать, как самостоятельный продукт на рынке
  • Широкое применение в проектной деятельности

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

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

По вопросам сотрудничества вы можете связаться с нами:

Теги: автоматизатор тестирования, автоматизированное тестирование, automation qa

QA_Deep_11.3-5020-6a7d1e.png

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

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

Но в любой бочке мёда присутствует сами знаете что. Итак, минусы автоматизированного тестирования:
дороговизна. Инструменты автотестирования, а также обучение их использованию — удовольствие не из дешёвых, поэтому нужно всё рассчитывать, тщательно оценивая бюджет компании;
UI-тестирование. Автотестирование не может в полной мере заменить ручное тестирование и покрыть требования к пользовательскому интерфейсу. Просто помните об этом;
отсутствие «человеческого взгляда». Бывают ошибки, которые может найти лишь пытливый человеческий ум.

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

Повышение спроса на автотестирование

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

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

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

Всё это значит лишь одно: выбрав направление автоматизации, вы гарантированно обеспечите свою востребованность в ИТ-сфере на ближайшие годы. А освоить это направление вам помогут курсы по автоматизации в OTUS:
— «Java QA Engineer»;
— «Python QA Engineer».

При подготовке статьи использовались следующие материалы:
— «Manual vs Automation Testing, which one should you use?».

  • Определение
  • Почему нужна автоматизация
  • Что автоматизируется в первую очередь
  • Этапы автоматизации
    • Выбор инструмента
    • Определение области автоматизации
    • Планирование, тест дизайн и разработка
    • Выполнение тестов
    • Поддержка написанных тестов
  • Советы
  • Выгоды которые дает автоматизация
  • Типы тестов, которые наиболее часто автоматизируют

Что такое автоматизированное тестирование?

Автоматизированное тестирование (Automation Testing, Test Automation) — техника тестирования, в которой для выполнения тест кейсов используются специальные программы. Это отличает ее от ручного тестирования, в котором тест кейсы выполняются вручную тестировщиком.

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

Разработка продукта циклична и итерационна — и на каждой итерации, как правило, требуется выполнение одного и того же набора тестов. С помощью инструментов автоматизированного тестирования можно записывать наборы тестов (test suites) и выполнять, когда это необходимо. Как только набор тестов автоматизирован, участие человека в выполнении тестов практически не требуется. Это делает автоматизированное тестирование эффективной техникой. Цель автоматизации — уменьшить количество тестов, которые нужно выполнять вручную.

Зачем нужно автоматизированное тестирование?

Автоматизированное тестирование — лучший способ улучшить эффективность, покрытие продукта тестами, уменьшить время на тестирование. Автоматизированное тестирование очень важно, и вот почему:

  • Ручное тестирование всех возможных сценариев использования требует много времени (и, следовательно, денег)
  • Автоматизированное тестирование увеличивает скорость тестирования
  • Автоматизированное тестирование не требует участия человека для выполнения тестов. Автоматизированные тесты могут быть запущены в любое время (днем, ночью, в выходные и праздники)
  • Многократное ручное тестирование одной и той же функциональности скучно

Что автоматизировать в первую очередь?

Для максимальной эффективности, для определения сценариев, подходящих под автоматизацию, пользуйтесь следующими критериями:

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

Следующие критерии не подходят для автоматизации:

  • Новые тест кейсы, которые еще не были выполнены вручную
  • Тест кейсы для функциональности, требования к которой часто меняются
  • Тест кейсы, которые выполняются редко

Мы написали небольшой гайд по выбору приоритетных тест-кейсов для автоматизации.

Процесс автоматизированного тестирования

Процесс автоматизированного тестирования

Шаг 1: Выбор инструмента для автоматизации

Шаг 2: Определение функциональности, которую нужно автоматизировать

Шаг 3: Планирование, тест дизайн и разработка тестов

Шаг 4: Выполнение тестов

Шаг 5: Поддержка написанных тестов

Выбор инструмента

Этому вопросу посвящен отдельный материал.

Определение функциональности, которую нужно автоматизировать

Область для автоматизации может быть определена по следующим критериям:

  • Функциональность, которая важна для бизнеса
  • Сценарии, для тестирования которых нужны большие объемы входных данных
  • Функциональность, использующаяся в нескольких частях приложения
  • Целесообразность с технической точки зрения
  • Сложность написания тест кейсов
  • Возможность использования одних и тех же тест кейсов для кроссбраузерного тестирования

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

На этом этапе создается тест стратегия и тест-план, которые содержат следующие детали:

  • Выбранный инструмент автоматизации
  • Фреймворк с описанием его особенностей
  • Описание функциональности, тестирование которой будет автоматизировано
  • Подготовка стендов для выполнения тестов
  • Расписание выполнение автотестов
  • Результаты автоматизированного тестирования

Выполнение тестов

Во время этой стадии происходит выполнение автотестов. После выполнения генерируется подробный тест репорт.

Выполнение тестов может быть запущено как из инструмента автоматизации напрямую, так и с помощью системы управления тестированием (Test Management Tool), который запустит инструмент автоматизации.

Пример: HP Quality Center — cистема управления тестированием, которая управляет QTP для выполнения автотестов.

Поддержка написанных тестов

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

Советы по использованию инструментов автоматизации

  • Функциональность, подходящая для автоматизации, должна быть определена до начала разработки проекта.
  • Инструмент для автоматизации должен быть выбран исходя из требований конкретного продукта, а не из популярности.
  • Придерживайтесь стандартов написания кода, когда разрабатываете автотесты. Вот некоторые из них:
    • Придерживайтесь гайдлайнов при написании кода
    • Оставлйте комментарии
    • Обрабатывайте ошибки — при разработке думайте о том, как отработает ваша система в случае некорректного поведения приложения.
  • Собирайте метрики, чтобы определить эффективность автоматизированного тестирования. Вот некоторые из них:
    • Процент найденных багов
    • Время, затраченное на выполнение автотестов для каждого релиза

Преимущества автоматизированного тестирования

  • На 70% быстрее, чем ручное тестирование
  • Надежность
  • Сохраняет время и деньги
  • Не требует участия человека для выполнения тестов
  • Возможность повторного использования написанных скриптов

Типы автоматизированного тестирования

  • Smoke Testing
  • Unit Testing
  • Integration Testing
  • Functional Testing
  • Keyword Testing
  • Regression Testing
  • Data Driven Testing
  • Black Box Testing

Понравилась статья? Поделить с друзьями:
  • Как пишется автотест
  • Как пишется автосумма
  • Как пишется автострахование
  • Как пишется автостоп
  • Как пишется автостекла