Привет, Хабр! Представляю вашему вниманию перевод статьи «From the Experts: Top 5 Trends Shaping the Future of Software Testing» автора QASymphony.

Сфера тестирования программного обеспечения постоянно трансформируется.

Что же стоит за этими изменениями? И что важно, что ожидает тестировщиков?

В этой статье собраны мнения 12 ведущих экспертов в области тестирования ПО.

  • Джо Колантонио, основатель TestTalks & GuildConferences
  • Энджи Джонс, старший инженер-программист по тестированию в Twitter
  • Бобби Смит, директор по научно-исследовательским и опытно-конструкторским работам в QASymphony
  • Кит Клэйн, исполнительный директор, руководитель отдела управления качеством программного обеспечения Tekmark Global Solutions
  • Пол Меррилл, главный инженер по тестированию и основатель компании Beaufort Fairmont
  • Кевин Данн, вице-президент по развитию и стратегии бизнеса компании QASymphony
  • Брэндон Сайпс, вице-президент DevOps в CPrime
  • Джозеф Орс, руководитель национальной практики обеспечения качества программного обеспечения и тестирования в компании Centric Consulting
  • Райан Якель, директор по маркетингу продукции QASymphony
  • Муш Хонда, вице-президент по тестированию в KMS Technology
  • Сума Даниэль, аналитик в Forty8fifty
  • Сунил Сехгал, управляющий партнер TechArcis Solutions

Изменения в области тестирования обусловлены как внешними, так и внутренними факторами. Давайте рассмотрим некоторые из них.

Внешние факторы


  1. Широкое использования технологий в повседневной жизни. Согласно отчету компании App Annie за 2017 год, мы используем в среднем девять приложений в день, и это только на смартфонах. Подумайте, как измениться это число, если учесть остальные технологии, которые вы используете в течение дня.
  2. Повышение ожиданий пользователей от программного обеспечения. Например, TechBeacon выяснил, что 49% пользователей ожидают, что приложения отреагируют на запрос за две секунды или меньше, и 80% пользователей не будут использовать приложение с ошибками более трех раз.
  3. Потребность в разработке нового и улучшениях существующего программного обеспечения. Мир не стоит на месте, технологии постоянно развиваются,....

Согласно исследованию IDC, к 2020 году мировой рынок продуктов и услуг Internet of Things достиг 7,1 триллиона долларов, что создало необходимость для каждой компании улучшать разработку и тестирование ПО.

Внутренние факторы


  1. Рост технологических решений, помогающих на протяжении жизненного цикла разработки программного обеспечения (SDLC). Согласно графику SDLC 2017 года, существует чуть более 1500 различных инструментов, которые тестировщики могут использовать в рамках SDLC, но неправильное их использование может значительно усложнить работу.
  2. Рост Agile и DevOps ощутимо влияет на тестирование программного обеспечения. По данным VersionOne, 95% компаний используют Agile, а по данным RightScale, внедрение DevOps достигло 74%. Таким образом, тестировщикам необходимо постоянно адаптироваться.
  3. Автоматизация быстро становится подходом по умолчанию, однако тестировщики должны быть осторожны в поиске правильного баланса между автоматическим и ручным тестированием.

Чего ожидать: Тенденции в развитии тестирования ПО


Автоматизация — будущее тестирования

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

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

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

«Использование умных инструментов для выполнения простых задач позволит тестировщикам тратить больше времени и энергии на более эффективные виды тестирования», — заключает Хонда.

ИИ и машинное обучение

В мире тестирования программного обеспечения появляется множество новых технологий, в частности, ИИ и машинное обучение.

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

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

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

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

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

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

Границы размываются

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

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

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

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

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

В заключении отметим еще несколько ключевых моментов:

  1. По мере того, как циклы релизов набирают скорость, безопасность выходит на первый план. Основной совет — в мире, где программное обеспечение выходит на рынок с молниеносной скоростью, уровень безопасности может очень легко упасть. Многое зависит от тестировщиков, которые не должны этого допустить. И хотя это нормально для Facebook и Instagram: выпуск программного обеспечения с некоторыми незначительными ошибками, когда дело доходит до таких вещей, как финансовое и медицинское программное обеспечение, ошибок быть не может.
  2. Лидеры в области тестирования должны научиться управлять растущим и сложным технологическим SDLC. Безусловно, технологические решения, доступные в настоящее время в SDLC, могут помочь командам развиваться и двигаться быстрее, но они также могут усложнить ситуацию, так как необходимо определить, какая именно технология им нужна и как они будут ее использовать.
  3. Тестировщики останутся незаменимыми. Даже если разработчики берут на себя некоторые обязанности по контролю качества, тестировщики не будут исключены из процесса. Напротив, тестировщики привносят в процесс перспективу и опыт, который разработчики и другие члены команды не могут повторить. В будущем тестировщики будут не только ответственными за качество, но и будут подсказывать, как обеспечить соответствие программного обеспечения определенным стандартам качества.
  4. Возможности для тестировщиков будут только расти. И эти возможности уже расширяются, так как тестирование становится все более увлекательным, сложным и востребованным.