Перейти к содержимому

Automated test script что это

  • автор:

Automated test script что это

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

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

Задачи автоматизации

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

Автоматизация нужна для того, чтобы:

  • Заменить трудоемкое ручное тестирование рабочих процессов и множества сценариев
  • Исключить ошибки вследствие «человеческого фактора»
  • Обеспечить прозрачный контроль над процессом тестирования
  • Сократить затраты при повторно используемых скриптах
  • Получить точные и надежные результаты испытаний
  • Сократить время выхода готового продукта на рынок
  • Улучшить процесс разработки (Continues Integration)

Когда нужно автоматизировать

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

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

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

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

  • Сценарии регулярно повторяются
  • Сценарии трудоемки, сложны и не подходят для ручной проверки
  • Проверка тест-кейсов занимает много времени
  • Сценарии для высоконагруженных приложений (High-load applications)

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

Что автоматизировать

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

  • Back-end процессы и сервисы
  • API
  • Запись логов
  • Работу баз данных
  • Часто используемые опции и инструменты сайта, приложения, ресурса: формы регистрации, системы онлайн-оплат и т.п.
  • Автоматизацию заполнения полей, сохранение и проверку
  • Валидацию вводимых данных
  • Хранение и целостность данных

Какие типы тестирования можно автоматизировать

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

Рассмотрим типы тестирования, которые рекомендуется автоматизировать.

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

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

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

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

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

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

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

Если АТ уже было настроено, была проведена предварительная работа, есть результаты в виде тест-планов и кейсов, подобраны инструменты — тогда стратегия базируется на поэтапном движении вперед, автоматизируя модуль за модулем и обновляя цели на каждой новой стадии.

Как проходит процесс автоматизации тестов

Рассмотрим работы поэтапно:

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

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

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

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

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

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

При их выборе важную роль играет наличие таких функций:

  • Простота использования и интуитивно понятный интерфейс
  • Встроенная поддержка основных типов тестирования – производственное, регрессионное, функциональное и т.п.
  • Легкость в отладке и поддержке сценариев
  • Формирование информативных отчетов о тестировании

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

Selenium

Selenium предназначен для тестирования сайтов и веб-приложений на разных операционных системах и браузерах. Его преимущество в том, что тестировщики могут выбирать свой язык программирования для написания тестов. Среди основных: Python, Perl, PHP, Java, C# и др.

TestingWhiz

Данный инструмент позволяет наладить автоматизированное тестирование для веб-продуктов и мобильных приложений, ПО, баз данных, программных интерфейсов приложений (API). Среди тестов поддерживается регрессионное и кроссбраузерное тестирование.

HPE UFT

Лицензированный инструмент от Hewlett Packard. Предназначен для функционального тестирования программных приложений. Имеет встроенный механизм обработки багов, распознает смарт-объекты, контролирует создаваемый текст скрипта непосредственно во время действий пользователя.

JMeter

Создавался для тестирования веб-приложений, но сегодня его функционал позволяет проводить нагрузочное тестирование для таких соединений как FTP, HTTP, JDBC, POP3, LDAP и др. С его помощью можно создать группу запросов сразу с нескольких ПК. Результаты тестов оформляются с использованием инфографики.

TestComplete

Платформа от компании SmartBear Software, в которой настроена автоматизация десктопных и мобильных продуктов с поддержкой таких языков: C ++ Script, Python, C# Script, JavaScript, DelphiScript, JScript, VBScript.

TestNG

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

Sahi

Инструмент для автоматизированных тестов мобильных приложений, написанный на Java и JavaScript. В платформу встроена поддержка таких фреймворков как Dojo, ExtJS, YUI и др. Одной из функций является кроссбраузерное тестирование.

Ranorex

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

Webload

Платформа для автоматизации тестирования с широким функционалом с возможностью нагрузки от Amazon EC2 в случае облачного тестирования. Формирует более 80 вариантов (на выбор) отчетов с использованием инфографики.

Postman

Программа предназначена для создания и тестирования работы программных интерфейсов приложений (API) и веб-сайтов, а также для отправки запросов на сервер. Благодаря графическому интерфейсу можно легко настраивать все необходимые данные для проведения тестов.

Резюме

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

Когда нужна автоматизация:

  • При разработке масштабного приложения, ПО или сайта с большим набором функций
  • Для долгосрочных проектов
  • При внедрении CI/CD, выпуске регулярных релизов

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

  • Оптимизация затрат
  • Ускорение процесса тестирования
  • Повышение качества ПО
  • Сокращение времени и ресурсов на проведение тест-кейсов
  • Повышение эффективности работы команды
  • Широкое тестовое покрытие
  • Поддержка и обновление автотестов

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

