В последние десятилетия тестирование программного обеспечения развивается весьма стремительно. Раньше было доступно лишь небольшое количество инструментов для этого, но теперь у нас есть огромный выбор, в котором мы не ограничены. От наших взглядов на ПО, риски, тестовые подходы и стратегии зависит на сколько качественный продукт мы выпустим. И технологии определенно влияют на наш подход к тестированию, а пока развитие будет на должном уровне, это влияние будет продолжаться. Но уже сейчас можно выделить 5 ключевых вещей, которые определяют будущее тестирования ПО.
Искусственный интеллект
В настоящее время на рынке очень мало надежных инструментов, которые используют машинное обучение, чтобы помочь в разработке и выполнении функционального, сквозного и регрессионного тестирования. В первую очередь они сконцентрированы на автоматизации тестирования на основе UI (User Interface) - чем больше тестов создается пользователем, тем более совершенным становится алгоритм, что делает тесты более стабильными.
Вот некоторые из преимуществ, которые мы могли бы увидеть при тестировании благодаря ИИ:
Более легкое создание тестов
Более быстрое исправление багов
Простота интеграции CI/CD (Continuous Integration — это практика разработки программного обеспечения, которая заключается в слиянии рабочих копий в общую основную ветвь разработки несколько раз в день и выполнении частых автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем).
Больше многоразовых тестов
Например, создаётся инфраструктура автоматизации с Cucumber, Java и Appium. Когда разработчик меняет атрибуты элемента, которые уже были охвачены этими автоматическими тестами, они дают сбой. В результате тратится много времени для поддержания этих тестов, вместо проверки новых реализованных функциональных возможностей. Эту проблему можно решить с помощью динамических локаторов ИИ-выписок из Document Object Model (DOM). В реальном времени ИИ анализирует все деревья и свойства объектов из DOM и может создавать список различных атрибутов для определенного элемента. Тесты более стабильны, разработка и выполнение тестов происходит намного быстрее, и тестировщик тратит меньше времени на техническое обслуживание.
2. DevOps
DevOps помогает командам разработчиков и операционным группам сотрудничать более продуктивно, тем самым обеспечивая постоянную автоматизацию и мониторинг на протяжении всего жизненного цикла разработки программного обеспечения.
Как это повлияет на тестирование ПО? Тут всё просто:
Автоматизация всех тестовых случаев может начинаться прямо в начале жизненного цикла разработки.
Все задачи QA должны быть распределены для обеспечения плавного цикла CI/CD.
Для обеспечения непрерывного мониторинга в производственной среде необходим высокий уровень сотрудничества.
Таким образом, вся команда работает вместе, как единое целое, и тестирование может происходить параллельно этапу разработки, а также каждый участник команды имеет возможность вносить «вклад» в каждый этап разработки, что делает команду более сплоченной.
3. QA как услуга
Так же, как SaaS (программное обеспечение как услуга), IaaS (инфраструктура как услуга) и PaaS (платформа как услуга), теперь у нас есть QAaaS.
Компании, у которых есть решения QAaaS, облегчают различные аспекты процесса тестирования ПО, предоставляя:
Решения для тестирования и обслуживания тестовых случаев
Инструменты автоматизации тестирования с меньшей потребностью в коде
Простую интеграцию с системами CI
Проблема, с которой наверняка сталкивались многие, заключается в том, чтобы поддерживать собственные серверные машины для запуска автоматических тестов. Они имеют разные проблемы - нехватка места для хранения данных, слабое подключение к Интернету, медленная скорость обработки тестов, которые выполняются непрерывно в течение недели, необходимость часто обновляться с использованием новейших ОС, инструментов сборки, патчи безопасности, и т. д. Эти проблемы могут быть решены с помощью поставщиков QАaaS, поскольку они могут выполнить все эти действия для вас, поэтому члены команды могут сосредоточиться на более важных задачах.
4. Интернет вещей
С появлением умных домов, приложений контроля здоровья и других облачных технологий, Интернет вещей (IoT) стал большой темой для обсуждений. В одной из предыдущих статей мы уже обсуждали аспекты тестирования IoT. (http://telegra.ph/Internet-veshchej-podhod-k-testirovaniyu-vyzovy-i-instrumenty-CHAST-1-03-16)
Тестирование IoT отличается особой сложностью, а так как эти технологии стремительно развиваются, то, несомненно, это повлияет на наше представление тестирования, особенно потому, что мы будем вынуждены уделять больше внимания интеграционному тестированию, нежели тестировать каждый компонент отдельно.
Для примера рассмотрим тестирование фитнес-трекера. Мобильное приложение и браслет должны передавать данные друг другу. Эти данные, в свою очередь, должны интегрироваться с разными версиями приложения на разных устройствах, с другими данными в режиме реального времени, а также перемещаться в облако. Невозможно качественно протестировать такую архитектуру, не прибегнув к методам интеграционного тестирования. А поскольку всё больше аналогичных устройств выходит на рынок, то эти методы будут играть важнейшую роль для организаций.
5. Роботы
Не секрет, что роботы тоже могут проводить тестирование. Некоторые могут подумать, что это неправильно с точки зрения безопасности, но все же человеческий разум никогда не может быть заменен. Люди нужны в любом случае, чтобы настраивать роботов, оценивать качество их работы, фактически управлять ими.
Таким образом, прогресс в технологиях уже начал влиять на то, как мы тестируем ПО. Это также заставляет компании переосмысливать свою организационную структуру: команда QA все больше внедряется в команду разработчиков. Также важно, чтобы исследования шли рука об руку с разработкой. Так продукцию можно сделать максимально полезной для клиента.
Чтобы реализовывать новые прогрессивные идеи, компании должны не препятствовать инновациям, а наоборот поддерживать их. Для этого важно уметь менять взгляды на то, как мы рассматриваем системы и соответственно тестируем их. Мы можем либо игнорировать прогресс, либо принимать его. А как поступите вы?
18 мая / 2018
Comments