Ответ 1
Некоторые ответы на ваши вопросы:
-
Авто и ручное: после того, как были разработаны схемы разработки /dev, автоматические тесты должны быть частью доставки кода перед выпуском. Хороший триггер здесь просто включает тестирование пользовательского интерфейса в определении дела на истории, прежде чем они будут отправлены. Для Android это может быть так же просто, как некоторые тесты Espresso, которые охватывают новые функции.
-
Проверка уровня MVP... unit test ваши ведущие и пользовательский интерфейс проверяют ваши взгляды. который охватывает почти все в моделях, которые не работают, потому что изменения модели редко выполняются в изоляции этих двух слоев. высокий уровень охвата в презентаторе помогает сбалансировать количество тестов пользовательского интерфейса. см. эту статью для углубленного руководства.
-
бизнес-логика: по крайней мере, ВСЕ задачи на критических путях, которые пользователи предпринимают для достижения ключевых целей (т.е. ваш поток доходов, базовое принятие). Так что да, это включает в себя функции регистрации, входа и пароля... но может не охватывать все настройки/настройки и их эффекты.
-
тип тестирования: каждый тип тестирует разные уровни/аспекты вашего приложения, поэтому спросите себя, "какие детали в слоях моего приложения должны меня волновать"?
- предназначен для базовой проверки кода, так что да, всегда. это просто базовая эффективность dev. высокий охват кода помогает вам быстро ловить ошибки. Интеграция
- : да, и зависит от того, насколько сложно ваше приложение, но тестирование приложения с зависимостями/без зависимостей помогает изолировать тех, кто виноват, когда тест не удался.
- функциональные тесты (тесты UI): да, простые взаимодействия или полный рабочий процесс, но это о том, как ваши пользователи работают с вашим приложением. некоторые функции приложения не могут быть протестированы без прохождения ряда других шагов. опять же, согласовываться с фактическим потреблением и ожиданиями бизнеса. сопоставьте свой объем работы с реальностью, показатели использования, влияние на доход и т.д.
- производительность: это сложно, и есть разные школы мысли. мы видим, что выполнение "проверок" на этом пути необходимо, но полные циклы тестирования производительности часто препятствуют развитию, если в команде /org нет высокой степени зрелости и процесса.
- регрессия: не оставляйте регрессию до огромной задачи до конца! меньшие наборы регрессии, информированные об изменениях, которые вы внесли, помогают уменьшить количество дефектов, обнаруженных при повторном тестировании в конце цикла. ранее означает меньшее, и не забывайте, что мы имеем дело с очень фрагментированной экосистемой Android, поэтому в регрессионную стратегию необходимо включить несколько устройств/платформ/условий.
-
tools: вы довольно много прибивали текущую инструментальную цепочку. для тестирования Android UI, Espresso/Dagger/mockito - огромная победа. держите эти типы тестов небольшими и целенаправленными. для сквозного тестирования Appium по-прежнему является вашим лучшим другом, но есть вещи, которые даже он не может сделать (например, визуальная проверка и определенные всплывающие окна), которые вам нужно искать за их пределами для автоматизации.
Кроме того, хотя я полностью понимаю ваше утверждение "не может быть проверено автоматически, потому что по какой-то причине", я думаю, что большой красный флаг и детали имеют большое значение. Выбор автоматического и ручного должен быть бизнес-решением о том, как достичь целей скорости, а не технических ограничений и недостатков. Я все время слышу от клиентов, пока они не осознают, что правильная технология позволяет им достичь уровня автоматизации, который им подходит.
В этом году мне помогли два исследования, которые, я думаю, помогут в этом разговоре:
Надеюсь, что это и мои исследования выше помогут вашей работе.