Сфера тестирования программного обеспечения постоянно трансформируется.
Что же стоит за этими изменениями? И что важно, что ожидает тестировщиков?
В этой статье собраны мнения 12 ведущих экспертов в области тестирования ПО.
- Джо Колантонио, основатель TestTalks & GuildConferences
- Энджи Джонс, старший инженер-программист по тестированию в Twitter
- Бобби Смит, директор по научно-исследовательским и опытно-конструкторским работам в QASymphony
- Кит Клэйн, исполнительный директор, руководитель отдела управления качеством программного обеспечения Tekmark Global Solutions
- Пол Меррилл, главный инженер по тестированию и основатель компании Beaufort Fairmont
- Кевин Данн, вице-президент по развитию и стратегии бизнеса компании QASymphony
- Брэндон Сайпс, вице-президент DevOps в CPrime
- Джозеф Орс, руководитель национальной практики обеспечения качества программного обеспечения и тестирования в компании Centric Consulting
- Райан Якель, директор по маркетингу продукции QASymphony
- Муш Хонда, вице-президент по тестированию в KMS Technology
- Сума Даниэль, аналитик в Forty8fifty
- Сунил Сехгал, управляющий партнер TechArcis Solutions
Изменения в области тестирования обусловлены как внешними, так и внутренними факторами. Давайте рассмотрим некоторые из них.
Внешние факторы
- Широкое использования технологий в повседневной жизни. Согласно отчету компании App Annie за 2017 год, мы используем в среднем девять приложений в день, и это только на смартфонах. Подумайте, как измениться это число, если учесть остальные технологии, которые вы используете в течение дня.
- Повышение ожиданий пользователей от программного обеспечения. Например, TechBeacon выяснил, что 49% пользователей ожидают, что приложения отреагируют на запрос за две секунды или меньше, и 80% пользователей не будут использовать приложение с ошибками более трех раз.
- Потребность в разработке нового и улучшениях существующего программного обеспечения. Мир не стоит на месте, технологии постоянно развиваются,....
Согласно исследованию IDC, к 2020 году мировой рынок продуктов и услуг Internet of Things достиг 7,1 триллиона долларов, что создало необходимость для каждой компании улучшать разработку и тестирование ПО.
Внутренние факторы
- Рост технологических решений, помогающих на протяжении жизненного цикла разработки программного обеспечения (SDLC). Согласно графику SDLC 2017 года, существует чуть более 1500 различных инструментов, которые тестировщики могут использовать в рамках SDLC, но неправильное их использование может значительно усложнить работу.
- Рост Agile и DevOps ощутимо влияет на тестирование программного обеспечения. По данным VersionOne, 95% компаний используют Agile, а по данным RightScale, внедрение DevOps достигло 74%. Таким образом, тестировщикам необходимо постоянно адаптироваться.
- Автоматизация быстро становится подходом по умолчанию, однако тестировщики должны быть осторожны в поиске правильного баланса между автоматическим и ручным тестированием.
Чего ожидать: Тенденции в развитии тестирования ПО
Автоматизация — будущее тестирования
Сайпс прогнозирует, что «будущее тестирования программного обеспечения — это почти полностью автоматизированные тестовые кейсы. Автоматизация — это замечательно, но если вы автоматизируете не ту область, вы не оберетесь проблем», — добавляет он.
С другой стороны, такие эксперты, как Якель, Данн, Орс и Хонда, считают, что необходимо быть осторожными в автоматизации. По мнению Якеля, существует множество взглядов на перевод тестирования в полную автоматизацию, «но вы должны понимать, что не каждую вещь, которую вы делаете, можно автоматизировать». Вы все еще нуждаетесь в ручном взаимодействии с людьми, особенно с пользователями. Вокруг автоматизации собрано большое количество нереалистичных ожиданий, но необходимо удерживать баланс.
Данн отмечает, что тестировщики должны быть осторожны с чрезмерной автоматизацией, ссылаясь на ловушки, в которые легко попасть. Первая ловушка в том, что можно автоматизировать все, а вторая ловушка в том, что вы якобы делаете качественное тестирование, написав много автоматизированных тестов. Но чрезмерная автоматизация на самом деле может понизить эффективности из-за высокого уровня обслуживания. В свою очередь, это может в свою очередь привести к снижению качества тестов.
«Использование умных инструментов для выполнения простых задач позволит тестировщикам тратить больше времени и энергии на более эффективные виды тестирования», — заключает Хонда.
ИИ и машинное обучение
В мире тестирования программного обеспечения появляется множество новых технологий, в частности, ИИ и машинное обучение.
По словам Сехгала, несмотря на то, что ИИ и Машинное обучение еще достаточно незрелы, они определенно имеют практическую реализацию с точки зрения тестирования. «В конечном счете, — говорит он, — эти технологии дают нам дополнительный уровень автоматизации. Они станут обязательными, расширят горизонты тестирования и станут самоадаптирующимися».
Джонс считает: «По мере того, как ПО становится все более сложным и взаимосвязанным с другим программным обеспечением, а также с нашим физическим миром, традиционные подходы к тестированию должны развиваться. В мире, где доминируют IoT, ИИ и машинное обучение, тестирование останется неизменным в своей основе, но инструменты, методы и подходы должны развиваться».
Тестировщики должны быть готовы адаптироваться к изменениям и овладевать новыми методами
Колантонио считает, что для того, чтобы преуспеть в будущем, тестировщики должны внимательно следить за тенденциями, общаясь с разными людьми в сообществе и интересуясь, что делают другие организации. «По мере роста отрасли у нас появляется больше возможностей посетить встречи или конференции и просто поговорить с как можно большим количеством людей, чтобы быть в курсе того, что происходит и что нового», — объясняет он. В процессе развития технологий тестировщикам необходимо постоянно обновлять свою базу знаний, чтобы идти в ногу со временем.
Дэниел сужает круг вопросов, связанных с изучением новых подходов к тестированию и пониманию общей картины. Он утверждает: «Чтобы добиться успеха в будущем, тестировщики должны быть готовы адаптироваться и изучать новые технологии, а также принимать более гибкие циклы разработки, такие как DevOps».
Для тестировщиков также важно знать рынок, где находится их клиент или работодатель, потому что если они понимают риски, с которыми сталкивается компания, то они могут лучше понять, с какими конкурентами сталкиваются продукты, и где кроются проблемы, а также могут соответствующим образом планировать свое тестирование.
Границы размываются
По словам Якеля, тестировщики должны быть готовы к сотрудничеству с разработчиками.
Основываясь на видении Якеля, Данн считает, что будущее тестирования программного обеспечения заключается в устранении «обособленности тестирования» за счет изменения способа создания команд. Он говорит, что вместо того, чтобы создавать большие команды тестирования со специализированными ресурсами, организации перейдут к более мелким командам, состоящим из хорошо сформированных ресурсов, которые встроены в весь бизнес.
В этом же ключе Дэниел подчеркивает важность вовлечения команд по контролю качества в процесс разработки программного обеспечения на ранних стадиях. Он разделяет это мнение: «Командам необходимо лучшее планирование, а не большие команды по тестированию со специализированными ресурсами, которые встроены в бизнес».
Данн отмечает, что для того, чтобы адаптироваться к такому будущему, когда тестирование будет более интегрировано в бизнес, «тестировщики должны получить доступ к другим областям разработки, чтобы глубже взглянуть на проблемы и быть открытыми для обучения».
Смит утверждает, что ключом к успеху в этом мире размытых границ будет тесное сотрудничество с командами разработчиков и лучшая коммуникация с бизнесом. Он приходит в выводу, что выявление белых пятен и пробелов в коммуникации, которые существуют в настоящее время, сейчас как никогда важно, если команды хотят идти в ногу со временем.
В заключении отметим еще несколько ключевых моментов:
- По мере того, как циклы релизов набирают скорость, безопасность выходит на первый план. Основной совет — в мире, где программное обеспечение выходит на рынок с молниеносной скоростью, уровень безопасности может очень легко упасть. Многое зависит от тестировщиков, которые не должны этого допустить. И хотя это нормально для Facebook и Instagram: выпуск программного обеспечения с некоторыми незначительными ошибками, когда дело доходит до таких вещей, как финансовое и медицинское программное обеспечение, ошибок быть не может.
- Лидеры в области тестирования должны научиться управлять растущим и сложным технологическим SDLC. Безусловно, технологические решения, доступные в настоящее время в SDLC, могут помочь командам развиваться и двигаться быстрее, но они также могут усложнить ситуацию, так как необходимо определить, какая именно технология им нужна и как они будут ее использовать.
- Тестировщики останутся незаменимыми. Даже если разработчики берут на себя некоторые обязанности по контролю качества, тестировщики не будут исключены из процесса. Напротив, тестировщики привносят в процесс перспективу и опыт, который разработчики и другие члены команды не могут повторить. В будущем тестировщики будут не только ответственными за качество, но и будут подсказывать, как обеспечить соответствие программного обеспечения определенным стандартам качества.
- Возможности для тестировщиков будут только расти. И эти возможности уже расширяются, так как тестирование становится все более увлекательным, сложным и востребованным.
luckman
Ох уж эти статьи про тренды. Причём сами тренды в статьях не меняются как минимум с 2017 года
mdanilchyk Автор
Данные тенденции проверены временем и опытом на последних проектах. Поэтому выходит пока самые актуальные и универсальные. Тестировщики все еще очень важная часть разработки ПО
lxsmkv
Позвольте поправить. Тестирование — важная часть в почти любой стратегии обеспечения контроля качества продукта.
А тестировщик — это всего лишь выделеная роль. Которая, кстати, по моему мнению себя изживает потихоньку. Разработка и тестирование неразделимы, это как инь и янь. Так что, эта граница будет потихоньку стираться.
Обеспечивать качество продукта с помощью тестировщиков это как обеспечивать чистоту города с помощью дворников. Ведь интуитивно понятно, что в идеале стоит стремиться к тому, чтобы дворники были не нужны. «Чисто не там где убирают, а там где не мусорят».
У меня другой вопрос, про искуственный интеллект в тестировании все упоминают, и хоть бы один пример для какой конретно задачи. Читал вон как-то — генерирование тестовых данных. Но там тоже никакой конретики. А тут вон вообще «самоадаптирующийся ИИ» хотя все знают, что обученую нейронку переучить очень сложно. И к чему он должен адаптироваться — вообще не ясно.
mdanilchyk Автор
Спасибо за поправку)
Да, тенденция в автоматизацию есть. И в целом название QA Engineer себя потихоньку изживает, по крайней мере в США и Европе все чаще звучит название данное позиции как Software Developer in Test
По поводу искусcтвенного интеллекта. В любом случае есть процесс обучения нейронок, есть процессы ручной разметки, есть процессы проверки данных на выходе для разных слоев. Вот здесь может и помочь тестирование в классическом виде. Либо некие автоматизированные скрипты.
aviskase
Modern Testing Principles (Alan Page & Brent Jensen)
Все уже давно сформулировано и обсосано со всех сторон, повторяться не вижу смысла. Вкратце, тестирование — да, тестировщики — не факт.
Самоодаптирующийся ИИ думаю высосали из последнего опуса ISTQB, не самый уважаемый ныне источник. А так, почти все известные широкой публике "ИИ" это переучивающиеся локаторы (не спорю, есть другие разработки, но очень нишевые).