Тестирование

Повышаем качество приложения благодаря ручному и автоматизированному тестированию. Сокращаем до 80% времени на его проверку за счёт автоматизации. Помогаем делать релизы в 2 раза чаще Заказать тестирование

автотестирование приложения

ручное тестирование приложения

ручное и автоматизированное тестирование

тестирование приложения с самой большой программой лояльности

При тестировании для нас всегда в приоритете цели вашего проекта. Мы гибко меняем подходы под потребности клиента и исходя из них, определяем, что и как тестировать.

Какие виды тестирования используем для вашего проекта

Ручное тестирование

Приложение проверяют QA-инженеры, используя некоторый набор программных средств. Необходимо для всех новых фич и функций приложения.

Автоматизированное тестирование

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

Преимущества автотестов

  • Они отлично справляются со сложной логикой и повторяющимися действиями.
  • Способны обеспечить качество и скорость регрессионного тестирования, которые невозможны при ручном тестировании.
  • Не зависят от численности команды QA, выполняются быстро и регулярно.

Виды автотестов

— UNIT-тесты. С их помощью проверяем конкретную часть системы. В Surf UNIT-тесты пишут разработчики на основе компонентных проверок от QA.

— UI-тесты проверяют работу приложения целиком и симуляцию пользовательских действий. Такие тесты проводят перед каждой сборкой и перед релизом — они занимают много времени, но позволяют тщательно проверить качество приложения.

— Виджет-тесты применяются только для приложений на Flutter. Они позволяют эмулировать виджеты и выполнять с их помощью необходимые тесты.

— Snapshot/golden тесты. Snapshot тесты делают скриншот экрана (эталонный скриншот) и сравнивают с актуальным скриншотом, который делается во время теста.

Какие задачи решим при помощи тестирования

  • Сократим число ошибок на старте

    Чем раньше обнаружен баг, тем меньше затрат требуется, чтобы его найти и пофиксить. Поэтому наша команда QA-инженеров включается в проект на этапе ТЗ: проверяет технические требования на полноту, точность и последовательность. Также они проверяют дизайн, чтобы убедиться, что он учитывает все состояния приложения и не противоречит требованиям.

  • Сократим время на тестирование до 80%
    • Для проектов, которые развиваются уже более 6 месяцев и регулярно добавляют новые фичи, реализуем автоматизацию тестирования. Напишем нативные или кроссплатформенные автотесты на нативные приложения и нативные автотесты для приложений на Flutter.
    • Покроем до 80% технического задания автотестами. За счёт этого сократим время на тестирование и в 2 раза ускорим выпуск релизов.
    • Сохраним высокое качество при расширении функциональности приложения без роста затрат на тестирование.
  • Переиспользуем 11-летний опыт в разных индустриях
    • Surf более 11 лет реализует проекты для ведущих игроков в сфере финтеха, фудтеха, e-commerce. Мы накопили большой кроссиндустриальный опыт и много лучших практик, которые переиспользуем для наших проектов.
  • Ускорим и оптимизируем тестирование за счёт лучших практик
    • Учтём специфику этой ЦА и реализуем понятный для пожилых интерфейс.
    • Добавим нужные им функции: интеграцию с госуслугами, автоплатежи за коммунальные услуги и т.д.
  • Бережно передадим проект в инхаус
    • Если вы решите поддерживать проект своими силами. По итогам тестирования вы получите отчёт с перечнем всех проведённых проверок и всю тестовую документацию.

Как происходит тестирование приложения

1
Проверка ТЗ и дизайна
  • QA проверяет, что ТЗ соответствует необходимым критериям, в нём есть вся необходимая информация и нет противоречий. Это позволяет сократить число ошибок ещё до старта разработки.
  • Проверяем дизайн: он должен учитывать все состояния приложения и соответствовать требованиям.
2
Написание проверок
  • Пишем по ТЗ проверки в 2 форматах.
  • Компонентные проверки позволяют детально проверить каждый элемент и каждую логическую составляющую фичи. Используются для проверки новых фич.
  • Сценарные проверки — более быстрые. Проверяют конкретную операцию\сценарий и общую работоспособность системы. Они используются при регрессионном тестировании.
  • Используем матрицу трассировки, чтобы определить, насколько проверки покрывают ТЗ.
3
Тестирование
  • На начальном этапе проекта всегда используем ручное тестирование.
  • По мере развития проекта подключаем автотесты. Так мы не увеличиваем затраты на тестирование, но сохраняем качество проекта.
  • Каждую новую фичу тестируем по компонентным проверкам (ручное тестирование и unit тесты), а при регрессионном тестировании используем сценарные проверки.
4
Демо или релиз
  • Проводим регрессионное тестирование.
  • Чтобы определить, какие проверки в него включить и какие части кода были затронуты изменениями, используем импакт-отчеты.
  • При сборке анализируем код при помощи статического анализатора, инструмента, разработанного Surf. Он выявляет изменения и то, насколько они влияют на работу приложения.
  • На основе результатов анализа определяем необходимые проверки.
5
Проверка миграции
  • Для релиза или обновления приложения проверяем миграцию. Для этого устанавливаем поверх старой версии приложения новую. Проверяем, что все данные сохранились, все интеграции работают, в приложении нет критичных ошибок.
6
Передача документации
  • Передаём отчет, в котором по номеру сборки можно посмотреть, какие тесты были проведены и каков их результат.
  • Передаём все написанные для проекта проверки.
  • Передаём документацию, как работать с проектом и вносить изменения, чтобы клиент мог поддерживать проект инхаус.

Отзывы наших клиентов

За 9 месяцев совместной работы с Surf мы реализовали приложение на Flutter с автотестами и инфраструктурой для них. У приложения есть версия для смартфона и планшета. У Surf большая экспертиза в работе с банковскими проектами. Кроме того, нас привлек их уровень компетенций во Flutter. Важным фактором стало и то, что у компании есть полнофункциональная команда со всеми нужными нам ролями: дизайнеры, PM, разработчики, аналитики, QA.
Юлия Цветкова

СМП Банк

Мы найдем лучшее решение вашей задачи
Обсудить проект

Вадим Мазин

Коммерческий директор, Surf
Eng Обсудить проект