Широкое распространение портативных устройств и массовый перевод коммуникаций и транзакций в веб- и мобильные приложения кардинально меняют модель поведения пользователей. Эта тенденция вынуждает компании модернизировать способы и ускорять доставку продуктов и услуг. С учетом того, что потребители ожидают от поставщика быстрого и бесшовного взаимодействия через веб-сайт или мобильное приложение, многие организации обратили свой взор к гибкой (agile) разработке, фактически неотъемлемой составляющей цифровой трансформации. Все более важную роль в ней играют команды разработчиков, способные своевременно реагировать на потребности клиентов путем создания безупречных приложений, которые критически важны для достижения успеха в бизнесе.
Подспорьем разработчикам для достижения этой цели являются инструменты и технологии, связанные с гибкими методологиями разработки на основе DevOps. При этом непрерывное тестирование — критически важный компонент современного сценария разработки. Выполняемое должным образом, оно позволяет разработчикам в режиме реального времени выявлять и исправлять ошибки на протяжении всего процесса разработки, что, в свою очередь, обеспечивает непрерывную и своевременную доставку приложений, а также гарантирует достижение наилучшего пользовательского опыта.
Вице-президент по продуктам поставщика платформы для автоматизированного тестирования Sauce Labs Любош Паробек приводит на портале eWeek шесть советов, которые помогут должным образом наладить непрерывное тестирование мобильных и веб-приложений.
1. Баланс между мобильными и веб-приложениями
Предприятиям, которые стремятся «оцифровать» бизнес, следует подобрать правильный баланс между инвестициями в свои мобильные и веб-приложения. Принято считать, что последние имеют больший приоритет над мобильными приложениями. Проведите тщательную оценку вашей бизнес-модели, а также изучите покупательские привычки своих клиентов — это поможет разумно распределить ресурсы разработки между веб- и мобильными приложениями.
2. Качество продукта — ответственность не только разработчиков, но и тестировщиков
Как и любая другая важная ИТ-инициатива, разработка подходящей стратегии непрерывного тестирования требует тщательной проработки деталей, ответственного отношения и даже полагается на внутреннюю корпоративную культуру. Приверженность командной работе способствует сотрудничеству между группами разработчиков и тестировщиков. Обе команды должны тесно сотрудничать и нести общую ответственность за качество конечного продукта, что требует изменений в организации работы с технологиями и инструментами.
Например, и разработчики, и тестировщики могут применять сходные методы работы. К таковым можно отнести разработку через тестирование (test-driven development, TDD), которая основывается на повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, затем пишется код, который позволит пройти тест, и под конец проводится рефакторинг нового кода к соответствующим стандартам. Еще одним методом является разработка через поведение (behavior-driven development, BDD). Основной идеей данной методологии является совмещение в процессе разработки чисто технических интересов и интересов бизнеса, позволяющее управляющему персоналу и программистам «говорить на одном языке».
Помимо TDD и BDD следует развернуть масштабируемые инструменты тестирования, предоставляющие удаленный доступ к мобильным девайсам.
3. Стратегия Shift Left
Стратегия Shift Left (раннее тестирование) — это наиболее важный тактический элемент непрерывного тестирования. Эта стратегия подразумевает проведение как функциональных (на предмет качественной работы кодовой базы), так и нефункциональных тестов (на предмет получения клиентом необходимого пользовательского опыта) на ранней стадии жизненного цикла разработки.
Цель применения стратегии — в обеспечении скорости реагирования и эффективности: чем раньше разработчики получат обратную связь и смогут разобраться с проблемами в коде, тем меньше вероятность того, что бизнес столкнется с задержкой выхода обновлений. Как правило, ошибки обнаруживаются на поздних стадиях процесса разработки или, что еще хуже, их обнаруживают сами клиенты, поэтому применяя в ходе процесса непрерывного тестирования стратегию Shift Left, команда тем самым повышает уровень продуктивности и предотвращает элемент появления непредвиденных ошибок.
4. Облачная инфраструктура
Создание профессиональной команды разработчиков — это трудоемкая задача, поэтому вряд ли предприятие будет заинтересовано в том, чтобы она занималась управлением сложной тестовой инфраструктурой. Современный мир ИТ постоянно пополняется браузерами, операционными системами и мобильными устройствами, на которых необходимо тестировать приложения. Поддержка современной инфраструктуры тестирования в реальном времени — это кропотливая задача даже для самых технически продвинутых организаций.
Учитывая, что тестируемую среду нужно масштабировать для параллельного запуска тестов, то лучше всего воспользоваться услугами облачных провайдеров. Применение облачной платформы для нужд тестирования высвобождает предприятие от трудоемкой работы, связанной с масштабированием и обслуживанием инфраструктуры тестирования, и позволяет разработчикам и тестировщикам сосредоточиться на своей основной работе.
5. Автоматизация
К автоматизации прибегает все большее число компаний из многих сфер бизнеса. Есть все основания полагать, что она повысит эффективность тестирования мобильных и веб-приложений. Существуют сценарии, где автоматическое тестирование не сравнится по эффективности выявления ошибок с ручным, однако последнее лишено масштабируемости и не может удовлетворить всех потребностей, которые выдвигают современные методы разработки.
Средства автоматизации помогают проводить параллельное тестирование с той скоростью и на тех масштабах, которые необходимы разработчикам. Благодаря ему команды могут сократить время тестирования до нескольких минут, что значительно ускоряет процесс разработки приложений и поиск ошибок. Также автоматизация высвобождает время тестировщиков для того, чтобы они могли сосредоточиться на исследовательском и юзабилити-тестировании.
6. Аналитика
Внедрение аналитики в практику непрерывного тестирования дает разработчикам возможность знакомиться с результатами тестирования в конкретных браузерах, ОС и устройствах, в наглядном виде получать представление о прохождении программами тестов на отказ (pass-fail) и на ошибки, наблюдать картину тестирования в ретроспективе. Это позволяет командам разработчиков легко выявлять ситуации с несовместимостью тестов и предпринимать соответствующие действия. Аналитика является критически важным компонентом современных методов отладки и тестирования, позволяющим быстро выявлять узкие места и решать проблемы, которые препятствуют качественной работе приложений.