При создании ИТ-решений ошибки обходятся дорого, особенно это заметно в медицине, где от качества программного обеспечения зависят жизни людей, или в банковской сфере, где возможны большие финансовые потери.
Автоматизация тестирования позволяет организовать непрерывный контроль качества продукции.
Давайте разберемся, в каких случаях это необходимо.
Некоторые компании ошибочно полагают, что автоматизация — это пустая трата времени и денег, а другие считают, что это крутой тренд и «таблетка» от всех болезней.
Давайте рассмотрим, где находится золотая середина и в чем смысл автоматизации.
Зачем тестировать
Малейшая ошибка в программном обеспечении может привести к огромным затратам.Чем лучше структурированы процессы разработки, тем ниже риски.
Однако если мы посмотрим на факты, то увидим, что даже такие гиганты, как Google, Microsoft или ведущие банки, допускают ошибки.
Например, один из самых известных в финансовом мире «крахов» произошел в Первом национальном банке Чикаго в конце 1990-х годов: за одну ночь счета клиентов взлетели на 900 миллионов долларов.
Тогда старший вице-президент банка Джеймс Ланкастер признал, что дело в «программной ошибке в компьютере», которой, к счастью, никто не успел воспользоваться.
Дорогостоящие ошибки случаются и в других отраслях, казалось бы, не связанных напрямую с ИТ.
Известный пример — аварии при запуске космической техники, в частности, в 2017 году Роскосмос.
потерянный спутник стоимостью 2,6 млрд руб.
При работе с масштабными ИТ-решениями, например, системами дистанционного банковского обслуживания (ДБО), важно постоянно тестировать не только работу отдельных функциональных возможностей, но и их взаимодействие.
В условиях сжатых сроков, когда ведущие банки каждый месяц обновляют свои заявки, проверить все вручную невозможно – по крайней мере, на это не хватает времени.
При создании ИТ-продуктов для бизнеса обычно сочетают два подхода:
- проводить проверки вручную, с помощью специалистов QA (гарантия качества) ;
- объединить ручное тестирование и автоматизацию ключевых тест-кейсов с помощью экспертов SDET (инженер-разработчик программного обеспечения в тестировании) .
Например, SDET может настроить CI для автоматической доставки и развертывания приложений, вести документацию и организовывать процессы.
Однако в этой статье мы рассмотрим один аспект — автоматизацию тестирования.
Что дает автоматизация
Это одно из достаточно новых направлений развития, окруженное большим количеством мифов.Чаще всего предприятия обращаются к автоматизации, полагая, что она:
- решит все проблемы выпуска качественного программного обеспечения;
- позволит отказаться от ручного тестирования;
- необходимо просто потому, что это «крутой тренд»;
- ускорит релизы;
- увеличит охват платформ и версий операционных систем во время тестирования.
В свою очередь, два последних утверждения действительно верны: грамотная автоматизация тестирования помогает и ускорить релизы, и увеличить охват кейсов.
При этом ручной контроль качества и автоматизация, как правило, одинаково важны и используются в сочетании.
Кроме того, каждый проект индивидуален, и иногда автоматизация не требуется.
Когда автоматизация необходима
- Масштабное приложение со множеством бизнес-функций
- Значительный срок службы приложения (1 год и более)
- Внедрение CI/CD, регулярные релизы + небольшое количество QA-специалистов
Задачи автоматизации
Как правило, мы привлекаем специалистов СДЭТ для решения следующих задач:- Автоматизация рутинных и частых проверок, снижающая нагрузку на специалистов по обеспечению качества.
- Мониторинг основных функций приложения и отслеживание изменений в продукте.
- Возможность тестирования на большом количестве устройств, версий браузеров и операционных систем.
- Тестирование производительности приложения при одновременной работе с большим объемом данных и пользователей.
Результаты
Автоматизация помогает найти баланс:- вручную проверять то, что требует внимания человека (обычно до 25% случаев);
- автоматизировать другие дела.
Кроме того, при необходимости релизы можно ускорить.
Например, если в спринте разработки нужно проверить около 400 кейсов, то ручная проверка займет до двух недель, а автоматизированные тесты можно проводить ночью и анализировать за 4 часа.
Благодаря автоматизации у бизнеса есть возможность в любой момент убедиться в корректной работе ключевых функций системы и проверить, нет ли ошибок (и если есть, то какие).
Пример
Предположим, что сейчас в мобильном банкинге необходимо обрабатывать до 700 обращений, каждое от 70 до 100 раз в год. Менее 25% случаев требуют ручной проверки; оставшиеся 75% могут быть автоматизированы.Время, затраченное на ручную проверку: — 30 часов Время, затраченное на автоматизацию: Проведение тестов в ночное время занимает 8 часов, но без вмешательства человека, поэтому не учитывается.
Прочие временные затраты:
- 8 часов на ручную проверку случаев, которые невозможно охватить автоматическими тестами (25%);
- 6 часов на анализ результатов, а также при необходимости проверку отказов (до 10% тестов).
Конечно, каждый случай имеет свои особенности, поэтому необходимое время может варьироваться.
Мы постоянно анализируем, сколько времени уходит на написание автоматизированных тестов, поддержку и анализ результатов.
В среднем автоматизация экономит от 30 до 50% времени как минимум , что позволяет вам уделять больше времени, например, разработке и улучшению продукта.
Как работает автоматизация тестирования
Каждая ИТ-компания имеет свои особенности в автоматизации тестирования, как и в других рабочих процессах.Мы в SimbirSoft придерживаемся следующих методов, которые помогают нам быстро работать с проектами наших клиентов.
Процесс тестирования начинается с разработки стратегии — плана тестирования, основы для составления отдельных тест-кейсов.
Для автоматизации SDET инженеры выбирают ключевые, часто используемые сценарии взаимодействия пользователя с продуктом — такие сценарии обеспечивают около 80% ценности бизнеса.
После этого создаем основу для дальнейших автотестов, настраиваем стенды и рабочий процесс для работы с ними, CI для регулярного запуска тестов на различных ветках.
Мы выбираем, какие подходы для подготовки тестовых данных будем использовать (API, доступ к базам данных, генерация синтетических данных, использование данных о продажах).
Инженеры SDET пишут тесты, охватывающие ключевые сценарии работы с продуктом, анализируют полученные результаты и необходимость дальнейшей автоматизации.
Мы разрабатываем автоматизированные тесты с использованием всех самых популярных языков программирования — Java, Python, Kotlin и др.
Наши основные инструменты и технологии — Appium, TestNG | JUnit, RobotFramework | Пайтест, Селен | Сененид, Аллюр, Тимсити, Дженкинс, JMeter. Какие тесты необходимо автоматизировать в первую очередь, зависит от особенностей конкретного продукта.
Большинство компаний автоматизируют дымовые тесты, регрессионные тесты для проверки готового функционала, а также кейсы для проверки различных параметров (например, валидных и невалидных данных при регистрации).
В своей практике мы выстраиваем процессы автоматизации тестирования уже на старте разработки, параллельно с ручным тестированием.
Эта работа – не разовая работа, она ведется постоянно, особенно на крупных проектах, в том числе банковских.
Подведение итогов
Баланс ручного и автоматизированного тестирования позволяет постоянно контролировать качество ИТ-продукта.Некоторые проекты проверяются вручную, другие задачи можно более успешно решить с помощью автоматизации.
Ручное тестирование используется в тех случаях, когда люди незаменимы, например, если нужна локализация, описание ошибок, ручное юзабилити-тестирование.
В небольших проектах тесты часто пишут сами разработчики.
Ручное тестирование в сочетании с автоматизацией проводится при создании крупных ИТ-продуктов, где работают несколько команд (например, в банковских приложениях), где присутствуют сложные алгоритмы и бизнес-логика.
Этот метод помогает выстроить процессы тестирования продукта и снизить риск дорогостоящих ошибок, что может быть особенно важно при работе в условиях жесткого графика выпуска релизов.
Спасибо за внимание! Надеемся, что статья была вам полезна! Теги: #qa #тестирование #тестирование ИТ-систем #автоматизация тестирования #сдет #СимбирСофт #контроль качества
-
Айринум – Современная Дыхательная Маска
19 Oct, 24 -
Памятка Начинающему Почтмейстеру
19 Oct, 24 -
Поговорим О Нагрузочном Тестировании
19 Oct, 24 -
Почему Мы Молчим О Маршрутах? :)
19 Oct, 24