Перевод статьи подготовлен в преддверии старта курса «Python QA Engineer».
Здесь представлены основные тенденции автоматизированного тестирования, о которых вы должны знать в 2020 году.
Одна из причин, по которой я считаю, что тестирование безопасности – это быстро растущая ниша, заключается в том, что из всех тем, о которых я слышал в подкасте Test Guild Automation, безопасность – та тема, о которой говорили больше всего. Помимо этого, исходя из недавней статьи SD Times, уровень безопасности сейчас претерпевает небывалый спад, потому что в 2019 году мы увидели вторую, третью и седьмую – самые значительные утечки данных за все время, судя по количеству людей от них пострадавших.
С тех пор как мы начали вести отдельный подкаст, посвящённый информационной безопасности, который называется TestGuild Security Podcast, я слышу, как важность этой темы возрастает, поскольку она коснулась проектов с открытым исходным кодом, которые многие люди используют для создания своих приложений.
В области безопасности мы приближаемся к критической точке.
Недавно я разговаривал с экспертами по безопасности, которые подтвердили, что они также наблюдают рост темпов тестирования в области безопасности. Например, Рик Салливан, вице-президент и генеральный директор направления программных сервисов DXC technology, рассказывал о том, что в тех компаниях, в которых он работал, безопасности уделялось большое внимание.
Он отметил, что безопасность на сегодняшний день в значительной степени связана с прикладным уровнем, чем очень схожа с тестированием. Дело в понимании природы уязвимостей, которые появляются, пока вы пытаетесь обеспечить более быстрые циклы разработки и доставки качественного программного обеспечения. Таким образом, серьезное внимание к безопасности приложений, безопасности данных и безопасности в рамках SDLC – это, исходя из его опыта, и вправду тренд.
Также я говорил со Стивеном Димитровым, директором отдела программных решений компании Merida. Стив сказал, что в его организации 60% бизнеса – это традиционное тестирование приложений. Тогда как оставшиеся 40% — это тестирование безопасности этих приложений.
Если бы мы обратились к этим цифрам на пару лет пораньше, процентное соотношение было бы примерно 80 к 20. Поэтому если вы до текущего момента не имели дело с безопасностью, вам вскоре придется ей заняться, поскольку вашей команде в 2020 году придется проводить тестирования безопасности.
Когда я бывал на конференциях в 2017, 2018 (и даже в начале 2019 года), и речь заходила об автоматизации тестирования с помощью ИИ, слушатели закатывали глаза. Теперь нет. Я считаю, что в этом году идея автоматизации тестирования с помощью ИИ наконец дозреет. И что 2020 год – это год, когда настанет момент принятия инструментов тестирования с использованием машинного обучения. Тестировщики, наконец, увидят, что эти решения помогут улучшить тестирование, а не заменить людей вовсе.
Решения из области машинного обучения станут более частым явлением.
В 2019 году я разговаривал со множеством людей, которые работают над решениями со встроенным машинным обучением/ИИ, и знаком с несколькими открытыми инструментами, у которых также будут подобные функции.
Машинное обучение и ИИ получат более широкое признание и в этой области мы увидим еще много инновационных решений.
Если ИИ получит распространение, то Python последует за ним. Я люблю Python, я в нем разбираюсь и в этом его прелесть.
Он почти как изолента, в смысле, с его помощью вы можете сделать все что угодно. Для меня это отличный язык для создания потрясающих вспомогательных инструментов, а вспомогательные инструменты не обязаны быть высокоуровневыми разработками. Кроме того, если вы еще не знаете, даже Google активно использует TensorFlow, который является библиотекой Python.
Я считаю, что из этого следует, что Python в 2020 году окажется крайне востребованным навыком. Именно поэтому на Automation Guild 2020 мы проводим 2 сессии, чтобы помочь быстрее освоиться с Python. Первая сессия будет проходить под руководством Эндрю Найта. Он покажет вам, как начать работать с Python. Также вы узнаете, как использовать Python для тестирования REST сервисов.
Вторая сессия «Pytest the Awesome Parts» от Джоша Гранта из Sauce Labs. Sauce Labs – это большая компания, которая работает с множеством людей, поэтому если Джош отдает предпочтение Python, то это вероятно та тенденция, которой компания будет придерживаться. Так что, если у вас мало опыта в Python, у вас будет лишний повод не пропустить Automation Guild 2020.
Я знаю, о чем вы думаете – я пишу об этом с 2014 года. Но я верю в то, что в 2020 году тестирование API станет реальностью. В 2019 году я говорил с некоторыми людьми, которые укрепили мою веру в то, что это направление в 2020 году станет еще более критичным. Вам непременно стоит освоить навык тестирования API, если вы этого еще не сделали.
Недавно я говорил с Полом Гроссманом. Пол в течение некоторого времени был без работы, и ему нужно было какое-то время, чтобы найти новую. Наконец, я спросил его: «В чем дело? Почему тебя не берут на работу?» На что он ответил: «Причина, по которой я еще не работаю, заключается в том, что у меня нет опыта в тестировании API.» Потом он добавил: «Да, GUI – это устаревшая тема, микросервисы сейчас пользуются куда большим спросом.» Пол говорил, что на каждом собеседовании, на котором он бывал, поднималась тема тестирования API.
Также я говорил с Патриком Пуленом, генеральным директором API Fortress и о его взглядах на тенденцию тестирования API. Он рассказал о том, что за последние несколько лет его компания спонсировала около 20 конференций, и он заметил, что тестирование API становится гораздо более масштабным движением в сообществе тестировщиков. В начале 2019 года он общался с людьми, у которых не было никаких формальных процессов тестирования API, но теперь эта тема выстрелила. Раньше, когда они делали презентации о том, как перейти от ручного тестирования API с автоматизированному, ими интересовались всего человек 10 или около того. Теперь на таких митапах яблоку негде упасть и это только начало.
Я частенько посещал сайты по поиску работы и вбивал в поисковик ключевые слова, чтобы проверить насколько часто они встречаются в описании вакансии по моему профилю, чтобы если меня внезапно уволят (как это уже случалось), я знал, какие навыки нужно будет оттачивать или приобретать, чтобы найти новую работу. Одним из направлений, которое я рассматривал, было тестирование блокчейн-приложений. Я был удивлен количеством фирм, которые добавили этот пункт в раздел требований к тестировщикам.
Например, приведу несколько цитат с сайта Indeed.com:
Для информации, у нас в Automation Guild будет блокчейн-сессия от Райяна Льюиса, которую вам обязательно надо послушать.
Еще одно модное слово, о котором вы возможно еще не слышали – это RPA или роботизированная автоматизация процессов. Сейчас отличное время, чтобы получить путевку в жизнь с помощью RPA. Недавно я говорил с Джимом Хейзеном, и он открыл мне глаза на эту область, и, возможно, именно на ней в 2020 году я и сосредоточусь.
Что такое RPA? Вместо автоматизации функционального тестирования, вы будете запускать различные сценарии обработки данных. В частности, вы можете больше сосредоточиться на автоматизации рабочих процессов. Скажем, у вас может быть система страховых выплат, то есть система документооборота. Вы можете использоваться RPA для управления либо какой-то частью этого процесса, либо сразу всей системой. Автоматизируя распространенные бизнес-процессы, вы снижаете вероятность ошибки по вине человеческого фактора. Здесь есть большое сходство с функциональной автоматизацией, за исключением того, что речь идет скорее об автоматизации бизнес-функций, а не тестировании какого-либо функционала.
Так что если вы уже занимаетесь автоматизацией, то знайте, что это полезный навык, который в 2020 году станет еще более востребованным. Я интересуюсь открытием новых сфер деятельности, в которых не так много людей, поскольку мне кажется, что автоматизация уже переполнена теми, кто считает себя (зачастую неоправданно) экспертом по Selenium. Также это влияет на ту сумму, которую можно заработать в качестве консультанта по Selenium. За последние несколько лет она сильно снизилась. Поэтому если вы хотите повысить ценность своих консалтинговых услуг или свою ценность как специалиста внутри компании, RPA – это то, на что стоит обратит внимание.
В последнее время я вижу все больше решений по автоматизации, которые, по сути, представляют из себя обертки Selenium на базе Appium. Такие инструменты дополняют тот функционал Selenium и Appium, который в обычном случае пришлось бы писать с нуля. Я считаю, что эта тенденция сохранится на протяжении 2020 года, и что мы увидим еще больше решений для создания автоматизированных тестов без особых усилий по написанию кода.
Например, такие инструменты, как TestProject.io имеют встроенные библиотеки переиспользуемых блоков, которые можно использовать в тестовом сценарии без необходимости писать что-то самостоятельно.
В TestProject у вас есть доступ ко множеству встроенных функций. Они помогают вам реализовать множество вещей, которые в обычном случае пришлось бы писать с нуля для создания собственной платформы автоматизации тестирования. Другие инструменты будут перенимать этот подход в 2020 году.
Плюс в том, что вам не нужно начинать с нуля. Вы можете выбрать уже существующее решение и с легкостью его запустить, воспользовавшись готовыми возможностями кода, которые вы можете просто включить в свой сценарий и получить результат без надобности писать все самостоятельно. Такие решения позволят вам не беспокоиться о добавлении механизма ожидания, поскольку об этом позаботятся за вас. Поэтому в 2020 году мы, скорее всего, увидим больше переиспользуемых low code решений, которые приближают нас к осуществлению мечты об автоматизации без кода. Также такие инструменты облегчат специалистам автоматизацию без необходимости погружаться в основы Selenium и Appium API.
Следующая тенденция – это мое предсказание еще на 2019 год, и оно, собственно, сбылось. С помощью умного выполнения разработчик может проверить код, а вы будете знать, какие именно тесты вам нужно запустить, чтобы покрыть конкретный случай. Поэтому вместо того, чтобы запускать сразу все тесты для полного покрытия, что сейчас чаще всего рекомендуется, мы начнем проводить меньшее количество тестов. Вы можете сэкономить время, деньги и ресурсы, поскольку у вас будет меньший набор тестов, который ориентирован на проверку определенного кода.
Если тесты не проходят, вы точно знаете, что есть четкая взаимосвязь между текущей проверкой и тестами. В целом, так вы сможете ускорить процесс тестирования. В последнее время в этой области появилось множество инструментов, в том числе Sealights, который предлагает отличное решение. Помимо этого, у Parasoft недавно появился Selenic с умным выполнением. Несколько месяцев назад я также общался с ребятами из Appsurify, и они предлагают функционал, который помогает вам с умным выполнением тестов. Развитие этого направления мы увидим в 2020 году.
Впервые я услышал об этом от Джонатана Райта. AIOps – это расширение простого функционального тестирования за счет ИИ и применения его ко всем видам деятельности по разработке программного обеспечения. Например, для мониторинга состояния на продакшена. Таким образом можно взять информацию, полученную на этапе мониторинга и автоматически создать модель тестирования, чтобы понять, что все-таки произошло на продакшене. Затем эту модель можно использовать для автоматической генерации функциональных тестов и тестов на производительность, а полученную информацию использовать на протяжении всего пайплайна SDLC.
Также AIOps может помочь вам в принятии решений, используя машинное обучение для выявления ключевых инсайтов, которые вы, возможно, упустили в своем пайплайне. Например, такие инструменты как Appsurify, могут использовать полученные данные для создания метрик индивидуально для каждого разработчика, чтобы помочь вам определить сильные и слабые стороны вашей команды и давать сотрудникам посильные задачи. Также этот инструмент может предупредить вас о сомнительной проверке кода на основе истории изменения кода разработчиком. Поэтому все что связано с Continuous Testing, DevOps или CI/CD будет так или иначе интегрировано с ИИ. В 2020 году мы увидим движение в этом направлении.
Вот так выглядят мои прогнозы на 2020 год. Своим мнением вы можете поделиться в комментариях.
Подробнее о курсе.
Здесь представлены основные тенденции автоматизированного тестирования, о которых вы должны знать в 2020 году.
Тестирование безопасности
Одна из причин, по которой я считаю, что тестирование безопасности – это быстро растущая ниша, заключается в том, что из всех тем, о которых я слышал в подкасте Test Guild Automation, безопасность – та тема, о которой говорили больше всего. Помимо этого, исходя из недавней статьи SD Times, уровень безопасности сейчас претерпевает небывалый спад, потому что в 2019 году мы увидели вторую, третью и седьмую – самые значительные утечки данных за все время, судя по количеству людей от них пострадавших.
С тех пор как мы начали вести отдельный подкаст, посвящённый информационной безопасности, который называется TestGuild Security Podcast, я слышу, как важность этой темы возрастает, поскольку она коснулась проектов с открытым исходным кодом, которые многие люди используют для создания своих приложений.
В области безопасности мы приближаемся к критической точке.
Недавно я разговаривал с экспертами по безопасности, которые подтвердили, что они также наблюдают рост темпов тестирования в области безопасности. Например, Рик Салливан, вице-президент и генеральный директор направления программных сервисов DXC technology, рассказывал о том, что в тех компаниях, в которых он работал, безопасности уделялось большое внимание.
Он отметил, что безопасность на сегодняшний день в значительной степени связана с прикладным уровнем, чем очень схожа с тестированием. Дело в понимании природы уязвимостей, которые появляются, пока вы пытаетесь обеспечить более быстрые циклы разработки и доставки качественного программного обеспечения. Таким образом, серьезное внимание к безопасности приложений, безопасности данных и безопасности в рамках SDLC – это, исходя из его опыта, и вправду тренд.
Также я говорил со Стивеном Димитровым, директором отдела программных решений компании Merida. Стив сказал, что в его организации 60% бизнеса – это традиционное тестирование приложений. Тогда как оставшиеся 40% — это тестирование безопасности этих приложений.
Если бы мы обратились к этим цифрам на пару лет пораньше, процентное соотношение было бы примерно 80 к 20. Поэтому если вы до текущего момента не имели дело с безопасностью, вам вскоре придется ей заняться, поскольку вашей команде в 2020 году придется проводить тестирования безопасности.
Применение автоматизированного тестирования с искусственным интеллектом
Когда я бывал на конференциях в 2017, 2018 (и даже в начале 2019 года), и речь заходила об автоматизации тестирования с помощью ИИ, слушатели закатывали глаза. Теперь нет. Я считаю, что в этом году идея автоматизации тестирования с помощью ИИ наконец дозреет. И что 2020 год – это год, когда настанет момент принятия инструментов тестирования с использованием машинного обучения. Тестировщики, наконец, увидят, что эти решения помогут улучшить тестирование, а не заменить людей вовсе.
Решения из области машинного обучения станут более частым явлением.
В 2019 году я разговаривал со множеством людей, которые работают над решениями со встроенным машинным обучением/ИИ, и знаком с несколькими открытыми инструментами, у которых также будут подобные функции.
Машинное обучение и ИИ получат более широкое признание и в этой области мы увидим еще много инновационных решений.
Расцвет Python
Если ИИ получит распространение, то Python последует за ним. Я люблю Python, я в нем разбираюсь и в этом его прелесть.
Он почти как изолента, в смысле, с его помощью вы можете сделать все что угодно. Для меня это отличный язык для создания потрясающих вспомогательных инструментов, а вспомогательные инструменты не обязаны быть высокоуровневыми разработками. Кроме того, если вы еще не знаете, даже Google активно использует TensorFlow, который является библиотекой Python.
Я считаю, что из этого следует, что Python в 2020 году окажется крайне востребованным навыком. Именно поэтому на Automation Guild 2020 мы проводим 2 сессии, чтобы помочь быстрее освоиться с Python. Первая сессия будет проходить под руководством Эндрю Найта. Он покажет вам, как начать работать с Python. Также вы узнаете, как использовать Python для тестирования REST сервисов.
Вторая сессия «Pytest the Awesome Parts» от Джоша Гранта из Sauce Labs. Sauce Labs – это большая компания, которая работает с множеством людей, поэтому если Джош отдает предпочтение Python, то это вероятно та тенденция, которой компания будет придерживаться. Так что, если у вас мало опыта в Python, у вас будет лишний повод не пропустить Automation Guild 2020.
Тестирование API
Я знаю, о чем вы думаете – я пишу об этом с 2014 года. Но я верю в то, что в 2020 году тестирование API станет реальностью. В 2019 году я говорил с некоторыми людьми, которые укрепили мою веру в то, что это направление в 2020 году станет еще более критичным. Вам непременно стоит освоить навык тестирования API, если вы этого еще не сделали.
Недавно я говорил с Полом Гроссманом. Пол в течение некоторого времени был без работы, и ему нужно было какое-то время, чтобы найти новую. Наконец, я спросил его: «В чем дело? Почему тебя не берут на работу?» На что он ответил: «Причина, по которой я еще не работаю, заключается в том, что у меня нет опыта в тестировании API.» Потом он добавил: «Да, GUI – это устаревшая тема, микросервисы сейчас пользуются куда большим спросом.» Пол говорил, что на каждом собеседовании, на котором он бывал, поднималась тема тестирования API.
Также я говорил с Патриком Пуленом, генеральным директором API Fortress и о его взглядах на тенденцию тестирования API. Он рассказал о том, что за последние несколько лет его компания спонсировала около 20 конференций, и он заметил, что тестирование API становится гораздо более масштабным движением в сообществе тестировщиков. В начале 2019 года он общался с людьми, у которых не было никаких формальных процессов тестирования API, но теперь эта тема выстрелила. Раньше, когда они делали презентации о том, как перейти от ручного тестирования API с автоматизированному, ими интересовались всего человек 10 или около того. Теперь на таких митапах яблоку негде упасть и это только начало.
Тестирование блокчейн-приложений
Я частенько посещал сайты по поиску работы и вбивал в поисковик ключевые слова, чтобы проверить насколько часто они встречаются в описании вакансии по моему профилю, чтобы если меня внезапно уволят (как это уже случалось), я знал, какие навыки нужно будет оттачивать или приобретать, чтобы найти новую работу. Одним из направлений, которое я рассматривал, было тестирование блокчейн-приложений. Я был удивлен количеством фирм, которые добавили этот пункт в раздел требований к тестировщикам.
Например, приведу несколько цитат с сайта Indeed.com:
«Quisitive позволяет компании использовать Microsoft Сloud, а также новые технологии, такие как блокчейн, искусственный интеллект, машинное обучение и Интернет Вещей (IoT). Мы ищем специалиста на должность Software Quality Assurance Engineer, чтобы проводить тестирование в соответствии с упомянутым стеком технологий.»
«Наша компания растет, расширяя набор предоставляемых услуг в сфере телемедицины, а предлагаемые решения разнятся от бэк-офиса до блокчейна. Требования к этой должность все еще формулируются внутри нашей организации. Тем не менее, если вы инженер-тестировщик с опытом тестирования блокчейн-приложений и аудита смарт-контрактов, мы бы хотели пригласить вас на собеседование.»
Для информации, у нас в Automation Guild будет блокчейн-сессия от Райяна Льюиса, которую вам обязательно надо послушать.
RPA
Еще одно модное слово, о котором вы возможно еще не слышали – это RPA или роботизированная автоматизация процессов. Сейчас отличное время, чтобы получить путевку в жизнь с помощью RPA. Недавно я говорил с Джимом Хейзеном, и он открыл мне глаза на эту область, и, возможно, именно на ней в 2020 году я и сосредоточусь.
Что такое RPA? Вместо автоматизации функционального тестирования, вы будете запускать различные сценарии обработки данных. В частности, вы можете больше сосредоточиться на автоматизации рабочих процессов. Скажем, у вас может быть система страховых выплат, то есть система документооборота. Вы можете использоваться RPA для управления либо какой-то частью этого процесса, либо сразу всей системой. Автоматизируя распространенные бизнес-процессы, вы снижаете вероятность ошибки по вине человеческого фактора. Здесь есть большое сходство с функциональной автоматизацией, за исключением того, что речь идет скорее об автоматизации бизнес-функций, а не тестировании какого-либо функционала.
Так что если вы уже занимаетесь автоматизацией, то знайте, что это полезный навык, который в 2020 году станет еще более востребованным. Я интересуюсь открытием новых сфер деятельности, в которых не так много людей, поскольку мне кажется, что автоматизация уже переполнена теми, кто считает себя (зачастую неоправданно) экспертом по Selenium. Также это влияет на ту сумму, которую можно заработать в качестве консультанта по Selenium. За последние несколько лет она сильно снизилась. Поэтому если вы хотите повысить ценность своих консалтинговых услуг или свою ценность как специалиста внутри компании, RPA – это то, на что стоит обратит внимание.
Low Code решения для автоматизации
В последнее время я вижу все больше решений по автоматизации, которые, по сути, представляют из себя обертки Selenium на базе Appium. Такие инструменты дополняют тот функционал Selenium и Appium, который в обычном случае пришлось бы писать с нуля. Я считаю, что эта тенденция сохранится на протяжении 2020 года, и что мы увидим еще больше решений для создания автоматизированных тестов без особых усилий по написанию кода.
Например, такие инструменты, как TestProject.io имеют встроенные библиотеки переиспользуемых блоков, которые можно использовать в тестовом сценарии без необходимости писать что-то самостоятельно.
В TestProject у вас есть доступ ко множеству встроенных функций. Они помогают вам реализовать множество вещей, которые в обычном случае пришлось бы писать с нуля для создания собственной платформы автоматизации тестирования. Другие инструменты будут перенимать этот подход в 2020 году.
Плюс в том, что вам не нужно начинать с нуля. Вы можете выбрать уже существующее решение и с легкостью его запустить, воспользовавшись готовыми возможностями кода, которые вы можете просто включить в свой сценарий и получить результат без надобности писать все самостоятельно. Такие решения позволят вам не беспокоиться о добавлении механизма ожидания, поскольку об этом позаботятся за вас. Поэтому в 2020 году мы, скорее всего, увидим больше переиспользуемых low code решений, которые приближают нас к осуществлению мечты об автоматизации без кода. Также такие инструменты облегчат специалистам автоматизацию без необходимости погружаться в основы Selenium и Appium API.
Умное выполнение тестов
Следующая тенденция – это мое предсказание еще на 2019 год, и оно, собственно, сбылось. С помощью умного выполнения разработчик может проверить код, а вы будете знать, какие именно тесты вам нужно запустить, чтобы покрыть конкретный случай. Поэтому вместо того, чтобы запускать сразу все тесты для полного покрытия, что сейчас чаще всего рекомендуется, мы начнем проводить меньшее количество тестов. Вы можете сэкономить время, деньги и ресурсы, поскольку у вас будет меньший набор тестов, который ориентирован на проверку определенного кода.
Если тесты не проходят, вы точно знаете, что есть четкая взаимосвязь между текущей проверкой и тестами. В целом, так вы сможете ускорить процесс тестирования. В последнее время в этой области появилось множество инструментов, в том числе Sealights, который предлагает отличное решение. Помимо этого, у Parasoft недавно появился Selenic с умным выполнением. Несколько месяцев назад я также общался с ребятами из Appsurify, и они предлагают функционал, который помогает вам с умным выполнением тестов. Развитие этого направления мы увидим в 2020 году.
AIOps
Впервые я услышал об этом от Джонатана Райта. AIOps – это расширение простого функционального тестирования за счет ИИ и применения его ко всем видам деятельности по разработке программного обеспечения. Например, для мониторинга состояния на продакшена. Таким образом можно взять информацию, полученную на этапе мониторинга и автоматически создать модель тестирования, чтобы понять, что все-таки произошло на продакшене. Затем эту модель можно использовать для автоматической генерации функциональных тестов и тестов на производительность, а полученную информацию использовать на протяжении всего пайплайна SDLC.
Также AIOps может помочь вам в принятии решений, используя машинное обучение для выявления ключевых инсайтов, которые вы, возможно, упустили в своем пайплайне. Например, такие инструменты как Appsurify, могут использовать полученные данные для создания метрик индивидуально для каждого разработчика, чтобы помочь вам определить сильные и слабые стороны вашей команды и давать сотрудникам посильные задачи. Также этот инструмент может предупредить вас о сомнительной проверке кода на основе истории изменения кода разработчиком. Поэтому все что связано с Continuous Testing, DevOps или CI/CD будет так или иначе интегрировано с ИИ. В 2020 году мы увидим движение в этом направлении.
Тренды 2020 года – Где я был не прав или что-то упустил?
Вот так выглядят мои прогнозы на 2020 год. Своим мнением вы можете поделиться в комментариях.
Подробнее о курсе.