Автоматизированное или ручное тестирование – что выбрать?

Независимо от типа проекта, будь то вебсайт, SaaS платформа или же мобильное приложение, Вы должны определиться какой же тип тестирования выбрать – ручное или автоматизированное тестирование? Английская версия статьи manual testing vs automated testing. Существует огромное количество разных типов тестирования, которые относятся как к ручному (мануальное), так и автоматическому. Но сперва давайте узнаем, что такое ручное тестирование в веб-разработке.

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

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

В автоматизированном тестировании должен присутствовать тестировщик, который создаст программу и затем будет ее запускать. Наиболее популярной программой тестирования является Selenium Web Driver IDE. Используя язык Java или Python Вы можете начать тестирование. Кстати, если эти два языка входят в список программных языков 2019 года.

Плюсы автоматизированного тестирования:

  1. Качество. Точность результатов тестирования напрямую зависит от уровня разработчика. Однако по большей части, точность результатов близка к 99.9%. Практически все возможные варианты, к примеру, валидации формы, можно охватить написав 5 строчек кода.
  2. Автозапуск. Технологии не стоят на месте. И если ранее программист должен был написал программу тестирования и запускать ее вручную – то сейчас это можно полностью автоматизировать. Общеизвестный факт, что в период с 2 до 5 утра нагрузка на сервер минимальная. Это является наиболее оптимальным временем запуска тестов. Но ведь не приходить же тестировщику в 3 утра в офис, или вовсе ночевать и жить там?
  3. Выгодный. Большие проекты, особенно с высокой нагрузкой очень нуждаются в повышенном внимании и качестве. В долгосрочной перспективе, только автоматизированное тестирование будет выгодным и для финансового проекта, и для ecommerce сайта, и для веб проекта казино. Обратите внимание, на ecommerce тренды 2020. Более того, по статистике, чтобы заменить одного автоматизированного тестировщика требуется от 3 до 8 ручных тестировщиков. Средняя стоимость автоматизированного тестировщика составляет $25 в час. При условии работы с Восточно-Европейской компанией. Агентства из США берут от $55 в час.
  4. Захватывающее. В отличии, от ручного тестирования, автоматизированное считается креативным. Потому что, тестировщик в этой роли выступает как программист.
  5. Видимость результатов. Ручное тестирование в основе своей субъективное. Видимость результатов, эффективности, и статистика перед каждым релизом это важные особенности автоматизированного тестирования. Отчеты генерируются также в автоматическом режиме.
  6. Расширенный функционал. Автоматизированное тестирование связано напрямую с вебсайтом. Это можно назвать его скрытой темной стороной. Вы имеете доступ к бекэнд и можете оценить практически любые параметры. Нагрузка, проходимость сервера, строить прогнозы. Работая с аналитиками, и data science инженерами представляется огромная польза для компании.

Manual Testing VS Automated Testing: Difference, Definition & Tools

Минусы автоматизированного тестирования

  1. Стоимость тестировщика. Обращая внимание на тот факт, что в данном случае тестировщик является программистом – значит и его цена выше.
  2. Время. Время запуска тестов, как и их продолжительность очень высоки. Однако требуется некоторое время чтобы написать те самые тесты. В таком случае в фазы веб разработки входит тестирование, и идет в буквальном смысле бок-о-бок с программированием. Тем временем тестировщик пишет автотесты, чтобы покрыть работающие части кода.
  3. Тестирование глазами пользователя. Вы никогда не сможете протестировать сайт глазами пользователя используя автоматизированное тестирование. Все просто, ведь программа создает отчеты. А тестировщик, всего лишь управляет ею и контролирует работу.
  4. Ограничения. Ограничения в невозможности тестировать цвета, гамму, и UX. Эти пункты, хоть и являются второстепенными, но без должного внимания к ним, Ваши пользователи вряд ли смогут наслаждаться платформой на 100%.

Что такое ручное тестирование в разработке?

Ручное тестирование, это процессы через которые разработчики, или manual QA тестировщик тестируют продукт: вебсайт, платформу, SaaS, что угодно чтобы найти дефекты и ошибки. Ручное тестирование идеально подходит для тех проектов с малым бюджетом, либо же краткосрочных (до 2 месяцев). Ручное тестирование проходит от лица тестировщика, который выступает как конечный пользователь системы.

