Краткое изложение вопросов тестового интервью APP
Краткое изложение вопросов тестового интервью APP
1. Основы

1. Расскажите, пожалуйста, о процессе тестирования приложения?

Процесс тестирования приложения аналогичен процессу веб-тестирования и разделен на следующие семь этапов:

1. Напишите план тестирования на основе спецификации требований;

2. Разработать план тестирования, в основном с распределением тестовых задач, тестировщиков и времени тестирования;

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

4. Разрабатывать и писать тест-кейсы, просматривать и дополнять тест-кейсы;

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

6. Отправьте результаты тестирования, включая тестовые примеры и планы тестирования;

7. Ежедневное техническое обслуживание;

Цикл тестирования приложения может определять время тестирования в соответствии с циклом разработки проекта. Общее время тестирования составляет две-три недели. Время тестирования может быть сокращено или увеличено в зависимости от ситуации в проекте и качества версии.

2. Какие ресурсы для тестирования необходимо заранее подготовить для тестирования приложения?

Конкретные тестовые ресурсы, которые необходимо подготовить, могут быть основаны на реальном проекте с учетом следующих аспектов:

1. Устройства IOS, устройства Android (выберите основные продукты для мобильных телефонов на рынке);

2. Для товаров, оплаченных через Alipay/UnionPay, вам необходимо заранее подать заявку на открытие учетной записи Alipay/UnionPay;

3. Если есть темы флэш-распродаж, вам необходимо спланировать график флэш-распродаж;

4. Для проектов с купонами необходимо добавить данные купона;

3. В чем разница между тестированием приложений и веб-тестированием?

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

Похожие моменты:

1. Тот же метод разработки тестового примера;

2. Тот же метод тестирования: пользовательский интерфейс будет проверен на основе чертежей или визуализаций прототипа;

3. Проверьте скорость загрузки и перелистывания страниц, время входа в систему, не переполняется ли память и т. д.;

4. Проверьте стабильность системы приложения;

Отличия:

1. Структура системы

  • Веб-проект, архитектура b/s, на основе браузера, пока сервер обновляется в веб-тесте, клиент будет обновляться одновременно.
  • Проекты приложений со структурой c/s должны иметь клиент; если приложение изменяет сервер, все основные версии пользователей клиента должны пройти регрессионное тестирование.

2.Производительность

  • Веб-проектам необходимо отслеживать время отклика, процессор и память;
  • Помимо мониторинга времени отклика, процессора и памяти, проекты приложений также должны отслеживать трафик, питание и т. д.;

3. Совместимость

  • Веб-проекты: браузеры (Firefox, Google, IE и др.); операционные системы (Windows7, Windows10, Linux и др.);
  • Проект приложения: Система устройства: iOS (ipad, iPhone), Android (Samsung, Huawei, Lenovo и т. д.), Windows (Win7, Win8), OSX (Mac); устройства мобильных телефонов могут различаться в зависимости от модели телефона, разрешения и типа устройства; размер экрана.

4. По сравнению с проектом Wed, приложение имеет специальные тесты.

1) Тест на помехи: прерывание, входящие вызовы, текстовые сообщения, выключение, перезапуск и т. д.

2) Тест слабой сети (имитация 2g, 3g, 4g, 5g, состояние сети Wi-Fi и тест переключения сети (переподключение после отключения сети, переключение с 3g на 4g, 5g/wifi и т. д.).

3) Установка, обновление, удаление, прерывание и переключение между передней и задней версиями.

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

4) Работа интерфейса. При тестировании мобильного телефона следует обратить внимание на жесты, переключение экрана по горизонтали и вертикали, мультитач, а также переключение вперед и назад.

5) Проверка безопасности: можно ли декомпилировать установочный пакет, подписан ли установочный пакет, настройки разрешений, например, доступ к адресной книге и т. д.

6) Граничный тест: мало свободного места, нет SD-карты/двух SD-карт, режим полета, неправильное системное время, сторонние зависимости (QQ, вход в WeChat) и т. д.

7) Проверка разрешений: установите, может ли приложение получить разрешение, например, может ли оно получить доступ к адресной книге, фотоальбому, камере и т. д.

5. Инструменты тестирования

  • Инструменты автоматизации: APP обычно использует Appium; Web обычно использует Selenium;
  • Тестирование производительностиинструмент:APP Обычно используйте Monkey, JMeter; Web общее использование LR、JMeter;

5. В чем разница между системами телефонов Android и телефонов IOS?

1. Два операционных механизма различны: IOS использует операционный механизм песочницы, а Android использует операционный механизм виртуальной машины.

Механизм работы песочницы iOS:

  • Каждая программа имеет собственное виртуальное адресное пространство. Поэтому доступ между программами невозможен.
  • По умолчанию в ОЗУ будут записаны только последние запущенные данные приложения.

Механизм работы виртуальной машины Android:

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

2. Фоновые системы у них разные: ни одна сторонняя программа в IOS не может работать в фоновом режиме, любая программа в Android может работать в фоновом режиме и не закроется, пока не закончится память;

3. IOS имеет высшие полномочия для инструкций пользовательского интерфейса, а Android имеет высшие полномочия для инструкций по обработке данных.

6. В чем разница между тестированием приложений для iOS и Android?

1. Физические кнопки: на Android нажмите и удерживайте кнопку «Домой», чтобы вызвать список приложений и переключить приложения, а затем проведите пальцем вправо, чтобы закрыть приложение. На iOS все возвраты на предыдущий уровень могут быть достигнуты только с помощью функций страницы;

2. Тестирование с разными разрешениями: более 20 типов на Android и меньше на IOS;

3. Операционные системы мобильных телефонов: Android более распространен, а IOS менее распространен и не может быть обновлен. Его можно обновить только в одном направлении. Библиотека ресурсов в новой системе IOS не полностью совместима с приложениями более низкой версии. Если приложение вызывает новую библиотеку ресурсов, это напрямую приведет к сбою.

4. Привычки работы: Android, была ли переписана клавиша «Назад», проверьте, верна ли обратная связь после нажатия клавиши «Назад», могут ли данные приложения работать нормально после перемещения из памяти на SD-карту и т. д.

5. Тест нажатия: когда Android нажимает кнопку «Домой» и программа работает в фоновом режиме, принимается нажатие и приложение просыпается после нажатия. Может ли IOS правильно перейти в это время на кнопку «Домой», чтобы закрыть программу? и заблокируйте экран (показ красной точки).

6. Проверка установки и удаления: Android можно загрузить через собственный рынок приложений мобильного телефона или через сторонний мобильный помощник. Существует множество платформ, инструментов и каналов для загрузки и установки; IOS в основном включает в себя магазин приложений, iTunes и загрузку testflight.

7. Тест обновления: необходимые условия для обновления: старая и новая версии имеют одинаковую подпись; старая и новая версии имеют одинаковое имя пакета; существует идентификатор, позволяющий различать старую и новую версии (например, номер версии).

8. Способ оплаты. Для некоторых приложений с функциями покупки в приложении Android напрямую обращается к сторонним платежным каналам для завершения платежа. IOS необходимо сначала привязать метод оплаты в магазине приложений, а затем завершить операцию оплаты через приложение; магазин.

9. Механизм отправки сообщений: Android использует сторонние или собственные платформы для отправки сообщений; каналы отправки сообщений IOS официально предоставляются Apple.

7. Внедрить инструмент перехвата пакетов приложений?

Fiddler обычно используется, главным образом, для захвата пакетов приложений. Сначала настройте различные конфигурации клиента Fiddler и установите порт 8888, а затем установите прокси-сервер на мобильном телефоне для захвата пакетов. Главное, на что следует обратить внимание, — это значение, возвращаемое функцией Fiddler. Сервер. Вы также можете изменять входящие и исходящие параметры, моделировать задержки в сети и создавать различные сценарии.

8. Как вести журналы приложений?

  • Вы можете использовать команду adb: adb logcat | find "com.sankuai.meituan" >d:\test.txt
  • Вы также можете использовать ddms для захвата, подключения телефона к компьютеру и открытия инструмента ddms;
  • Или в инструментах разработки Android Studio откройте DDMS;

9. Какие команды adb обычно используются?

1. Просмотрите справочное руководство, чтобы просмотреть все описания опций и подкоманды:

adb help

2. Получите список устройств и их статус:

adb devices

3. Устанавливаем приложение: adb install path\xx.apk, устанавливаем приложение adb install -r reinstall;

adb install

adb install -r

4. Получите статус устройства. Существует три типа статуса устройства: устройство, автономное и неизвестное. Устройство подключено нормально. Не в сети. Соединение ненормальное, устройство не отвечает. подключен.

adb get-state

5. Удаляем приложение: adb uninstall <имя пакета>, Следующий параметр — это имя пакета приложения, которое отличается от apk имя файла.

adb uninstall

6. будет Android Скопируйте файлы или папки с устройства на локальный компьютер: adb pull <удаленный путь> <локальный путь>, Например, копирование Sdcard вниз pull.txt файл в D Диск: адб pull sdcard/pull.txt d:\, переименуйте: adb pull sdcard/pull.txt d:\rename.txt。

adb pull

7. Отправьте локальные файлы в Android Устройство: adb push <локальный путь> <удаленный путь>, Такие как толчок D Панвниз ITester.txt к Sdcard:adb push d:\ITester.txt sdcard/ (обратите внимание на SD-карту Конечная косая черта не может отсутствовать).

adb push

8. Завершите и запустите службу adb: adb kill-server /adb start-server, end adb service/start adb service. Обычно эти две команды используются вместе, когда состояние устройства ненормальное, и запустите start-. сервер, чтобы перезапустить службу.

adb kill-server

adb start-server

9. Распечатайте и очистите системные журналы: adb logcat, распечатайте системные журналы Android adb logcat -c, очистите журналы.

adb logcat

adb logcat -c

10. Найдите имя пакета/название действия.

adb logcat | findstr START

10. Каковы три компонента adb?

Как инструмент командной строки с архитектурой клиент/сервер, ADB в основном состоит из трех частей.

  • adb clent (клиент): вы можете использовать его для установки, удаления и отладки приложений Android.
  • Служба adb (сервер): управляет соединением между клиентом и фоновым процессом abd на устройстве Android и отвечает за управление связью между клиентом и damon.
  • adb daemon: фоновый процесс adb, работающий на устройствах Android.

2. Расширенная глава

1. Представьте четыре основных компонента Android?

Четыре основных компонента Android: Activity, BroadcastReceiver, ContentProvider и Service.

  • Действие: в приложении действие эквивалентно экрану мобильного телефона. Это компонент, который может содержать пользовательский интерфейс и в основном используется для взаимодействия с пользователями. Приложение может содержать множество действий, например клики по событиям, которые обычно запускают новое действие.
  • BroadcastReceiver Приемник широковещательной рассылки: приложения могут использовать его для фильтрации внешних событий и получать и реагировать только на интересующие внешние события (например, когда поступает телефонный звонок или когда доступна сеть передачи данных). Вещательные приемники не имеют пользовательского интерфейса. Однако они могут запустить действие или службу в ответ на полученную информацию или использовать NotificationManager для уведомления пользователя. Уведомления можно использовать разными способами для привлечения внимания пользователя – мигающей подсветкой, вибрацией, воспроизведением звуков и т. д. Общая идея состоит в том, чтобы разместить в строке состояния постоянный значок, который пользователь может открывать и получать сообщения.
  • Поставщик контента ContentProvider: поставщик контента в основном используется для реализации совместного использования данных между различными приложениями. Он обеспечивает полный механизм, позволяющий одной программе получать доступ к данным в другой программе, обеспечивая при этом безопасность доступа к данным. Поставщики контента необходимы только в том случае, если вам необходимо обмениваться данными между несколькими приложениями. Например: данные адресной книги используются несколькими приложениями и должны храниться у поставщика контента. Его преимущества: Единый доступ к данным.
  • Сервис: Решение для запуска программ в фоновом режиме в Android. Очень подходит для выполнения задач, не требующих взаимодействия с пользователем и требующих длительного запуска (при звонке висит QQ). ). Работа службы не зависит от какого-либо пользовательского интерфейса. Даже если программа переключена в фоновый режим или пользователь открывает другое приложение, служба все равно может работать нормально. Однако служба запускается не в виде независимого процесса, а. полагается на создание процесса приложения, в котором находится служба. Когда процесс приложения завершается, все службы, зависящие от этого процесса, также перестают работать (слушать музыку, а затем выйти из музыкальной программы).

2. Жизненный цикл деятельности?

