Тестирование
Повышаем качество приложения благодаря ручному и автоматизированному тестированию. Сокращаем до 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. Мы накопили большой кроссиндустриальный опыт и много лучших практик, которые переиспользуем для наших проектов.
-
Ускорим и оптимизируем тестирование за счёт лучших практик
- Учтём специфику этой ЦА и реализуем понятный для пожилых интерфейс.
- Добавим нужные им функции: интеграцию с госуслугами, автоплатежи за коммунальные услуги и т.д.
-
Бережно передадим проект в инхаус
- Если вы решите поддерживать проект своими силами. По итогам тестирования вы получите отчёт с перечнем всех проведённых проверок и всю тестовую документацию.
Наши кейсы
-
Автотесты в приложении банка
В приложении банка мы реализовали автотесты и инфраструктуру для них, чтобы банк мог запускать тесты самостоятельно.Подробнее -
Приложение для крупного банка с иностранным капиталом
Код приложения для одного из системообразующих банков мы покрыли тестами на 100%.Подробнее
Как происходит тестирование приложения
- QA проверяет, что ТЗ соответствует необходимым критериям, в нём есть вся необходимая информация и нет противоречий. Это позволяет сократить число ошибок ещё до старта разработки.
- Проверяем дизайн: он должен учитывать все состояния приложения и соответствовать требованиям.
- Пишем по ТЗ проверки в 2 форматах.
- Компонентные проверки позволяют детально проверить каждый элемент и каждую логическую составляющую фичи. Используются для проверки новых фич.
- Сценарные проверки — более быстрые. Проверяют конкретную операцию\сценарий и общую работоспособность системы. Они используются при регрессионном тестировании.
- Используем матрицу трассировки, чтобы определить, насколько проверки покрывают ТЗ.
- На начальном этапе проекта всегда используем ручное тестирование.
- По мере развития проекта подключаем автотесты. Так мы не увеличиваем затраты на тестирование, но сохраняем качество проекта.
- Каждую новую фичу тестируем по компонентным проверкам (ручное тестирование и unit тесты), а при регрессионном тестировании используем сценарные проверки.
- Проводим регрессионное тестирование.
- Чтобы определить, какие проверки в него включить и какие части кода были затронуты изменениями, используем импакт-отчеты.
- При сборке анализируем код при помощи статического анализатора, инструмента, разработанного Surf. Он выявляет изменения и то, насколько они влияют на работу приложения.
- На основе результатов анализа определяем необходимые проверки.
- Для релиза или обновления приложения проверяем миграцию. Для этого устанавливаем поверх старой версии приложения новую. Проверяем, что все данные сохранились, все интеграции работают, в приложении нет критичных ошибок.
- Передаём отчет, в котором по номеру сборки можно посмотреть, какие тесты были проведены и каков их результат.
- Передаём все написанные для проекта проверки.
- Передаём документацию, как работать с проектом и вносить изменения, чтобы клиент мог поддерживать проект инхаус.