Проверяет все функции, ссылки, пункты меню и т.д. Чтобы избежать поломанных ссылок, или не рабочего функционала. Часто тестировщик также использует несколько браузеров, чтобы охватить как можно больше пользователей, и само собой мобильную версию. К примеру, наиболее популярны Chrome, Firefox, Safari, IE11, Edge. С мобильными устройствами все несколько проще – всего лишь Google Chrome и Safari для iOS устройств. Но встает вопрос – стоит ли начать с вебсайта или мобильного приложения? Или же оба одновременно?

Какие же плюсы ручного тестирования?

  1. Низкие затраты. В краткосрочной перспективе, это финансово выгодное решение.
  2. Позволяет увидеть сайт глазами пользователя. Тестировщик, это в первую очередь программист. Имея знания в проектировании интерфейсов, графическом интерфейсе, бэкенд части, фреймворков и их взаимодействия. Он ходит по сайту имея за спиной все эти навыки, и конечно же навыки «пользователя».
  3. Гибкость. Если проект проектируется и программируется по методологии Agile, Скрам или Канбан, возможно это наибольшее преимущество. Если Вы быстро внедряете новые функции, и хотите быть уверенными, что они работают правильно – ручное тестирование позволяет сделать это быстро.

Минусы ручного тестирования

  1. Ограничения. К сожалению, нельзя проверить в ручном режиме все угодно. К примеру, нагрузочное тестировании практически нереально. Чтобы узнать какую веб-сервер сможет выдержать нагрузку – нужно фактически дать такую нагрузку.
  2. Скучное. По больше части касается непосредственно самого тестировщика, однако повторение одних и тех же действий, может быть несколько скучными для человека.
  3. Качество. На больших проектах ручное тестирование теряет свое качество. Нехватка времени, и рассеивание внимания стоят на первых местах.

Автоматизированное или ручное тестирование?

Прежде всего к Вам, как к владельцу проекта, несколько вопросов:

  1. Какой срок и объем Вашего проекта?
  2. Имеет ли значение поддержка платформы?
  3. Ищите ли Вы выгодное и доступное решение в области тестирования?

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

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

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

Оцените (139 оценки — 4.4 из 5)

Автоматическое тестирование ПО

Фотография Макса Рекопфа

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

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

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

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

См. решение
Разработка и эксплуатация программного обеспечения с помощью Open DevOps
Связанные материалы
Автоматическое тестирование для DevOps

Графическая иллюстрация автоматического тестирования

Важность автоматического тестирования для непрерывной поставки

Основная цель непрерывной поставки (CD) — максимально ускорить поставку новых релизов клиентам. Этого не получится добиться без автоматического тестирования. Однако для автоматизации поставки кода необходимо избавиться от тормозящего работу этапа ручной проверки.

Процесс CD — лишь часть сложного конвейера развертывания. CD следует за этапом непрерывной интеграции (CI) и сильно от него зависит. В рамках CI требуется автоматическое тестирование новых изменений кода. Так можно убедиться, что изменения не нарушают работу существующих функций и не создают багов. Если в процессе непрерывной интеграции успешно пройдены все плановые автоматические тесты, запускается этап CD.

Такие связи между автоматическим тестированием, CI и CD приносят быстрым командам разработки ПО много преимуществ. Автоматическое тестирование гарантирует качество на каждом этапе разработки. С его помощью можно убедиться, что новые коммиты не приведут к багам, а также сохранить готовность продукта к развертыванию в любой момент.

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

Какие виды тестов программного обеспечения следует автоматизировать в первую очередь?

1. Сквозные тесты

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

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

2. Модульные тесты

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

3. Интеграционные тесты

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

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

4. Тесты производительности

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

Какие виды тестов программного обеспечения следует проводить вручную?

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

1. Глубокое тестирование

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

2. Визуальное регрессионное тестирование

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

3. Создание системы автоматизации тестирования для команды DevOps

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

4. Частота релизов

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

5. Доступные инструменты и экосистема

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

6. Соответствие продукта рынку и зрелость базы кода

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

Встройте автоматическое тестирование в конвейер CD

Автоматическое тестирование — стандартная практика в современной разработке ПО. Автоматические тесты применяют все передовые команды и компании. Они необходимы для организации процессов непрерывной интеграции и непрерывной поставки (CI/CD), которые помогают самым эффективным командам поставлять надежное многофункциональное ПО для клиентов.

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

Max Rehkopf

Max Rehkopf

Я считал себя «хаотичным раздолбаем», но методики и принципы agile помогли навести порядок в моей повседневной жизни. Для меня истинная радость — делиться этими знаниями с другими людьми, публикуя многочисленные статьи, участвуя в беседах и распространяя видеоматериалы, которые я создаю для Atlassian.

Что такое автоматизированное тестирование? Гайд по основам.

Автоматизированное тестирование (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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *