Мне кажется, что с концепцией тестирования всегда существовала взаимосвязь между любовью и ненавистью. Без сомнения, преимущества тестирования всего, что вы создаете, помогают избежать того, чтобы клиенты сообщали о тех же открытиях. Это любовная часть отношений.
Ненавистная часть — это когда из-за сроков проекта тестирование становится менее приоритетным… часто до такой степени, что оно становится элементом списка желаний, который редко появляется в текущем спринте. Это почти гарантирует, что клиенты свяжутся с вами и получат неожиданный результат.
По мере развития жизненных циклов разработки программного обеспечения (SDLC) тестирование стало проще, что позволяет разработчикам создавать модульные тесты, которые полностью охватывают проверяемый аспект. Использование ChatGPT или GitHub Co-Pilot дошло до такой степени, что такие модульные тесты можно создавать автоматически. Решения для инструментов непрерывной интеграции (CI) были улучшены и теперь обеспечивают высокий уровень покрытия кода перед объединением любого запроса на включение (PR). Это позволяет командам сместиться в сторону разработки, заставляя проблемы решаться на этапе разработки и сокращая стоимость функций на этом пути.
Этот подход отлично работает для традиционных API и веб-платформ, но тестирование мобильных приложений часто требует от команд выполнения ручного тестирования — выполнения из опубликованного списка шагов для как можно большего количества различных типов устройств, которыми можно управлять.
Я хотел посмотреть, смогу ли я определить, как в мобильной разработке и тестировании можно использовать концепцию сдвига влево.
На высоком уровне пространство мобильных приложений должно иметь возможность тестировать функции и функциональность так же, как сегодня тестируются API и веб-фреймворки. Это означает отказ от выполнения тестов вручную с использованием инвентаризации физических устройств или эмуляторов.
Это идеальное состояние мобильного тестирования должно основываться на пользовательском интерфейсе, чтобы избежать написания загадочных тестов, ориентированных на активность пользователей. Этот подход может расширить инструментарий для внутренних потребителей или владельцев продуктов, которые хотят подтвердить свое видение реальностью.
Как и в случае с традиционными модульными или интеграционными тестами, возможность внедрения модулей может проверять небольшие аспекты мобильного приложения и использоваться в качестве строительных блоков для более крупных потоков. При этом команды смогут оставаться «сухими» (не повторяться) и избегать дублирования работы.
Наконец, эти тесты должны стать частью конвейера CI/CD, несмотря на то, что они управляются графическим пользовательским интерфейсом.
В этом идеальном состоянии инженеры мобильного ПО могут эффективно заняться разработкой и тестированием мобильных устройств.
Было бы неплохо пояснить, что я имею в виду, когда говорю «сдвиг влево» для мобильного тестирования.
Википедия определяет сдвиг влево для тестирования , как указано ниже:
«Тестирование со сдвигом влево — это подход к тестированию программного обеспечения и системного тестирования, при котором тестирование выполняется на более ранних этапах жизненного цикла (т. е. перемещается влево на временной шкале проекта). Это первая половина принципа «проверяйте рано и часто». Его придумал Ларри Смит в 2001 году ».
Простой сдвиг влево позволяет выявить дефекты на этапе разработки. Это важно, поскольку проблему можно решить, пока функция еще свежа в памяти инженера(ов), сосредоточенного на источнике.
Вот некоторые преимущества применения сдвига влево:
В конечном итоге концепция сдвига влево приведет к конкурентному преимуществу, когда решения дойдут до потребителей, которые проверены и работают должным образом.
В прошлом году я исследовал использование Tricentis Testim в своей статье « Улучшение качества клиентских приложений с помощью Tricentis Testim ». Я был впечатлен тем, насколько легко было проверить мое решение Magic 8 Ball с помощью RESTful API на базе GO и веб-клиента Vue.js. Я хотел посмотреть, есть ли у Tricentis решение, которое позволило бы командам перейти на мобильное тестирование.
Оказывается, у них есть продукт под названием Tosca .
Продукт Tosca обеспечивает генерацию тестов без кода, позволяя создавать небольшие модули, которые можно повторно использовать и автоматизировать. Эти модули можно рассматривать как блоки Lego, которые можно соединять там, где это необходимо, благодаря использованию стандартизированного контракта между ними. Tosca делает шаг ближе к более традиционным жизненным циклам разработки, предоставляя возможность использовать ИИ для создания мобильных тестов для ваших функций.
Tosca также использует возможности проекта Appium с открытым исходным кодом без сложного обучения с помощью Tricentis Mobile Agent. Это позволяет использовать всю мощь, представленную в моей предыдущей статье, в процессе разработки мобильных приложений.
В результате Tosca позволяет тестировать собственные, гибридные и веб-мобильные приложения на реальных устройствах iPhone, Android, мобильных телефонах и планшетах без обслуживания и владения этими устройствами.
Как и продукт Testim, решение Tosca обеспечивает возможность выполнения тестов как часть конвейеров CI/CD, что позволяет обеспечить внедрение сдвига влево.
Вы можете использовать Tosca для тестирования непосредственно на телефоне iOS или Android, а также с помощью эмуляторов или симуляторов, доступных через IDE, например Android Studio. Используя Tosca, вы можете сканировать свое приложение и создавать тестовые примеры:
После того как Tosca создала тестовые примеры, вы также можете создавать свои собственные тестовые примеры.
Одним из преимуществ Tosca является то, что он позволяет писать тесты без необходимости писать код. Это стало возможным благодаря библиотеке модулей, которые могут имитировать практически любое действие, включая открытие браузера или заполнение формы.
В этом примере мы использовали три модуля для нашего мобильного теста Tosca. Мы тестируем:
Обратите внимание, что все, что нам нужно было сделать, это предоставить пример входных данных (на снимке экрана мы делаем это для шага 3, выделенного выше). После завершения теста вы получите отчет о диагностике Tosca.
Используя такой продукт, как Tosca, инженеры-программисты, занимающиеся мобильной разработкой, могут дать своим командам конкурентное преимущество, задействовав дерьмо, оставшееся для мобильного тестирования:
Мои читатели, возможно, помнят, что я сосредоточился на следующей формулировке миссии, которая, по моему мнению, может быть применима к любому ИТ-специалисту:
«Сосредоточьте свое время на предоставлении функций/функций, которые увеличивают ценность вашей интеллектуальной собственности. Используйте платформы, продукты и услуги для всего остального». - Дж. Вестер
Чтобы достичь максимальной производительности, инженерам-программистам, занимающимся мобильной разработкой, необходимо перейти влево к мобильному тестированию . Однако идеальный выбор должен учитывать любую связанную кривую обучения и возможность поддержки при поиске решений.
Продукт Tosca соответствует моей личной миссии, позволяя командам достичь состояния сдвига влево без дополнительного исходного кода для поддержки и сопровождения. Продукт также позволяет неинженерам участвовать в разработке тестов, что дает командам преимущество в обеспечении соответствия проектов ожиданиям.
Я лично применяю подход со сдвигом влево в течение нескольких лет и ценю этот опыт каждый раз, когда удается избежать дефекта, просто следуя процессу. Пришло время мобильной разработке использовать концепцию сдвига влево.
Хорошего дня!