Про тестирование мобильных приложений. Часть 2. Unit tests

В предыдущей статье был приведен краткий обзор основных понятий и тем, о которых речь пойдет дальше. Предлагаю начать с модульных тестов, более известных, как юнит тесты.

Методы, советы, опыт

В предыдущей статье был приведен краткий обзор основных понятий и тем, о которых речь пойдет дальше. Предлагаю начать с модульных тестов, более известных, как юнит тесты.

Занимаясь разработкой мобильных приложений под операционную систему Android уже более 7 лет, я успел поработать в разных частях мира в самых разных компаниях, от небольших стартапов до технологических гигантов и накопил некоторый практический опыт в области автоматизированного тестирования мобильных приложений, которым хотел бы поделиться в цикле статей.

До сих пор существует множество стереотипов о тестировщиках. В этом переводе статьи 2009 года собраны одни из самых узнаваемых типов тестировщиков, описывающие не только лишь негативные узнаваемые черты, но и позитивные стороны тестировщиков. Надеюсь для людей не знакомых с тестированием эта статья поможет увидеть насколько разные тестировщики бывают.
Данная статья может быть полезна тем, кто хочет немного повеселиться, т.к. некоторые типы тестировщиков действительно встречаются в жизни и можно вспомнить забавного коллегу, а также тем, кто хочет стать чуточку лучше, взглянув на себя со стороны и сделав определённые выводы, т.к. легко ассоциировать себя с описанными типами тестировщиков.

Добро пожаловать в серию статей "Лидерство в тестировании" от гуру тестирования программного обеспечения и консультанта Пола Джеррарда. Серия статей предназначена для того, чтобы помочь тестировщикам с многолетним опытом работы, особенно тем, кто работает в гибких командах, преуспеть в своих ролях руководителя тестирования и менеджера.
Начнем с самого начала: что такое «тестирование программного обеспечения»? Мы изучим основные концепции тестирования программного обеспечения, которые сформируют ваше мышление по мере приближения к искусству качественного инжиниринга.
Когда вы Тест Лид на проекте, очень вероятно, что коллеги будут считать вас экспертом во всем, что связано с тестированием. У других членов команды могут быть свои собственные обоснованные или нет взгляды на тестирование; некоторые могут иметь (или, по крайней мере, говорить, что имеют) больше опыта, чем вы.
Ожидания от тестирования часто нереалистичны и даже опытные люди занимают некорректную позицию в отношении того, чем может помочь тестирование. Некоторые люди будут сомневаться в вашей компетентности, ценности для команды или даже в вашей мотивации. Это может быть непросто.
В вашей карьере Тест Лида вам придется адаптироваться к новым и меняющимся обстоятельствам. Вы встретитесь с представителями бизнеса и высокопоставленными заинтересованными сторонами проекта. Вы будете присоединяться к командам разного размера, в которых будут работать разные люди с самым разным опытом работы. У них может быть большой опыт или, на самом деле, совсем немного.

Что есть задача для разработчика?
Как правило, разработка получает от продукт-менеджера, техническое задание на разработку новой или исправление старой функциональности. Например, это выражено в виде PRD https://en.wikipedia.org/wiki/Product_requirements_document , который может содержать ссылки на Figma, список требований, ссылки и прочие полезности необходимые для реализации задумки. Исходя из этих входных данных, разработчики могут имплементировать задачу и отдать на тестирование в QA команду. По завершению этих циклов, задача готова к релизу.

Внедрение автоматизированных практик тестирования — очень полезная штука. Однако при подходе к этой задаче возникает масса вопросов. Какую платформу выбрать? Сложной ли будет миграция? Какие подводные камни ждут впереди? В своем посте я расскажу, как мы переносили практику тестирования и внедряли «тесты как код» на базе Allure TestOps.
Достаточно давно (по меркам ИТ-мира) я посмотрел доклад Артема Ерошенко с Heisenbug 2020 «Тест-кейсы как код». С переходом в Леруа Мерлен со старой TMS на Allure TestOps появилось желание полноценно попробовать данный подход у себя.
В статье расскажу о том, что из этого получилось.

