Сейчас октябрь, и многие друзья, возможно, планируют сменить работу, поэтому я обновил некоторые вопросы для собеседования в приложении, надеясь помочь всем.
1. В чем разница между веб-тестированием и тестированием приложений?
- Архитектурные различия
- Веб-тест: на основе B/S (браузер/сервер).,браузер/сервер) архитектура,тест в основном сосредоточен на взаимодействии между стороной браузера и серверной частью. Веб-приложение, доступ к которому осуществляется через браузер,Поэтому нет необходимости учитывать состоятельность клиента при тестировании.,Пока сервер обновляется,Клиент будет обновляться синхронно.
- APPtest: на основе C/S (клиент/сервер).,клиент/сервер) архитектура,тест требует сосредоточиться на взаимодействии между клиентом и сервером,В то же время необходимо учитывать согласованность клиента (например, мобильных телефонов, планшетов и т. д.). Поскольку приложение требует от пользователей активного обновления,Поэтому бывают ситуации, когда сосуществуют несколько версий.,Необходимо убедиться, что новые функции могут быть реализованы, не затрагивая пользователей старых версий.
- производительностьтест
- Веб-тест: основной упор на время отклика、Использование процессора、Индикаторы включают использование памяти и максимальное количество одновременных онлайн-пользователей, которые может поддерживать система. Кроме того, вам также необходимо учитывать функцию веб-печати.、тест на предмет наличия и корректности ссылки.
- APPtest: за пределами времени отклика、Использование Помимо таких показателей, как процессор, использование памяти и т.д.,Также требуются специальные показатели, такие как потребление трафика, энергопотребление и использование графического процессора. также,Поскольку приложение имеет несколько сценариев (например, Wi-Fi, 5G, 4G, 3G, 2G и т. д.),Поэтому также необходимо выполнить слабый сетевой тест, тест переключения сети и т. д.
- Тест совместимости
- Webтест:основнойсосредоточиться на разные Просматривать (например, IE、Chrome、Firefox и т. д.) и различные операционные системы (например, Windows、Linux、Macждать)Совместимость между。также,Вам также необходимо учитывать эффекты отображения при разных разрешениях.
- APPtest: Основное внимание уделяется различным брендам мобильных телефонов.、модель、Версия операционной системы и разрешение экрана Совместимость между。потому чтоAPPНеобходимость запуска на нескольких устройствах,Поэтому необходимо охватить как можно больше устройств и сценариев.
- Тест работы интерфейса
- Веб-тест: Является ли основной упор разумным?、Выдержан ли общий стиль?、Соответствует ли размещение каждого элемента управления привычкам использования пользователя и т. д. Кроме того, также необходимо обеспечить, чтобы навигация по веб-странице была простой и понятной.、Хорошее ли удобство использования элементов страницы и т. д.
- APPтест:потому чтоAPPв целомиспользовать Сенсорный экран для работы,Поэтому требуется особое внимание к жестовым операциям (таким как нажатие, скольжение, масштабирование и т. д.), переключению экрана по горизонтали и вертикали, мультитач и т. д. также,Также необходимо следить за тем, чтобы статус приложения оставался постоянным при переключении между передней и задней версиями.
- Безопасностьтест
- Webтест:основнойсосредоточиться наSQLинъекция、CSRF-атака、тестировать уязвимости безопасности, такие как XSS-атаки. Эти уязвимости могут привести к утечке данных или несанкционированному доступу к системе.
- APPtest: Можно ли декомпилировать основной установочный пакет、Подписать или нет、Будет ли он усилен и процесс передачи и хранения данных Безопасностьсексждатьаспект。также,Также требуется, имел ли тестAPP доступ к конфиденциальной информации пользователя без его разрешения и т. д.
- Инструменты
- Webтест:Часто используемая автоматизация ИнструментывключатьQTP、Selenium и другие инструменты тестирования производительности, включая Jmeter;、Лоад Раннер и др.
- APPтест:Часто используемая автоматизация ИнструментывключатьMonkeyRunner、Appium и другие инструменты повышения производительности, включая Monkey;、Jmeter (также доступен для APPtest) и т. д.
2. Метод тестирования совместимости приложений.
1. Определите цели тестирования
- Операционная система: Определите операционную систему и ее версию, с которой должно быть совместимо приложение, например, различные версии iOS, разные версии Android и различные версии, настроенные различными производителями в системе Android.
- Оборудование: охват основных производителей мобильных телефонов и продуктов на рынке.,Вы можете получить последние данные о доле рынка на статистических платформах больших данных.,По данным производителямодель Выбор комбинациитестоборудование。
- Разрешение: эффект отображения тестового приложения при различных разрешениях и размерах экрана, гарантирующий нормальное отображение пользовательского интерфейса и правильность макета.
- Среда: работа тестирования в соответствии с различными сетевыми стандартами (такими как Wi-Fi, 5G, 4G, 3G и т. д.) и сетями, предоставляемыми разными сетевыми операторами.
2. Тестовый контент
- Функциональная совместимость:
- Тестовое приложение устанавливается、использовать、Влияет ли процесс удаления на нормальную работу другого программного обеспечения на терминале.
- Влияет ли тестовое приложение на основные функции терминала во время работы?,нравиться Совершать и принимать звонки、Отправляйте и получайте сообщения、Просматриватьвеб-сайтждать。
- Полнота и согласованность основных функций testAPP на разных устройствах и платформах.
- Совместимость оборудования:
- использовать Реальная машина или облачная служба реальной машинытестAPPсуществоватьдругойаппаратное обеспечениеоборудованиеи производительность конфигурации。
- протестируйте приложение с внешними устройствами (например, Bluetooth-гарнитурами).、принтер и т. д.) совместимость.
- Совместимость с операционной системой:
- Установка testAPP на разные версии операционной системы、Условия запуска и эксплуатации.
- Вернуться к тесту основной функциональности,Обеспечьте согласованную функциональность в разных версиях операционной системы.
- Совместимость разрешений:
- Эффект отображения тестAPP на устройствах с разными разрешениями и размерами.
- Убедитесь, что макет пользовательского интерфейса и элементы приложения нормально отображаются при разных разрешениях.
- сетьсовместимость:
- использовать Реальная машинатестAPPсуществоватьдругойсеть Работа по стандарту。
- Сосредоточьтесь на основных функциях, включая сетевые запросы.
3. Выберите подходящие инструменты тестирования.
- автоматизация Инструменты:нравитьсяAppium、Calabash、Robot Framework, Selendroid и др. поддерживают автоматизацию на платформах iOS и Android.
- Платформа облачного тестирования: например, BrowserStack/App. Live、Total Control и т. д. предоставляют облачные сервисы тестирования для веб- и мобильных приложений на реальных устройствах и браузерах.
- моделированиеустройство:虽然моделированиеустройствоможет обеспечить определенную степень Тест совместимости,Однако из-за различий в производительности, аппаратных характеристиках и т. д.,Он не может полностью заменить настоящую машину.
3. Как протестировать push-сообщения?
1. Подготовка к тестированию
- Узнайте о типах push-уведомлений:
- текстовое уведомление
- Звуковое уведомление
- Уведомление об изображении
- Другие мультимедийные уведомления
- Подготовитьтестсреда:
- Тестовое устройство: телефон iOS или Android и т. д.
- Аккаунт тест тест
- Установите тестовую версию приложения,так чтоиспользовать Инструменты разработчика имитируют push-уведомления
- использовать Инструменты разработчика или сторонние инструменты:
- Инструменты разработчика, такие как Xcode (iOS) и Android Studio (Android), могут имитировать push-уведомления.
- Сторонние инструменты, такие как Postman, Pusher, Firebase. Cloud Messaging (FCM) и т. д. также можно использовать для отправки тестовых уведомлений.
2. Тестовый контент
- Основные функциитест:
- Проверьте, отправляется ли Push-сообщение в соответствии с указанными бизнес-правилами.
- Проверьте, не получает ли пользователь больше push-сообщений, если не получает push-сообщения.
- Если Push-сообщение предназначено для вошедшего в систему пользователя, проверьте, соответствует ли полученное Push-сообщение личности пользователя.
- Связанное со временемтест:
- Проверьте, не может ли пользователь получать Push-сообщения в период режима «Не беспокоить».
- Проверьте, может ли пользователь нормально получать push-сообщения в период отсутствия беспокойства.
- Связанный со статусомтест:
- Выполнить тест при включении и выключении питания или в режиме ожидания,Корректность сообщений и push-прыжков
- Проверьте правильность отображения Push и перехода, когда приложение находится в разных состояниях (разработка, не открыто, запущено и работает в фоновом режиме).
- Показывай и прыгайтест:
- Проверьте, отображается ли в Push-сообщении красная точка и правильно ли меняется число до и после прочтения Push-сообщения.
- Убедитесь, что push-сообщение переходит на правильную страницу или выполняет правильное действие после щелчка.
- Коллекциятест:
- Проверьте правильность отображения и перехода нескольких push-коллекций.
- параметртест:
- Если push-сообщение содержит пользовательские параметры, убедитесь, что эти параметры правильно передаются и правильно обрабатываются в приложении.
- производительность稳定секстест:
- Масштабная рассылка push-сообщенийиспользоватьслучай,Тест производительности и стабильности приложения,чтобы убедиться, что он может обрабатывать большие объемы push-уведомлений
4. Если во время тестирования приложение выйдет из строя или возникнет ошибка ANR, как вы с этим справитесь?
1. Соберите информацию журнала
- Просмотр локальных журналов:
- Если приложение настроило функцию сохранения журнала ошибок в отладочной версии, файл журнала ошибок можно получить непосредственно с SD-карты устройства или из указанного каталога.
- Используйте инструменты разработчика (такие как Xcode, Android Studio) подключается к устройству и собирает информацию журнала в режиме реального времени с помощью logcat или соответствующего инструмента просмотра журналов.
- Используйте сторонние статистические инструменты SDK:
Если в приложение встроен сторонний SDK статистики (например, UmengStatistics и т. д.), вы можете войти в соответствующую серверную систему, чтобы просмотреть информацию журнала ошибок.
2. Анализируйте информацию журнала.
- Проблема с позиционированием:
- На основе стека исключений, кода ошибки, описания ошибки и другой информации в журнале определите конкретную причину сбоя или ANR.
- Для проблем ANR также требуется внимание. на Блокирован ли основной поток, есть ли взаимоблокировка и т.д.
- Определите тип вопроса:
Определите, вызвана ли проблема логическими ошибками кода, утечками ресурсов, нехваткой памяти, конфликтами сторонних библиотек или проблемами системной среды.
3. Воспроизведение и проверка
- Попробуйте воспроизвести проблему:
- Согласно подсказкам, представленным в информации журнала,Попробуйте воспроизвести проблему в тестовой среде.
- Если его невозможно воспроизвести напрямую, вы можете проанализировать сценарии использования и этапы работы пользователя и попытаться смоделировать поведение пользователя.
- Проблемы с проверкой:
- После воспроизведения проблемы проверьте, ведет ли она себя так, как описано в информации журнала.
- Убедитесь, что проблема существует на разных устройствах и в разных версиях операционной системы.
4. Ремонт и тестирование
- Исправьте проблему:
После ремонта спросите команду разработчиков о причине проблемы и последующих мерах по ее устранению.
- возвращатьсятест:
- После устранения проблемы,Выполните регрессию, чтобы убедиться, что проблема решена.
- Проверьте стабильность и совместимость отремонтированного приложения на разных устройствах и версиях операционных систем.
5. Каковы проблемы тестирования производительности приложений и общих инструментов тестирования производительности приложений?
1. Сосредоточьтесь на тестировании производительности приложений.
- Время ответа:
Время отклика пользовательских операций напрямую влияет на пользовательский опыт.
- Использование процессора:
Чрезмерная загрузка ЦП приведет к перегреву устройства, увеличению энергопотребления и даже к возникновению таких проблем, как ANR (зависание приложения). Вам необходимо обратить внимание на загрузку ЦП приложением в различных состояниях, таких как состояние простоя, среднее рабочее состояние и полноразмерное длительное состояние.
- Использование памяти:
Неправильное использование памяти может вызвать такие проблемы, как зависание приложений и сбои. Необходимо протестировать использование памяти приложением во время работы, чтобы убедиться, что приложение может вовремя освободить память и избежать утечек памяти.
- Частота кадров (FPS):
Частота кадров — это количество кадров, передаваемых в секунду, что напрямую влияет на плавность анимации или видео. Для мобильных приложений поддержание частоты обновления 60 кадров/с является основным требованием для бесперебойной работы.
- Графический рендеринг:
Рендеринг с помощью графического процессора подразумевает многократное рисование одного пикселя. Перерисовка повлияет на производительность анимации, поэтому вам необходимо обратить внимание на эффективность рендеринга графического процессора и оптимизировать ее.
- Потребляемая мощность:
Энергопотребление является одним из важных показателей для измерения производительности приложений. Необходимо протестировать энергопотребление приложения во время работы, чтобы убедиться, что приложение не потребляет чрезмерную мощность.
- сетьпроизводительность:
В различных типах сетей (таких как 2G, 3G, 4G, 5G, WiFi) приложениям необходимо повышать скорость ответа на запросы и контролировать использование трафика. Необходимо протестировать скорость сетевых запросов, потребление трафика и стабильность сетевого подключения приложения в различных сетевых средах.
- Стабильность и совместимость:
Проверьте стабильность и совместимость приложения на различных устройствах и версиях операционных систем, чтобы убедиться, что приложение может стабильно работать в различных средах.
2. Общие инструменты тестирования производительности приложений.
- Xcode Instruments:
Инструмент анализа производительности, официально предоставляемый Apple, является мощным и может проводить углубленный анализ процессора, памяти, сети, рендеринга графики и других аспектов.
- Android Profiler:
Встроенный инструмент анализа производительности Android Studio может анализировать процессор, память, сеть, графический процессор и т. д.
- PerfDog:
Коммерческий инструмент тестирования производительности, который поддерживает платформы iOS и Android и обеспечивает интуитивно понятную визуализацию данных о производительности. Он может отслеживать ключевые показатели, такие как загрузка процессора приложения, использование памяти, частота кадров и энергопотребление, в режиме реального времени, а также генерировать подробные отчеты об испытаниях.
- Акула:
В основном используется для анализа производительности процессора и может создавать подробные отчеты о производительности.
- TestComplete:
Коммерческий инструмент автоматического тестирования, поддерживающий несколько платформ и языков программирования, включая веб-приложения, настольные и мобильные приложения. Предоставляет богатые функции автоматического тестирования и мощные функции анализа данных.
- LoadRunner:
Мощный инструмент тестирования производительности, который может имитировать одновременный доступ большого количества пользователей и подходит для крупномасштабного тестирования производительности.
- JMeter:
Инструмент тестирования производительности Apache с открытым исходным кодом можно использовать для проверки производительности статических и динамических ресурсов.
- Firebase Performance Monitoring:
Платформа мониторинга производительности мобильных приложений, предоставляемая Google, может отслеживать время запуска приложения, сетевые запросы, частоту кадров и другие показатели.
6. Как проверить слабую сеть приложения
1. Тестовый контент
- в нормальной тестовой сети:
Убедитесь, что приложение нормально работает в обычных сетевых средах (например, Wi-Fi, 4G, 5G и т. д.) и что элементы страницы и данные отображаются правильно.
- никтосетьсреда Внизтест:
- Закрыть сетевое соединение,Производительность testAPP в сетевой среде.
- сосредоточьтесь на том, доступны ли различные функции приложения без сети.,Переключение страниц - это нормально?,Не вызовет ли это ненормальные ситуации, такие как сбой и зависание?
- Проверьте, теряет ли приложение данные без сети,И дружелюбно ли сообщение без сети.
- Слабая сетьсреда Внизтест:
- использоватьсеть Инструменты моделированиянастраиватьдругой的Слабая сеть条件(нравитьсявысокая задержка、Высокая скорость потери пакетов и т. д.).
- Исключает ли testAPP тайм-аут запроса в слабой сетевой среде?,и всетьотложенныйслучай Выполнить синхронизацию данных、Будет ли происходить сбой при обновлении OTA и других операциях?、ANR и другие серьезные ошибки.
- Проверьте, выполняет ли приложение другие действия и взаимодействия, когда обратный вызов запроса не завершен в условиях слабой сети, и не возникнет ли аномалий, таких как сбой «Появляться».
- Проверьте, не теряются ли исходные данные в слабой сетевой среде и не происходит ли накопление запросов Появляться.
- сосредоточиться Отображается ли каждая страница приложения полностью в слабой сетевой среде, и является ли сообщение о тайм-ауте системы четким и понятным.
- сеть Переключение статусатест:
- При переключении между различными состояниями тестовой сети (например, при переключении Wi-Fi на 4G、Переключение 4G на отсутствие сети и т. д.) Производительность приложения.
- сосредоточиться Проверьте, не являются ли отображение и взаимодействие страницы ненормальными, а также не происходит ли сбой приложения при разрыве соединения во время синхронизации данных.
2. Инструменты и методы тестирования
- сеть Инструменты моделирования:использоватьCharles、Такие инструменты, как Fiddler, имитируют слабую сетевую среду и устанавливают разные скорости.、Задержка и скорость потери пакетов.
- Инструмент захвата журнала: используйте такие инструменты, как Logcat (Android) или Xcode Console (iOS), для сбора информации журнала приложения в слабой сетевой среде для анализа и определения местоположения проблем.
- Инструменты мониторинга производительности: используйте PerfDog, Firebase Performance Monitoring и другие инструменты для мониторинга производительности приложения в слабой сетевой среде, например частоты кадров, использования ЦП, использования памяти и т. д.
7. Объясните сводку точек тестирования приложения.
1. Функциональное тестирование
- Тест основных функций: проверьте, нормально ли работают основные функции приложения.,нравитьсязарегистрироваться、Авторизоваться、Просматривать、поиск、Покупка и т. д.
- Тест граничной функции: проверка функциональных характеристик приложения в экстремальных или граничных условиях.,Например, ввод имени пользователя и пароля с максимальной или минимальной длиной символов.,Проверьте, может ли приложение правильно с этим справиться.
- Проверка ненормальной функции: имитирует нештатные ситуации в операциях пользователя.,Например, обрыв сети, низкий заряд батареи и т. д.,Проверьте отказоустойчивость приложения и информацию об исключениях.
2. Тестирование совместимости
- Совместимость устройств: тестAPP работает на разных брендах.、модельмобильный телефон、Производительность на планшетах и других устройствах для обеспечения нормальной работы.、Адаптация интерфейса.
- Совместимость с операционной системой: производительность тестового приложения на различных версиях Android, iOS и других операционных системах обеспечивает хорошую совместимость.
- Совместимость по разрешению: нормально ли отображается тестAPP на экранах с разными разрешениями.,Убедитесь, что макет интерфейса разумен, а элементы понятны.
3. Тест производительности
- Тест времени отклика: проверьте время отклика приложения при различных операциях.,Убедитесь, что пользователи могут беспрепятственноиспользовать。
- Загрузка теста скорости: запускается тестAPP、Переключение страниц、Загрузка данныхждатьсцена Вниз的速度,Убедитесь, что пользователи ждут разумное время.
- давлениетест:Имитация большого количества пользователей одновременноиспользоватьAPPсцена,Тестирование грузоподъемности и стабильности приложенияAPP
4. Тестирование пользовательского опыта
- Эстетика интерфейса: проверьте, является ли дизайн интерфейса приложения красивым, лаконичным и соответствует эстетике пользователя.
- Логика взаимодействия: является ли логика взаимодействия тестового приложения разумной и интуитивно понятной, и могут ли пользователи легко приступить к работе.
- Простота использования: оцените простоту использования приложения, например, прост ли процесс работы, понятна ли подсказка и т. д.
5. Тестирование безопасности
- Безопасность данных: безопасен ли процесс хранения и передачи данных testAPP?,Есть ли риск утечки?
- Безопасность связи: зашифрована ли связь между тестовым приложением и сервером, чтобы предотвратить кражу или подделку данных.
- Управление разрешениями: проверьте, является ли управление разрешениями приложения разумным и нет ли каких-либо злоупотреблений разрешениями.
6. Тестирование установки и удаления.
- Установка test:testAPP на разные операционные системы、Процесс установки на устройство для обеспечения плавной установки、Никаких ошибок.
- Удаление теста: процесс удаления теста приложения.,Убедитесь, что после удаления не осталось остаточных данных или ненормальных сообщений.
7. Тест сети
- networkStability: производительность testAPP в нестабильных ситуациях сети.,Например, прерывание сети, задержка и т. д.
- Сетевая совместимость: совместимость testAPP в различных сетевых средах.,Обеспечьте нормальное функционирование и правильную передачу данных.
8. Другие тесты
- Push test: Нормальна ли функция push testAPP?,Например, push-сообщение, напоминание об уведомлении и т. д.
- Тест обновления: является ли процесс обновления приложения гладким и работают ли функции нормально после обновления.
- Перекрестное тестирование: как ведет себя тестовое приложение при одновременной работе с другими приложениями,Например, помехи от таких приложений, как телефонные звонки и текстовые сообщения.
восемь
Объясните холодный запуск приложения, теплый старт, горячий старт, запуск первого экрана?
1. Холодный старт
- Определение: при запуске приложения в фоновом режиме нет процесса. В это время система заново создаст новый процесс и назначит его приложению. Этот метод запуска называется холодным запуском.
- сцена:
- Первый раз программа запускается после установки.
- Приложение открывается повторно после того, как оно полностью завершается системой, например, когда пользователь активно завершает процесс или система завершает процесс из-за нехватки памяти.
- Особенности: Из-за необходимости создания нового процесса и инициализации приложения холодный запуск занимает больше всего времени запуска и потребляет больше всего ресурсов.
2. Теплый старт
- Определение: метод запуска между холодным и горячим стартом, включая некоторые операции холодного и горячего старта.
- Сценарий: «Горячий» перезапуск может произойти, когда приложение было запущено, но его необходимо перезапустить по каким-либо причинам (например, пользователь активно выходит из приложения, но процесс все еще находится в памяти).
- Особенности: По сравнению с холодным стартом, теплый старт не требует повторного создания и инициализации класса приложения, поэтому время запуска короче и потребление ресурсов меньше. Но по сравнению с «теплым» запуском «теплый» запуск по-прежнему требует некоторых дополнительных операций, таких как воссоздание действий.
3. Горячий старт
- Определение: когда приложение уже открыто, но возвращается на рабочий стол или в другие программы при нажатии клавиши возврата, клавиши «Домой» и т. д., а затем повторно открывает приложение, этот метод запуска называется «теплой» загрузкой. В это время программа все еще находится в памяти, но выводится системой на передний план из фона.
- сцена:
- После того, как пользователь выходит из приложения с помощью клавиши возврата, он сразу же перезапускает его.
- Пользователь переключается на другое приложение, а затем возвращается в это приложение.
- Особенности: Поскольку горячий старт не требует пересоздания процессов и инициализации приложений, время запуска минимальное, а потребление ресурсов минимальное. Однако следует отметить, что если часть памяти приложения очищается системой, эти объекты необходимо воссоздавать в ответ на события запуска.
4. Первый экран запуска
- Определение: Запуск в верхней части экрана — это время, необходимое приложению для отображения его главного экрана или экрана, который пользователь видит первым (т. е. в верхней части экрана) после запуска.
- сцена:
- Впервые для новых пользователей: когда пользователи впервые загружают и устанавливают приложение, они видят его запуск над сгибом страницы. Это важный момент для того, чтобы пользователи узнали о приложении и сформировали свое первое впечатление.
- Повторное открытие старого пользователя. Пользователи, которые уже использовали приложение, могут повторно открыть его в какой-то момент. В это время не менее важен первый запуск экрана, поскольку он определяет, сможет ли пользователь быстро войти в приложение и продолжить предыдущую операцию или изучить новые возможности.
- После обновления приложения: после обновления или обновления приложения пользователи также увидят первый запуск экрана, когда снова откроют приложение. Это возможность приложения показать пользователям новые функции или изменения версии.
- Особенности: Первый запуск экрана является отправной точкой взаимодействия приложения и пользователя. Если запуск первого экрана занимает слишком много времени, пользователи могут потерять терпение или потерять интерес, что приведет к их оттоку или удалению приложения.