Руководство VS. Автоматизировано: как правильно протестировать приложение

Опубликовано: 2022-02-24
тестирование

Когда вы выпускаете приложение, вы должны быть на 100 % уверены, что оно будет работать гладко и безупречно. И, конечно же, он должен соответствовать ожиданиям ваших пользователей! В противном случае ваш проект может провалиться, что не является желаемым результатом, верно? Поэтому вам нужно уделить должное внимание тестированию обеспечения качества (QA) приложения.

Но каков правильный подход к тестированию вашей платформы? Какие техники выбрать? Стоит ли проверять работоспособность продукта вручную или с помощью автоматизации? А может, выбрать оба варианта сразу?

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

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

Сервис ранжирования приложений ASO World
Нажмите «Подробнее», чтобы развивать свой бизнес приложений и игр с помощью службы продвижения приложений ASO World прямо сейчас.

Основы тестирования мобильных приложений

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

Этот второй термин обычно называют «автоматизацией тестирования» или, возможно, «автоматизированным тестированием». Возможно, правильнее было бы называть это «автоматизированным выполнением и оценкой тестов» или «автоматизированной проверкой», но более ранние термины закрепились.

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

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

Обеспечение качественного программного обеспечения — сложный процесс, который занимает много времени и стоит определенных денег. Однако таких расходов не избежать (при условии, что вы хотите добиться успеха в долгосрочной перспективе).

Важно составить грамотную стратегию тестирования, которая позволила бы получить максимальный эффект при минимальных усилиях и понять, соответствует ли сайт или приложение поставленным требованиям.

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

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

В то время как целью ручного тестирования является проверка так называемого «пользовательского опыта», автоматическое тестирование направлено на проверку всех функций, характеризующих приложение.

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

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

Если программное обеспечение является внутренним, в компании могут быть люди, которые будут использовать программное обеспечение, фактически выполняющие приемочное тестирование пользователей, которое больше сосредоточено на том, «могу ли я выполнять свою работу с этим программным обеспечением». Некоторые компании заранее выпускают программное обеспечение для «бета-тестеров», которыми могут быть сотрудники, использующие такой инструмент, как Microsoft AppCenter.

Наконец, такие компании, как Applause и Testio, существуют для того, чтобы брать эту «бета-версию» и распространять ее через краудсорсинг, предоставляя десяткам или тысячам просмотров программного обеспечения в различных конфигурациях в течение короткого периода времени.

Независимо от того, кто как или когда тестирование вручную дает вам реальное ощущение того, как это на самом деле использовать приложение. Ручные тесты позволяют увидеть, находятся ли кнопки в правильном положении, достаточно ли они велики, перекрываются ли они, хорошо ли сочетаются цвета и т. д. Компьютеры оказываются особенно плохими при оценке того, «выглядит ли изображение на экране правильно».

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

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

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

Ручное тестирование дает некоторую обратную связь по удобству использования и внешнему виду наряду с функциональностью. Тестировщик играет роль пользователя, пробующего все в этом приложении, выполняя типичные действия пользователя, чтобы увидеть, произойдет ли сбой приложения. При ручном тестировании вы часто получаете отзывы о производительности, разрядке батареи или перегреве достаточно рано, чтобы исправить их до выпуска. Отзывы часто «бесплатны» только потому, что тестер обратил на них внимание.

Сколько устройств мне нужно для тестирования?

Вы можете попробовать вручную протестировать каждое устройство, поддерживаемое каждой поддерживаемой версией операционной системы. В последний раз, когда мы проверяли три года назад, было более 24 000 различных устройств Android, и мы перестали считать. На самом деле, большинство организаций проводят тестирование с самой новой поддерживаемой версией, одной предыдущей версией и самой старой поддерживаемой версией. Между Android и iOS, планшетом и телефоном большинство средних и крупных компаний, с которыми мы работаем, в конечном итоге имеют тестовую лабораторию из 10-20 устройств.

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

Что такое автоматизированное тестирование?

Когда люди используют фразу «Автоматизированное тестирование», они обычно имеют в виду наличие инструмента, такого как Selenium или Appium, который управляет пользовательским интерфейсом приложения, попутно проверяя ожидаемые результаты.

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

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

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

