В этом руководстве мы собрали основные тенденции QA и автоматизации тестирования в 2022 году.
Еще 30 лет назад, чтобы добыть новую информацию, мы пользовались книгами, СМИ или общались с людьми. Сейчас достаточно секунды и смартфона размером с ладонь. Разбираемся, как цифровые технологии перевернули нашу жизнь
Что такое цифровые технологии и как они появились?
Основы современной двоичной системы счисления заложил математик Карл Лейбниц в XVII веке. В ХХ веке ее начали применять для программных вычислений: в 1941 году появился первый компьютер, а в 1948-м — первая программа для ЭВМ.
Тогда, в середине XX века, под цифровыми технологиями понимались те, где информация преобразуется в прерывистый (дискретный) набор данных, состоящий из 0 (нет сигнала) и 1 (есть сигнал). Их противопоставляли аналоговым, где данные — это непрерывный поток электрических ритмов разной амплитуды с неограниченным числом значений.
Но позже на смену этому пришло другое определение: цифровые технологии — это те, где информация «оцифровывается», то есть представляется в универсальном цифровом виде. Другой вариант — это все технологии, которые позволяют создавать, хранить и распространять данные. В свою очередь, аналоговые теперь — это те, где информация не унифицирована, а хранится и передается в разных форматах, под каждый тип носителя. К примеру, стационарный телефон — это аналоговая технология, а смартфон с интернетом — уже цифровая.
Говоря самым простым языком, к цифровым технологиям относят все то, что связано с электронными вычислениями и преобразованием данных: гаджеты, электронные устройства, технологии, программы. По сравнению с аналоговыми, цифровые технологии лучше подходят для хранения и передачи больших массивов данных, обеспечивают высокую скорость вычислений. При этом информация передается максимально точно, без искажений. Среди главных недостатков — высокая энергоемкость и негативное воздействие на климат.
Сейчас на долю дата-центров приходится около 0,3% мировых выбросов углерода. Они потребляют около 200 ТВтч в год — это больше, чем годовое потребление энергии в развивающихся странах. Однако к 2030 году этот показатель может вырасти до 20% от всего мирового спроса, что приведет к существенному увеличению выбросов.
Цифровые технологии часто путают с информационными, но на самом деле одно является частью другого. К информационным относят все технологии, связанные с обменом информацией, даже с помощью аналоговых устройств. Например, светофор, сообщающий нам, когда можно идти — это информационное аналоговое устройство, а сервис, где мы отслеживаем пробки — тоже информационное, но уже цифровое.
По данным на 2021 год, через пять лет рынок технологий цифровой трансформации достигнет $3,7 трлн.
Evergreen Quality Assurance
Evergreen IT-менеджмент или непрерывное обновление создает трудности для тестирования и улучшения качества кода. Например, после каждого ежегодного обновления Windows требуется протестировать тысячи различных приложений. Если каждый тест занимает несколько часов, своевременно протестировать все приложения нереально. Здесь на помощь приходит smoke-тестирование. Существует несколько отличных инструментов управления smoke-тестами, которые помогут ускорить и автоматизировать процессы тестирования.
Автоматизированное smoke-тестирование выполняется не за часы, а за минуты, поэтому идеально подходит для проверки некритичных приложений с низким уровнем риска. Для приложений с более высоким уровнем риска потребуется определить и собрать 20-50 тестовых случаев, чтобы сформировать из них полный тест для основных фич. А чтобы упростить повторение тестов в будущих циклах, нужно создать инфраструктуру тестирования, которая позволит хранить тестовые случаи и управлять ими.
Автоматизированное тестирование мобильных приложений
В 2018 году мировой рынок мобильных приложений оценивался в 106,27 млрд долларов США, а к 2026 году прогнозируют его рост до 407,31 млрд долларов. Поскольку приложения должны стабильно работать на различных устройствах и операционных системах, их автоматизированное тестирование также находится на подъеме. Автоматизация предоставляет расширенные возможности, упрощает и ускоряет тестирование и позволяет выводить все более сложные приложения на рынок без заметной задержки.
Ключевые цифровые технологии ХХI века
Смартфоны объединили в себе персональный компьютер и телефон, став вместилищем для десятков цифровых технологий. С их помощью мы говорим, обмениваемся сообщениями, пишем письма, слушаем музыку, делаем фото и видео.
Первый КПК Nokia появился в 1996 году, первый смартфон Ericsson — в 2000-м. Но настоящую революцию совершил iPhone, впервые представленный в 2007-м: с тех пор все смартфоны постепенно перешли на сенсорные дисплеи без стилусов, а чуть позже появились и планшеты — своего рода промежуточное звено между смартфоном и ноутбуком. Лишь за 2020 год в мире было продано свыше 1,3 млрд смартфонов, а тройку лидеров на рынке составляют Samsung, Apple и Xiaomi.
Одной из самых продвинутых технологий, применяемых в смартфонах, является цифровая фотография: когда алгоритмы ИИ обрабатывают серию снимков и данные об освещении так, чтобы на выходе получилось одно, но лучшее по качеству фото.
Интернет вещей (Internet of Things, IoT)
Интернет вещей — это технология, которая позволяет объединять сенсоры, гаджеты, бытовую технику и даже автомобили в единую сеть при помощи беспроводной связи. Всеми этими устройствами можно управлять при помощи приложений и объединять их в разнообразных автоматических сценариях — например, управлять заводским оборудованием. По данным на конец 2020 года, к интернету вещей в мире было подключено 11,7 млрд устройств, а через пять лет эта цифра вырастет до 30 млрд.
Большие перспективы для IoT открывает новый стандарт беспроводной связи — 5G. С его помощью данные можно передавать быстрее, без сбоев и с минимальными задержками, подключая еще больше устройств.
Беспроводной интернет, Wi-Fi 6 и 5G
Мобильный интернет зародился еще в 1991 году, а беспроводной стандарт Wi-Fi был создан в 1998-м, в австралийской лаборатории радиоастрономии CSIRO. Спустя более 20 лет к интернету подключены практически все электронные устройства. Теперь появились новые технологии высокоскоростной связи: 5G и Wi-Fi 6.
5G предоставляет широкополосную мобильную связь на высокой скорости и с минимальной задержкой сигнала — всего 1–2 мс. По данным Accenture, в ближайшем будущем с помощью 5G можно будет подключить до 1 млн устройств на 1 кв. км. Сотрудники большинства компаний смогут окончательно перейти на удаленную работу и быстрее принимать решения, основываясь на аналитике потоковых данных.
«Обычный» Wi-Fi работает на частотах 2,4 и 5 ГГц, а Wi-Fi 6 добавит к ним новую — 6 ГГц. Это поможет ускорить передачу данных на мобильных устройствах до 2 Гб/сек, и сделать ее более стабильной. Первые 316 млн мобильных устройств с поддержкой Wi-Fi 6E появятся уже в 2021 году.
Беспилотные автомобили
Беспилотные системы сегодня используют в такси, общественном транспорте, дронах и авиации. На них возлагают надежды как на самый рентабельный коммерческий транспорт и самый безопасный личный. Пока еще на наших дорогах нет полностью автономных машин, которые могут двигаться абсолютно независимо от человека (они бывают разного уровня автономности). Но в некоторых штатах США и азиатских странах уже можно вызвать беспилотное такси. Главное, что сейчас сдерживает распространение технологии, — это законы: не все государства готовы выпускать беспилотники на дороги общего пользования и пока не до конца понимают, как их регулировать.
Выпуск YouTube-канала «РБК Тренды», посвященный тестированию российского беспилотника
Внедрение 5G позволит объединить системы управления беспилотными автомобилями с городской инфраструктурой: дорогами, светофорами, дорожными знаками и парковками.
Искусственный интеллект и машинное обучение
Чаще всего под «искусственным интеллектом» подразумевают любые алгоритмы, которые решают какие-либо задачи независимо от человека: производят сложные вычисления, распознают изображения и речь, собирают и обрабатывают массивы данных. Но настоящий «искусственный интеллект» — тот, что не только сам решает задачи, но и ставит новые, сам принимает решения и выходит за рамки своих изначальных возможностей.
Чтобы ИИ мог действовать самостоятельно, применяют продвинутые алгоритмы машинного и глубокого обучения, а также конструируют нейросети — по аналогии с системами нейронов в человеческом мозгу. Сегодня ИИ находит для нас нужную информацию, рекомендует подходящие товары или видео, строит аналитические прогнозы, помогает лечить пациентов и управлять беспилотниками.
Как работает глубокое обучение в беспилотниках
Но предел его возможностей все еще достаточно далеко, и главный вопрос, который волнует ученых и разработчиков — станет ли ИИ сильнее и важнее человеческого?
Виртуальная и дополненная реальность (VR и AR)
Первыми возможности AR и VR оценили разработчики игр и маркетологи. Первые использовали виртуальную реальность, чтобы добиться эффекта полного погружения в игру или виртуальный тур, а вторые — чтобы предложить покупателям «примерить» одежду или мебель. Statista оценила рынок VR и AR в $18,8 млрд в 2020 году — в три раза больше, чем в 2016-м. А еще через четыре года он вырастет к 2020-му в 15 раз.
Сегодня технологии AR/VR распространяются и на другие сферы. Например, в образовании виртуальная среда помогает наглядно изучить анатомию, архитектуру или древние цивилизации. В медицине, с применением дополненной и смешанной реальностей, проводят онлайн-консилиумы и операции. С помощью VR можно посещать другие страны и достопримечательности, музеи и даже затонувшие корабли. Во время пандемии стали востребованы разработки, позволяющие проводить встречи в AR и VR.
3D-печать
Первые 3D-принтеры появились в конце 1980-х годов. В ближайшем будущем именно 3D-печать может заменить большую часть производственных технологий и материалов.
Выпуск YouTube-канала «РБК Тренды» о 3D-принтерах в России
В отличие от традиционного производства, эта технология не требует таких огромных инвестиций и ресурсов, а еще — производит намного меньше вредных отходов. На 3D-принтерах печатают детали и запчасти, кабели, мебель и фурнитуру, одежду и обувь и даже дома. В ближайшем будущем мы сможем покупать трехмерные модели онлайн и печатать нужные вещи у себя дома. В медицине набирает популярностью технология биопринтинга — когда на 3D-принтерах, из специального биогеля печатают человеческие ткани и органы.
Робототехника
Первые прототипы роботизированных устройств появились еще в XIX веке, а во второй половине XX века роботизация вышла на промышленный уровень. Появился термин «Индустрия 4.0» — четвертая промышленная революция, которая связана с тотальной автоматизацией и сведению к минимуму человеческого труда. Роботов используют для сборки машин и электроники, логистики, курьерской доставки, приготовления блюд и даже хирургических операций.
Выпуск YouTube-канала «РБК Тренды», посвященный российской робототехнике
Облачные вычисления
Облачные технологии основаны на распределенном сетевом доступе к ИТ-инфраструктуре, чтобы хранить и обрабатывать данные любого объема. Как правило, это удаленные серверы или ИТ-сервисы, которые можно арендовать по мере необходимости. Такой подход позволяет компаниям быстро наращивать вычислительные мощности, запускать или масштабировать онлайн-проекты, которые требуют очень больших ресурсов.
Есть три вида облачных сервисов:
Блокчейн и криптовалюта
Блокчейн — это технология, при которой данные обо всех совершаемых транзакциях хранятся в единой системе в виде отдельных блоков и удостоверяются цифровой подписью, защищающей от взлома. База данных в системе — распределенная между всеми участниками, то есть без какого-либо централизованного управления и контроля. Это делает ее, по мнению создателей, наиболее независимой, безопасной и устойчивой к коррупции.
В блокчейне используются токены — невзаимозаменяемые, уникальные сущности, — а также смарт-контракты — алгоритмы для формирования, контроля и предоставления информации о владении чем-либо (например, криптовалютой). Первый блок был сгенерирован в 2009 году, а сегодня в мире существует более 2 тыс. разных систем блокчейна.
Одна из последних модификаций — технология NFT, которую применяют для продажи произведений искусства, музыкальных треков и других видов интеллектуальной собственности. Каждому изображению, видео или аудио присваивается уникальный цифровой сертификат, который можно купить, чтобы стать владельцем произведения. N FT можно перепродавать, зарабатывая на этом, как на физических предметах искусства.
Криптовалюта — полностью цифровая валюта, созданная по технологии блокчейна, которая используется для виртуального обмена и платежей. Она не зависит от банков или других финансовых структур. Для ее защиты, обмена и контроля операций применяют специальные методы шифрования.
Технологии блокчейна в ближайшем будущем могут привести к появлению полностью автономной финансовой системы, которая не будет зависеть от государственных и международных финансовых институтов. Возможно, возникнет даже что-то вроде цифрового государства или виртуальной вселенной, со своими внутренними рынками и законами.
В каких сферах применяют цифровые технологии?
Институт статистических исследований и экономики знаний (ИСИЭЗ) НИУ ВШЭ составил рейтинг самых перспективных цифровых технологий за 2020 год. В процессе подготовки эксперты использовали систему интеллектуального анализа больших данных iFORA, которая содержит более 500 млн документов: научные публикации, аналитика рынков, доклады международных организаций, правовые документы и др.
Топ-15 наиболее значимых технологий:
Как видно из рейтинга, подавляющее большинство технологий имеет отношение к искусственному интеллекту, нейросетям и машинному обучению. Но это далеко не единственная сфера, которая определяет развитие технологий сегодня.
Тестирование IoT
В последние несколько лет использование интернета вещей (IoT) росло экспоненциально, и благодаря 5G этот рост продолжится, поскольку эта технология значительно увеличивает скорость, надежность и пропускную способность сети.
Специалисты по тестированию программного обеспечения должны быть готовы к работе с тысячами новых устройств IoT, которые скоро хлынут на рынок. Тестирование устройств IoT на предмет безопасности имеет решающее значение, ведь они собирают значительные объемы пользовательских данных. Кроме того, эти подключенные устройства должны быть проверены на надежность, полезность, производительность, масштабируемость и совместимость.
Тестирование UI
Команды QA должны тестировать каждый элемент пользовательского интерфейса (UI), чтобы убедиться, что приложения понятны для пользователей и правильно функционируют. U I-тесты могут проводиться вручную или с помощью автоматизированных инструментов и процессов. Однако, независимо от используемых методов тестирования, QA-инженеры обычно сталкиваются со следующими проблемами:
• Постоянно изменяющиеся UI: непрерывный поток обновлений и новых релизов затрудняет тщательное тестирование. • Поддержка тестовых сценариев: чем больше меняется интерфейс пользователя, тем труднее поддерживать функциональные тестовые скрипты. • Повышение сложности: по мере усложнения приложений возрастает сложность тестирования UI. • Нехватка времени: создание и выполнение эффективных тестовых сценариев требует времени, особенно если не применяются оптимальные инструменты QA-тестирования. • Исправление ошибок: поскольку на разработку сценариев тестирования уходит много времени, инженерам часто его не хватает, чтобы должным образом исправить обнаруженные ошибки. • Неизвестная рентабельность вложений в автоматизированное тестирование: трудно точно рассчитать конечный коэффициент ROI, так как из-за непрерывного обновления UI тестирование тоже становится непрерывным, что приводит к задержкам в поставках.
Грамотно продуманное с точки зрения UI приложение значительно повышает лояльность клиентов и популярность продукта, поэтому мы считаем упор на хороший UI крайне полезным вложением.
Автоматизация тестирования в Agile-командах
Может показаться, что автоматизированное тестирование противоречит идее Agile, но при правильной реализации оно может сэкономить время и ресурсы, одновременно повышая эффективность разработки. Конечно, для этого требуется результативное сотрудничество между Agile-командами. Q A-инженеры должны участвовать в каждом этапе разработки, поэтому между ними и разработчиками должна быть постоянная связь.
При умелом использовании автоматизация Agile-тестирования ускоряет и упрощает регрессионное тестирование, а также позволяет проводить тестирование на различных платформах. Использование подходящих инструментов автоматизированного тестирования дает команде Agile-QA большие возможности для создания отчетов об ошибках и позволяет лучше тестировать ПО для непрерывной поставки.
Автоматизация тестирования API
Все чаще несколько приложений используют один и тот же API. В таких случаях его следует тестировать независимо от продуктов, которые его используют. Однако лучшие инструменты тестирования API могут значительно упростить автоматизацию тестирования. Мы рекомендуем следующие решения:
• Postman — простой инструмент тестирования API, полезный для разработчиков API, пользователей API и команд QA. • Apiary — платформа, использующая язык разметки Markdown для организации процесса разработки и тестирования API. Она предлагает тестовые сценарии, валидацию и образцы кода.
Эти инструменты помогают QA-инженерам убедиться, что API работает так, как ожидалось, а разработчикам — тестировать API перед интеграцией с использующими его продуктами.
Достижения в области искусственного интеллекта (ИИ) и машинного обучения (ML) влияют на развитие практически всех современных технологий. Тестирование программного обеспечения тоже не исключение. Согласно отчету World Quality Report за 2020-2021 гг. 88% опрошенных компаний планируют применять ИИ для развития QA.
Команды QA могут ускорить тестирование благодаря сокращению времени на проверку функционала, обработанного искусственным интеллектом. Кроме того, с помощью ИИ можно улучшить покрытие тестами и создавать новые тесты с нуля. В то же время ML использует данные о поведении пользователей для прогнозирования потенциальных сложностей, что позволяет тестировщикам заблаговременно устранять проблемы и угрозы. И И совместно с ML помогают быстрее выпускать высококачественные продукты.
Тестирование кибербезопасности и комплаенс-риски
Поскольку кибератаки становятся все более распространенными, а компании собирают все больше данных о клиентах, обеспечение безопасности и соблюдение регуляторных требований важны как никогда. В 2021 году приоритетное внимание по-прежнему следует уделять безопасным практикам программирования, внедрению надлежащего тестирования кибербезопасности и контролю рисков на ранних этапах разработки. Тестирование, ориентированное на безопасность, жизненно важно как для защиты организаций, так и конечных пользователей, поэтому команды QA должны знать и использовать новейшие методы и инструменты тестирования, чтобы гарантировать безопасность программных продуктов.
QAOps-разработка и CI
QAOps — комбинация обеспечения качества (QA) и DevOps, которая позволяет ускорить выпуск релизов без ущерба для качества. С помощью QAOps компании могут автоматизировать больше процессов и улучшить поток операций между отдельными отделами.
QAOps сочетает подход DevOps и непрерывное тестирование. Команда QA-инженеров должна работать в связке с разработчиками, для этого нужно интегрировать процессы тестирования и QA в пайплайн CI/CD. В результате разработчики смогут быстрее выпускать на рынок тщательно протестированные, качественные продукты.
Развитие цифровых технологий
Ближайшие пять лет — переломный период цифровой трансформации, когда digital-технологии охватывают даже те сферы, где всегда господствовали аналоговые. Государственные, финансовые, медицинские услуги переходят в онлайн-формат, появляются первые прототипы электронных паспортов и цифровые платежные системы без привязки к физическим валютам и банкам.
Синергия цифровых технологий поможет объединить офлайн и онлайн, делая все устройства и сервисы взаимосвязанными между собой. Искусственный интеллект и большие данные помогают принимать более обоснованные решения, а VR и AR — проводить сложные операции, путешествовать и учиться в любой точке.
Такое будущее выглядит очень комфортным, но не для всех. Например, футуролог Герд Леонгард призывает обратить внимание на тотальную цифровизацию и ее возможные последствия. Например, полная замена реального общения цифровым или утрата человечности при принятии глобальных решений, которые мы все больше доверяем ИИ.
Принцип 3 Amigo
Концепция 3 Amigo направлена на поиск компромисса между двумя крайностями — командами, работающими порознь, независимо друг от друга, и бесконечными совещаниями всех причастных к проекту по поводу каждой мельчайшей детали. « Три амиго» — это три различных взгляда, которые необходимо учитывать до, во время и после разработки:
• Бизнес: какую проблему нам нужно решить? • Разработка: как решить эту проблему? • Тестирование: работает ли решение так, как задумано?
Для эффективной разработки представители этих различных направлений должны выработать общее мышление и четко понять, что именно требуется сделать, и каков будет конечный результат. В итоге каждая группа понимает ожидания клиента и лучше определяет, что должна включать в себя каждая доработка.
Тестирование блокчейн-приложений
Задачи, которые решают QA-инженеры компаний, специализирующихся на финансовых и криптовалютных операциях, отличаются от тестирования обычного программного обеспечения. Однако им на помощь приходят эффективные специализированные решения для тестирования блокчейна, которые позволяют обеспечить безопасность и производительность программных продуктов. Ниже перечислены такие инструменты:
• Ethereum Tester — библиотека тестирования с открытым исходным кодом, доступная на GitHub. Она предлагает удобную поддержку API, и ее просто настраивать. • Ganache (раньше называлась Testrpc) — популярная библиотека для локального тестирования контрактов в Ethereum. Она создает тестовый блокчейн, предоставляя доступ к учетным записям для тестирования. • Hyperledger Composer — инструмент с открытым исходным кодом, который помогает разработчикам создавать блокчейн-приложения и обеспечивает интерактивное тестирование, а также автоматизированное юнит- и системное тестирование.
Тестирование в продакшене
Тестирование ПО в рабочей среде включает выполнение автоматизированных тестов после развертывания приложения. Хотя многие тестировщики сопротивляются практике QA на проде, на самом деле она необходима, и за таким тестированием будущее. В конце цикла разработки в продукт регулярно втискивают новые фичи, и тестирование в продакшене гарантирует, что они пройдут полное тестирование, не задерживая развертывание.
Agile и DevOps кардинально изменили процессы разработки, в том числе и тестирования. Полностью завершить тестирование перед релизом, как было раньше, теперь нереально. Хотя традиционные тесты по-прежнему будут проводиться, автоматизация, ИИ и ML, тестирование в продакшене и другие современные методологии QA позволяют быстрее и эффективнее обеспечивать качество и производительность.
Bug bounty
Bug bounty — бонусные программы поиска ошибок — поощряют и вознаграждают этичных хакеров, которые находят и подтверждают ошибки и уязвимости. Такие программы могут быть реализованы внутри организации или с помощью сторонних поставщиков решений безопасности, которые предлагают доступ к квалифицированным проверенным исследователям.