Жизненный цикл — это различные состояния, которые проходит деятельность от начала до конца, переход из одного состояния в другое, из ничего в что-то и затем в ничто. Деятельность по существу имеет четыре состояния:

  • Выполняется (Активно/Выполняется): действие находится в активном состоянии. В это время действие находится на вершине стека, видно и может взаимодействовать с пользователем.
  • Приостановлено: когда действие теряет фокус или помещается в верхнюю часть стека новым не полноэкранным действием или прозрачным действием, действие преобразуется в состояние «Приостановлено». В этот момент он не будет уничтожен, но он потерял возможность взаимодействовать с пользователем. Вся информация о его статусе и переменные-члены все еще доступны. Система может повторно использовать его только при нехватке системной памяти.
  • Остановлено: когда действие полностью покрыто системой, оно перейдет в состояние «Остановлено» и больше не будет отображаться, но ресурсы не будут восстановлены.
  • Перезапуск системы (уничтожено). Когда действие перезапускается системой, оно находится в состоянии «Уничтожено».

Если действие находится в остановленном или приостановленном состоянии, оно будет завершено или прекращено, когда в системе не хватает памяти. В этой ненормальной ситуации система вызовет метод onSaveInstance(), чтобы сохранить информацию перед уничтожением или завершением. В то же время, когда действие перемещается на передний план, действие будет перезапущено, и метод onRestoreInstance() будет активирован. вызывается для загрузки сохраненной информации. Оставьте ее как есть.

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

3. Расскажите, пожалуйста, о некоторых инструментах, включенных в Android SDK?

Есть несколько инструментов:

  • ddms: Dalvik Debug Monitor Service — это служба мониторинга отладки Dalvik [виртуальной машины] в среде разработки Android.
  • обезьяна: инструмент командной строки в Android, который можно запускать в эмуляторе или на реальном устройстве. Он отправляет псевдослучайный поток пользовательских событий (например, ввод с клавиатуры, ввод с помощью сенсорного экрана, ввод с помощью жестов и т. д.) в систему для реализации стресс-тестирования разрабатываемого приложения.
  • uiautomator: UIAutomator — это тот, который поставляется с Eclipse для пользовательского интерфейса. Автоматизированное. тестированиеинструмент,Можно моделироватьAPPнажмите на、слайд、Ввод текста и другие операции.
  • монитор: такой жеuiautomator
  • adb: Полное имя ADB — Android Debug Bridge, который функционирует как мост отладки. Через ADB мы можем отлаживать программы Android с помощью DDMS в Eclipse, который является инструментом отладки.

4. Какие инструменты тестирования приложений вы знаете?

Ниже приведены наиболее часто используемые инструменты тестирования приложений. Проверьте соответствующий адрес инструмента.

Инструменты автоматического тестирования приложений:

  • Appium
  • Airtest
  • uiautomator2(python)

Инструменты тестирования стабильности приложения:

  • Monkey
  • MonkeyRunner
  • Maxim
  • UICrawler

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

  • GT
  • Perfdog
  • SoloPi

APPТест слабой сети&Захват пакетовинструмент:

  • QNET
  • Fiddler
  • Charles

Инструменты тестирования совместимости приложений:

  • TestIn
  • Тенсент Ютест
  • БайдуMTC
  • Али MQC

Инструменты тестирования безопасности приложений:

  • OWASP ZAP
  • Drozer
  • MobSF
  • QARK

5. Ввести холодный старт, теплый старт, горячий старт и запуск с первого экрана?

При запуске приложения произойдет несколько событий. Тестировщикам необходимо знать, есть ли проблема во всей ссылке и в какой ссылке есть проблема:

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

стандарт:

  • Холодный старт: занимает 5 секунд или даже больше;
  • Теплый старт: занимает 2 секунды или даже больше;
  • Горячий старт: занимает 1,5 секунды или даже больше;

Весь процесс запуска можно проанализировать с помощью инструмента adb, используя adb logcat для получения данных запуска или записи экрана, а также используя ffmpeg для разделения кадров для анализа.

Сначала определите переменную, которая заполняет используемое имя пакета.

Очистить данные кэша:

Остановите процесс:

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

  • -S означает остановку процесса приложения перед его запуском.
  • -W означает ожидание запуска соответствующего действия.

Получить данные:

Время приобретения следующее:

6. Расскажите о своем понимании холодного запуска?

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

Когда начинается холодный запуск, система последовательно выполнит три задачи для запуска приложения:

  • Загрузка и запуск приложений;
  • После запуска приложения сразу же создается пустое окно запуска;
  • Процесс создания приложения;

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

  • Создать объект приложения;
  • Запустить основной поток;
  • Создайте активность для стартовой страницы;
  • Загрузить просмотр;
  • Просмотр макета на экране;
  • Выполните первоначальный рисунок для отображения вида;

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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose