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

Нажмите "
Подробнее", чтобы развивать свой бизнес в области приложений и игр с помощью службы
продвижения приложений ASO World прямо сейчас.
Основы тестирования мобильных приложений
В самом широком смысле существует два подхода к тестированию мобильного приложения. Вы можете попросить людей использовать приложение в разных ситуациях, чтобы увидеть, как оно реагирует, или вы можете попросить приложение загнать программное обеспечение в интересные места и искать ожидаемые результаты.
Этот второй термин обычно называют «автоматизацией тестирования» или, возможно, «автоматизированным тестированием». Возможно, было бы правильнее назвать его «автоматизированным выполнением и оценкой тестов» или «автоматизированной проверкой», но более ранние термины сохранились.
Оба этих подхода могут быть действительными в разных обстоятельствах, и эта действительность может меняться со временем в разные моменты жизненного цикла приложения. На практике большинство организаций используют смесь этих двух факторов, возможно, подталкивая некоторые из человеческих исследований к клиентам.
Что такое автоматизированное и ручное тестирование?
Обеспечение качественным программным обеспечением является сложным процессом, который занимает много времени и стоит некоторых денег. Однако таких расходов не избежать (при условии, что вы хотите добиться успеха в долгосрочной перспективе).
Важно составить грамотную стратегию тестирования, которая позволила бы получить максимальный эффект с минимальными усилиями и понять, соответствует ли сайт или приложение заданным требованиям.
Ручное тестирование
Автоматизированное тестирование — это процесс, в котором предварительно написанные тесты выполняются для приложения перед его выпуском в рабочую среду. Автоматизированное тестирование помогает быстрее находить недостатки в приложении. Автоматизация тестирования может использоваться для выполнения повторяющихся тестов, которые необходимо периодически запускать и которые могут помочь вам найти ошибки на ранних стадиях.
В то время как целью ручного тестирования является тестирование так называемого «пользовательского опыта», автоматизированное тестирование направлено на тестирование всех функциональных возможностей, которые характеризуют приложение.Шестнадцать
лет после того, как мне впервые сказали, что тестирование на людях «уйдет», и почти через десять лет после того, как я впервые услышал исследователей-людей, называемых «динозаврами», ручное тестирование остается наиболее распространенным подходом к тестированию как для мобильных, так и для настольных приложений.
Под ручным тестированием я подразумеваю человека, фактически использующего приложение через интерфейс. Существует множество мест, где может происходить это ручное тестирование. Большинство программистов, по крайней мере, моделируют приложение, если не помещают его на телефон, прежде чем передать его кому-то другому для тестирования. Некоторые компании нанимают тестировщиков, чтобы пойти глубже, глядя за пределы счастливого пути или в различные модели устройств.
Если программное обеспечение является внутренним, у компании могут быть люди, которые будут использовать программное обеспечение, фактически выполняя пользовательское приемочное тестирование, которое больше сосредоточено на том, «могу ли я выполнять свою работу с этим программным обеспечением». Некоторые компании выпускают программное обеспечение досрочно для «бета»-тестеров, которые могут быть сотрудниками, используя такой инструмент, как Microsoft AppCenter.
Наконец, такие компании, как Applause и Testio, существуют, чтобы взять эту «бета-» версию и краудсорсинг ее, предоставляя от десятков до тысяч глазных яблок для просмотра программного обеспечения в различных конфигурациях в течение короткого периода времени.
Независимо от того, кто как или когда тестирование вручную дает вам реальное ощущение того, как на самом деле использовать приложение. Ручные тесты могут увидеть, находятся ли кнопки в правильном положении, если они достаточно велики, если они перекрываются, если цвета хорошо смотрятся вместе и т. Д. Компьютеры оказываются особенно плохими в оценке того, «выглядит ли изображение на экране правильно».
Тем не менее, есть некоторые действия, которые компьютеры могут легко протестировать. Например, когда вы вводите имя пользователя и пароль и отправляете, вы должны перейти на экран, который показывает ваше имя и то, что вы вошли в систему, и если вы оставите пароль неправильным, вы получите определенный текст ошибки.
Проблема мобильного тестирования с меньшей вероятностью будет заключаться в том, какую из двух парадигм принять, но сколько, когда и кто.
Зачем нужно ручное тестирование?
Ручное тестирование дает некоторую обратную связь по удобству использования и внешнему виду наряду с функциональностью. Тестировщик играет роль пользователя, пробующего все в этом приложении, выполняя типичные действия, которые пользователь выполняет, чтобы увидеть, если приложение аварийно завершает работу. При ручном тестировании вы часто получаете отзывы о производительности, разрядке батареи или перегреве достаточно рано, чтобы исправить их перед выпуском. Обратная связь часто «бесплатна» только потому, что тестировщик обращал внимание.
Сколько устройств необходимо для тестирования?
Вы можете попробовать вручную протестировать каждое устройство, поддерживаемое каждой поддерживаемой версией операционной системы. В последний раз, когда мы проверяли три года назад, было более 24 000 различных устройств Android, и мы перестали считать. Реально, большинство организаций тестируют с поддержкой последней версии, одним выпуском и самой старой поддерживаемой версией. Между Android и iOS, планшетами и телефонами большинство средних и крупных компаний, с которыми мы работаем, в конечном итоге получают тестовую лабораторию из 10-20 устройств.
Автоматизированное тестирование
Что такое автоматизированное тестирование?
Когда люди используют фразу «автоматизированное тестирование», они обычно имеют в виду наличие инструмента, такого как Selenium или Appium, который управляет пользовательским интерфейсом приложения, проверяя ожидаемые результаты по пути.
Эта проверка происходит из серии команд и точек проверки, которые могут храниться либо в чем-то вроде электронной таблицы, либо, что более вероятно, в реальной компьютерной программе.
Таким образом, тесты предварительно запрограммированы; каждый тест может быть компьютерной программой. Каждый тест может щелкнуть или ввести дюжину раз и иметь еще дюжину точек проверки. После выполнения тестов, если поведение приложения не изменилось, автоматическое тестирование может обнаружить дефекты в приложении очень быстро, обычно в течение нескольких минут после фиксации в системе управления версиями.
Автоматизация тестирования может использоваться для выполнения повторяющихся тестов, которые не требуют человеческой проницательности, которые необходимо периодически запускать и которые могут помочь вам найти ошибки на ранних стадиях. В то время как целью ручного тестирования является тестирование «пользовательского опыта», автоматизированное тестирование направлено на тестирование всей функциональности, которая характеризует приложение.
Автоматизированное тестирование нажмет кнопку, которая «выглядит неправильно» и находится не в том месте, и не зарегистрирует проблему (если вы не подумали проверить заранее) - с большей вероятностью найдет ошибки, неверные результаты поиска и так далее.
Зачем нужно автоматизированное тестирование?
По мере роста приложения увеличивается и время его тестирования. Автоматизированное тестирование сокращает это время для частого выпуска. Это делает автоматизированное тестирование ключом к ускорению процесса тестирования, снижению затрат и радикальному сокращению времени обратной связи при серьезных ошибках от нескольких дней до нескольких минут. Автоматизация тестирования позволяет:
Тестировать функции, которые являются повторяющимися и, следовательно, подверженными ошибкам при выполнении вручную; тестовые случаи, которые имеют предсказуемый результат;
Легко настраивать и запускать сложные и утомительные сценарии
тестирования Самое главное: вы можете тестировать на большем количестве мобильных устройств одновременно, экономя время. Используя симуляторы или облако, вы можете сделать это, не покупая и не управляя устройствами!
Сколько тестовых случаев необходимо для базового набора тестов?
Это будет сильно варьироваться в зависимости от приложения и того, насколько велик «тестовый случай». Если тестовые случаи представляют собой простые тесты dom-to-database, которые проверяют одну логическую операцию, то типичная функция может иметь от четырех до десяти тестов, а типичное приложение может иметь от четырех до десяти функций.
Если приложение закодировано с использованием двух разных языков программирования, одного для iOs и одного для Android, вам может потребоваться удвоить этот показатель или написать уровень абстракции и иметь один набор бизнес-сценариев и две реализации, которые варьируются в зависимости от операционной системы.
Ручное тестирование мобильных приложений
Преимущества ручного тестирования
- Точное и быстрое тестирование пользовательского интерфейса
- Опыт и тестирование приложения в качестве реального пользователя для репликации окончательного опыта
- Простое выявление и воспроизведение обнаруженных проблем
- Решение сложных вопросов и сценариев использования
- Тестирование небольших изменений и проектов быстрее и экономичнее
Недостатки ручного тестирования
- Человеческая ошибка влияет на точность
- Тесты должны повторяться вручную каждый раз
- Утомительные задачи тестирования намного сложнее
- Огромный охват требует много ресурсов, таких как численность персонала тестировщика и доступ к широкому спектру устройств
Ручное тестирование в мобильных приложениях используется для:
- Исследовательское тестирование: Как подход, исследовательское тестирование оценивает тестировщик как неотъемлемую часть процесса тестирования. Для этого нужен ручной тестировщик, чтобы извлечь выгоду из их понимания, творчества и знаний.
- Специальное тестирование: По определению, ad hoc является неформальным типом тестирования. Он направлен на то, чтобы сломать систему, поэтому не может быть выполнен в плановом порядке. Ему нужен тестер, чтобы вести себя нерегулярно, чтобы попытаться сломать систему.
- Тестирование юзабилити: Ручной тестер может получить представление о конечном пользовательском опыте. Использование приложения так, как оно предназначено для использования, поможет определить, насколько удобно приложение, и человеческий вклад является ключевым в этом.
Автоматизированное тестирование мобильных приложений
Преимущества автоматизированного тестирования
- Более быстрое выполнение утомительных и требовательных тестов
- Тестирование многих устройств
- Автоматизированные тесты могут использоваться многократно
- Быстрые, эффективные и точные результаты
- Несколько автоматических тестов могут быть выполнены одновременно
- Для больших мобильных приложений автоматизированные тесты более экономичны
Недостатки автоматизированного тестирования
- Отсутствие понимания пользовательского опыта с визуальной точки зрения
- Стоимость запуска и запуска автоматизированных тестов высока из-за необходимости кода
- Расточительно в ситуациях меньшего масштаба
- Все еще некоторая человеческая ошибка, так как автоматизированный тест запрограммирован человеком и требует собственного тестирования
- Требуются конкретные конфигурации и код для каждого мобильного приложения
Автоматизированное тестирование в мобильных приложениях используется для:
- Регрессионное тестирование: Одной из самых сильных сторон автоматизированного тестирования является возможность иметь тестовый сценарий, готовый к запуску в любое время. Один из лучших способов использования автоматизированного тестирования - это постоянные небольшие изменения, когда вы хотите убедиться, что они не будут иметь никаких негативных последствий.
- Тестирование производительности: В отличие от юзабилити-тестирования, производительность больше похожа на игру чисел. Тестирование того, насколько быстрым, отзывчивым и стабильным является приложение на разных устройствах или в разных условиях, — это то, что автоматические тесты успешно выполняют. Масштаб и точность результатов делают автоматизированные тесты необходимыми для тестирования производительности.
- Повторное тестирование: После первоначальных затрат на кодирование и настройку тестового скрипта в долгосрочной перспективе автоматизированное тестирование становится очень экономичным. Возможность повторять тесты без дополнительных затрат на ресурсы тестировщика значительно упрощает тестирование и получение результатов.