Готовим FeatureToggle для Android
Всем привет, меня зовут Илья, я андроид инженер. Почти три года назад, мы начали свой проект в сфере финтех. Срок запуска MVP был оптимистичным. За неделю до наступления дедлайна наша команда осознала, что срок запуска переносить никто не собирается, а одна фича вряд ли будет закончена вовремя. Рисковать не хотелось и было решено - прикрыть эту часть заглушкой. Блокируя часть нерабочей функциональности, мы питали надежды, что скоуп MVP будет закрыт. По-этому, выключить нерабочий код хотели так, чтобы по щелчку кнопки CI/Web экран стал доступен для пользователя.
Постепенно, штат сотрудников разрастался и далеко не все понимали что это такое. Гайд так же был необходим и для внутренних сотрудников. Один источник данных - одна правда для всех. Пришлось добавить не только библиотеку для форсирования, но и перестроить процесс разработки.
Откровенно говоря, разговоры внутри команды о внедрении FeatureToggling шли уже давно. Эта история стала спусковым крючком для его внедрения.

Обычно тесты не популярны в СНГ. Многие считают их дорогими и тормозящими разработку. Часто это говорят те, кто за разработку принимает написание кода сразу в прод и забывают о нем навсегда

Привет, хотелось бы рассказать о приложении для организации мок-сервера Mockoon. Это довольно удобная и мощная программа, но в русскоязычном сегменте интернета про нее ничего не нашлось, поэтому решил поделиться опытом использования с примерами возможностей.

О нас
Добрый день, меня зовут Никита, я тестировщик программного обеспечения в компании Solit Clouds, мой опыт тестирования более 2,5 лет.
В текущий момент являюсь ответственным за тестирование мобильных приложений на Android.
В данной статье я хочу поделиться опытом с точки зрения непосредственного участника процесса, а именно:

ChatGPT побил все Интернет-рекорды, став вирусным в первую неделю после запуска. Миллион пользователей за 5 дней — это беспрецедентно. Система искусственного интеллекта – виртуальный собеседник, который может отвечать на вопросы на естественном языке и создавать стихи, писать сценарии фильмов, посты в социальных сетях, сочинения и делать массу удивительных вещей. Наша первая мысль, когда мы получили доступ к платформе, заключалась в том, как использовать эту замечательную платформу, чтобы облегчить жизнь тестировщикам веб-приложений и мобильных приложений. И самое главное, как можно использовать ChatGPT для автоматизированного тестирования.
Чему мы научились, когда создавали автоматизированные тесты с помощью ChatGPT
В целом это было весело. И каждый раз мурашки по коже, когда платформа превосходила наши ожидания. Вот что на самом деле мы извлекли из всех проведенных экспериментов. И хорошее, и плохое.
Плюсы ChatGPT для автоматизации тестирования

Меня зовут Виктор Мясников, я отвечаю за качество продукта в «Юле». Я закончил Бауманку и хотел строить ракеты, но с ними не вышло, поэтому теперь профессионально строю «велосипеды» для QA, а ещё люблю уничтожать рутину. Я расскажу, как мы проектировали BDD-фреймворк и зачем он вообще нам понадобился.

Привет! Я Линар Юнусов, тестировщик из мобильной команды СберМаркета. Если вы не первый день в тестировании, то знаете про существование нефункциональных проверок и как они могут поломать жизнь (зачеркнуто) приложение. В этой статье расскажу про то, к каким проверкам мы пришли в СберМаркете. Сначала поговорим о довольно популярных кейсах, потом о более специфических: попадём на экраны настройки в режиме разработчика, попробуем поработать с клавиатурой и вводом эмодзи ?, а ещё узнаем скорость загрузки нашего приложения на разных платформах. Поехали!

Бывало, замечаешь в коде «нехороший» модуль или функцию и тут же тянутся руки их отрефакторить. Но как потом убедиться, что правки не сломали какой-нибудь сценарий в приложении или вовсе не положили продакшен? Этих ситуаций можно избежать, если в проекте есть тесты.
Меня зовут Александр Моргунов, я техлид в Самокате. Пишу на TypeScript, React, ReactNative. В разное время писал тесты для фронтенда, бэкенда и мобилок. В этом посте хочется поговорить о том, как можно тестировать современные фронтенд-приложения и какие подходы к тестированию сейчас актуальны.
Надеюсь, пост будет полезен для фронтендеров и тестировщиков, которые хотели бы свериться по дополнительным практикам для написания тестов. А бэкендеры смогут лишний раз посмотреть на схожесть и различия в тестировании для бэка и фронтенда.

