Какое будущее ожидает тестирование программного обеспечения?
За последние десять лет индустрия программного обеспечения сильно изменилась. И хотя трудно точно предсказать, что принесет следующее десятилетие, оно, безусловно, поставит перед специалистами по тестированию и контролю качества целый ряд новых задач.
Несмотря на то, что специалисты по тестированию часто остаются невоспетыми героями, их работа получает все большее признание за ее вклад в DevOps. В то же время тестирование будет продолжать становиться неотъемлемой частью других частей жизненного цикла программного обеспечения, а быстро развивающиеся инструменты сделают тестирование доступным для большего числа членов команды.
Итак, что, как мы знаем или хотя бы подозреваем, повлияет на будущее тестирования программного обеспечения?
Искусственный интеллект (artificial intelligence) и машинное обучение (machine learning)
Во-первых, это искусственный интеллект и машинное обучение, которые давно прогнозировались как путь к тому, чтобы сделать тестирование программного обеспечения лучше, быстрее и дешевле.
Однако для того, чтобы к этому прийти, потребуется время. Одновременно с этим изменится тип требуемых навыков. Для работы, связанной с тестированием программного обеспечения, потребуется больше опыта работы с данными и аналитикой, поэтому образование в области науки о данных и глубокого обучения (deep learning) должно стать частью роли тестировщика программного обеспечения. Кроме того, поскольку все больше тестов автоматизируется, человеческое взаимодействие будет иметь реальную ценность при утверждении результатов тестирования и принятии соответствующих мер.
Прогрессивные веб-приложения (Progressive Web Applications) стали одним из самых больших достижений в веб-технологиях за последние годы, предлагая удобство мобильного приложения и веб-сайта в одном, обеспечивая пользователям бесперебойную работу.
Хотя прогрессивные веб-приложения и собираются бросить вызов мобильным нативным приложениям, им обоим придется сосуществовать в цифровом пространстве. Команды должны подготовить надежные стратегии разработки и тестирования, чтобы охватить оба типа приложений.
До сих пор существуют технические пробелы и преимущества мобильных операционных систем перед прогрессивными веб-приложениями. Им необходимо догнать по таким характеристикам как поддержка датчиков, безопасность, пользовательский интерфейс и другим параметрам, чтобы мобильные приложения оставались актуальными и приоритетными.
Обновление мобильных устройств
Телефоны-раскладушки (которые были так популярны в 1990-х годах!) возвращаются, и несколько производителей выпустили такие телефоны, включая переосмысление культового RAZR от Motorola. Хотя это отличная новость для потребителей и рыночная возможность для производителей телефонов, тестирование программного обеспечения и приложений для раскладных телефонов окажет огромное дополнительное давление на тестирование программного обеспечения.
Объем тест-кейсов будет стремительно расти, создавая риск увеличения циклов обратной связи и замедления выпуска релизов. Нельзя терять время, чтобы убедиться, что лаборатории тестирования программного обеспечения готовы к тому, что, как ожидается, станет одной из крупнейших тенденций 2020 года и последующих лет.
Продолжая мобильную тему, сотовые сети 5G скоро станут стандартом, обеспечивая большую скорость и покрытие. И снова разработчики приложений столкнутся с еще более сложными задачами тестирования. Команды должны будут сосредоточиться на том, насколько хорошо приложения подключаются и работают с другими устройствами и операционными системами. Совместимость будет иметь большое значение - не только от устройства к устройству, но и с учетом Интернета Вещей (Internet of Things). Помимо обеспечения более надежной среды тестовой лаборатории, дополнительную помощь в покрытии сценариев тестирования 5G оказывают решения для виртуализации сети, логи, HAR файлы и другие подобные подходы.
Еще одна, казалось бы, неудержимая тенденция – распознавание голоса. Эта технология встроена во многие телефоны и другие устройства. При тестировании программного обеспечения и мобильных приложений распознавание голоса создает определенные трудности.
Тестирование голосовых команд требует очень сложных систем и подходов, и они будут расти по мере внедрения функций голосовых команд. Именно поэтому системы автоматизации тестирования с открытым исходным кодом будут развиваться для поддержки тестирования голосовых команд.
Еще более важным мегатрендом является Интернет Вещей (Internet of Things), который должен выйти на новый уровень, особенно благодаря "умной связи", которую обеспечит 5G. Когда IoT станет основным направлением во всех сферах нашей повседневной жизни, для тестирования IoT-приложений потребуется очень сложная облачная лаборатория. Уже сейчас тестирование разнообразных операционных систем и устройств, доступных сегодня, является сложной задачей, и эта сложность будет только возрастать по мере увеличения объемов и типов "умных" устройств.
Новые или усовершенствованные методологии
ИТ-директора уже изучают возможности использования инструментов разработки с низким и нулевым кодом для ускорения разработки программного обеспечения. В свою очередь, эти движения вводят дополнительные нюансы при тестировании программного обеспечения, с большим количеством тест-кейсов и более широким охватом. Создается больше программного обеспечения с более низким барьером для входа и более быстрым временем выхода на рынок. Поэтому быстрая обратная связь, поддерживаемая интеллектуальными платформами автоматизации тестирования, будет иметь жизненно важное значение.
DevOps не нуждается в представлении. Но важно помнить, что эта методология все еще находится на сравнительно ранней стадии, и это будет иметь последствия, выходящие далеко за рамки "shift left" тестирования. DevOps станет в большей степени машиной непрерывной разработки, поддерживаемой облачными сервисами, автоматизацией тестирования и инструментами, предоставляющими своевременные, постоянные данные для оценки производительности.
Однако успех непрерывной разработки в рамках DevOps зависит не только от технологий. Главным фактором здесь будут люди. Команды должны работать вместе, чтобы объединить навыки разных отделов. Опять же, более широкое использование средств автоматизации тестирования и инструментов тестирования с низким кодом поможет обеспечить вклад большего числа сотрудников в организации.
Будет интересно проанализировать эти прогнозы через год, не говоря уже о десяти. В индустрии тестирования программного обеспечения есть одна определенность: перемены. К тому же, хотя невозможно точно предсказать, что ждет тестирование в будущем, есть несколько выделяющихся требований, среди которых масштабируемость, автоматизация, аналитика и более интеллектуальные методы занимают первое место.