Автоматическое тестирование нажмет кнопку, которая «выглядит неправильно» и находится не в том месте, и не зарегистрирует проблему (если только вы не подумали проверить заранее) — с большей вероятностью будут обнаружены ошибки, неверные результаты поиска и т. д.

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

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

Тестируйте функции, которые повторяются и, следовательно, подвержены ошибкам, если выполняются вручную; тест-кейсы с предсказуемым результатом;

Легко настраивайте и запускайте сложные и утомительные сценарии тестирования

Самое главное: вы можете тестировать на большем количестве мобильных устройств одновременно, экономя время. Используя симуляторы или облако, вы можете сделать это, не покупая устройства и не управляя ими!

Сколько тестовых случаев мне нужно для базового набора тестов?

Это будет сильно различаться в зависимости от приложения и размера «тестового примера». Если тестовые случаи — это простые тесты от домена к базе данных, которые проверяют одну логическую операцию, то у типичной функции может быть от четырех до десяти тестов, а у типичного приложения — от четырех до десяти функций.

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

Ручное тестирование мобильных приложений

Преимущества ручного тестирования

  • Точное и быстрое тестирование пользовательского интерфейса
  • Опыт и тестирование приложения в качестве реального пользователя, чтобы воспроизвести окончательный опыт.
  • Легкое выявление и воспроизведение сообщений о проблемах
  • Решение сложных задач и вариантов использования
  • Тестирование небольших изменений и проектов быстрее и с меньшими затратами

Недостатки ручного тестирования

  • Человеческая ошибка влияет на точность
  • Тесты приходится каждый раз повторять вручную
  • Утомительные задачи тестирования намного сложнее
  • Огромный охват требует большого количества ресурсов, таких как количество тестировщиков и доступ к широкому спектру устройств.

Ручное тестирование в мобильных приложениях используется для:

  • Исследовательское тестирование. В качестве подхода исследовательское тестирование оценивает тестировщика как неотъемлемую часть процесса тестирования. Для этого нужен ручной тестер, чтобы извлечь выгоду из их проницательности, творчества и знаний.
  • Специальное тестирование. По определению, специальное тестирование — это неформальный тип тестирования. Она направлена ​​на слом системы, поэтому ее нельзя проводить в плановом порядке. Нужен тестер, который будет вести себя нестандартно, чтобы попытаться сломать систему.
  • Юзабилити-тестирование: ручной тестер может получить представление о конечном пользовательском опыте. Использование приложения так, как оно предназначено для использования, поможет определить, насколько приложение удобно для пользователя, и человеческий вклад играет ключевую роль в этом.

Автоматизированное тестирование мобильных приложений.

Преимущества автоматизированного тестирования

  • Выполнение утомительных и требовательных тестов быстрее
  • Тестирование многих устройств
  • Автоматические тесты можно использовать повторно
  • Быстрые, эффективные и точные результаты
  • Несколько автоматических тестов могут быть выполнены одновременно
  • Для крупных мобильных приложений автоматизированные тесты более экономичны.

Недостатки автоматизированного тестирования

  • Нет понимания пользовательского опыта с визуальной точки зрения
  • Стоимость запуска и запуска автоматических тестов высока из-за необходимости кода
  • Расточительство в небольших ситуациях
  • Все еще некоторая человеческая ошибка, поскольку автоматический тест программируется человеком и требует собственного тестирования.
  • Требуются определенные конфигурации и код для каждого мобильного приложения.

Автоматизированное тестирование в мобильных приложениях используется для:

  • Регрессионное тестирование. Одной из самых сильных сторон автоматизированного тестирования является возможность иметь тестовый сценарий, готовый к запуску в любое время. Один из лучших способов использования автоматизированного тестирования — постоянные небольшие изменения, когда вы хотите убедиться, что они не будут иметь негативных последствий.
  • Тестирование производительности: в отличие от тестирования удобства использования, производительность — это скорее игра чисел. Тестирование того, насколько быстрым, отзывчивым и стабильным приложение на разных устройствах или в разных условиях, является то, что автоматические тесты процветают при выполнении. Масштаб и точность результатов делают автоматические тесты необходимыми для тестирования производительности.
  • Повторное тестирование: после первоначальных затрат на кодирование и настройку тестового сценария в долгосрочной перспективе автоматизированное тестирование становится очень рентабельным. Возможность повторять тесты без дополнительных затрат ресурсов тестировщика значительно упрощает тестирование и получение результатов.