Этот диалог не имеет никакого смысла для людей, но он произошел между двумя сетями чат-ботов ИИ. Назову их условно: Синий кот и Белый кот. Они «делили» предметы: 2 книги, 1 шляпу и 3 шарика. Изначально можно назвать этих котов-ботов junior. В этом эксперименте каждый объект обладал значимостью для сети, выраженной в баллах (от 1 до 3).

Тестирование программного обеспечения позволяет оценить новое приложение, чтобы убедиться в том, что после запуска оно работает так, как задумано. Составление плана тестирования помогает предотвратить ошибки, снизить затраты на разработку и повысить производительность приложения. В современной цифровой среде люди сильно зависят от программного обеспечения и приложений, поэтому надежность - одно из самых важных качеств.
Верификация и валидация при тестировании жизненно важны для обеспечения того, чтобы разработчики использовали передовые методы создания программного обеспечения. Цель состоит в том, чтобы избежать сбоев в работе приложений на критическом этапе и гарантировать, что они продолжают работать на благо пользователя. Давайте сравним верификацию и валидацию и то, как они влияют на конечный продукт.
Что такое верификация?
При верификации команда разработчиков изучает документы для создания программного обеспечения или приложения. Цель состоит в том, чтобы убедиться, что разработчик, которому поручен проект, соблюдает все изложенные требования. Логика кода должна соответствовать проектной документации независимо от языка программирования.
Процесс верификации
Он включает следующие этапы:

Тестирование нативных мобильных приложений для Android и iOS обычно обеспечивается библиотеками UiAutomator2 и XCUITest, но сейчас, в связи с появлением мобильных приложений, разработанных с использованием Flutter Framework, использовать их для тестирования становится затруднительно, поскольку семантическая информация, публикуемая Flutter, в большинстве случаев недостаточна для однозначной идентификации виджетов и взаимодействия с ними. В этой статье мы рассмотрим возможности драйвера appium-flutter-driver для тестирования flutter-приложений, разберемся с использованием виджетов описания семантики и разработаем несложные тесты на Python с использованием Appium.

Мы делили апельсин, много нас, а он один…
Привет! Я Слава, QA в мобильной разработке компании «СберЗдоровье». В прошлых статьях я рассказывал о наших процессах тестирования при активном росте команды и о разделении на фича-команды.
Сегодня я расскажу о том, как именно мы «делили» внутри наше приложение, как тестировали перекрёстные участки и немного подсвечу, что там у нас вообще с автоматизацией, так как в комментариях к прошлым статьям были вопросы по данной теме.

Всем привет, на связи дизайнеры студии Focus. В первой части статьи мы рассказывали, как к нам пришла идея доработки UX приложения сети ресторанов Mama Mia, а также, как проводили интервью и изучали ЦА. А сегодня поделимся результатами тестирования текущего приложения и покажем, как проводили конкурентный анализ.

Я часто работаю с клиентами, которые либо только начинают, либо пытаются развивать свои навыки в автоматизации тестирования, и чаще всего все они совершают одни и те же фатальные ошибки.
Хотя они могут понимать основы автоматизации тестирования, они по-прежнему считают ценность скриптовых тестов экономией времени за счет автоматического выполнения сценариев, а не вручную. Они считают, что если автоматизированные сценарии выполняются быстрее, чем это могут сделать люди, то наибольший выигрыш в эффективности должен быть достигнут за счет автоматизации самых длительных тестов.
И если бы время исполнения было единственным временем для оценки, они были бы правы.
Но время выполнения теста — это всего лишь одна проблема, связанная со временем. Вам также нужно подумать о времени, необходимом для написания автоматизированных тестов, и о времени, которое вам нужно, чтобы научиться писать тесты.
Команды добиваются успеха чаще, когда они перерабатывают большие тесты в меньшие, более короткие. Вот как вы можете извлечь выгоду из этой не интуитивной идеи.
Оставьте время для обучения
Малыши учатся балансировать, прежде чем они смогут встать. Они стоят перед тем, как научатся ходить. Программисты пишут «Hello world» каждый раз, когда изучают новый язык программирования.
Команды, обучающиеся автоматизации, могут проходить через несколько кривых обучения одновременно: язык программирования, концепции программирования, инструмент или фреймворк автоматизации тестирования, управление исходным кодом и совместная работа над программным проектом.