Набор автотестов для тестирования мобильного приложения калькулятора и багрепорты.
Актуальный код находиться в ветке
develop
Стек: Kotlin, Appium, JUnit5
Тесты охватывают основные арифметические операции, включая сложение, вычитание, умножение и деление, а также тестирование элементов пользовательского интерфейса, функциональности сброса и сохранения состояния при изменении ориентации экрана и сворачивании приложения.
AppiumConfig
содержит конфигурацию для подключения к Appium серверу и создания capabilities для драйвера Appium.
Основные компоненты:
URL
: URL Appium сервера.APP_PATH
: Путь к APK приложения для тестирования.PLATFORM_NAME
: Платформа устройства (например, Android).DEVICE_NAME
: Название устройства для тестирования.AUTOMATION_NAME
: Используемый фреймворк автоматизации (например, UiAutomator2 для Android).LANGUAGE
: Предпочтительный язык для тестирования приложения.LOCALE
: Региональные настройки (локаль), которые будут использоваться на тестируемом устройстве.
createCapabilities()
: Создаёт объект DesiredCapabilities, который содержит набор параметров для Appium драйвера.
CalculatorPage
описывает элементы интерфейса приложения калькулятора и основные методы взаимодействия с ними.
Основные компоненты:
firstNumberInput
,secondNumberInput
,plusButton
и др.: ОбъектыMobileElement
, представляющие элементы интерфейса калькулятора.enterFirstNumber()
,enterSecondNumber()
: Методы для ввода чисел.sum()
,subtract()
,multiply()
,divide()
: Методы для выполнения арифметических операций.reset()
: Метод для сброса введённых данных.
ArithmeticOperation
представляет собой перечисление, которое содержит типы арифметических операций (сложение, вычитание, умножение, деление).
TestUtils
содержит вспомогательные методы для выполнения и валидации арифметических тестов.
Основные методы:
setupDriver()
: Метод для инициализации и настройки драйвера Appium.tearDownDriver(driver: AppiumDriver<MobileElement>
: Метод для корректного завершения работы и освобождения ресурсов, связанных с драйвером Appium.performArithmeticTest()
: Метод для выполнения арифметического теста и проверки результата.createErrorMessageForArithmeticTest()
: Генерирует сообщение об ошибке для арифметических тестов.
CalculatorUITests
сосредоточен на тестировании элементов пользовательского интерфейса калькулятора, включая проверку наличия и начальных значений UI-компонентов.
CalculatorBasicArithmeticTests
сосредоточен на базовом функциональном тестировании арифметических операций калькулятора, включая сложение, вычитание, умножение и деление с обычными числами.
CalculatorNegativeArithmeticTests
фокусируется на тестировании арифметических операций с граничными значениями, некорректными входными данными и в специальных условиях (например, дроби и отрицательные числа).
Основные методы:
- Тестирование с граничными значениями. Проверяют поведение приложения на границах допустимых значений. Примеры:
testBoundarySumCases()
,testBoundarySubtractCases()
,testBoundaryMultiplyCases()
,testBoundaryDivideCases()
. - Тестирование с некорректными входными данными. Проверяют, как приложение реагирует на неправильный или невалидный ввод. Примеры:
testNegativeSumTestCases()
,testNegativeSubtractCases()
,testNegativeMultiplyCases()
,testNegativeDivideCases()
. - Тестирование в специальных условиях. Проверяют поведение приложения в специфических ситуациях, например, с дробями или отрицательными числами. Примеры:
testSpecialSumTestCases()
,testSpecialSubtractTestCases()
,testSpecialMultiplyTestCases()
,testSpecialDivideTestCases()
.
CalculatorResetFunctionalityTests
проверяет работу функционала сброса в приложении.
CalculatorStatePersistenceTests
проверяет, сохраняется ли состояние и результаты приложения при различных изменениях, например, при перевороте экрана или сворачивании приложения
CalculatorTestData
предоставляет тестовые данные для параметризованных тестов.
provideBasicSumTestCases()
, provideSpecialSumTestCases()
и др.: Методы, возвращающие наборы данных для различных типов арифметических тестов.
Краткая инструкция по запуску тестового набора для мобильного приложения калькулятора включает следующие шаги.
- Установка и настройка Appium. Убедитесь, что Appium установлен и настроен на вашем компьютере. Это включает в себя установку Node.js и самого Appium.
- Настройка Android SDK/Emulator. Для тестирования мобильного приложения на Android, необходимо иметь установленный и настроенный Android SDK с эмулятором.
- Установка Java и Kotlin. Убедитесь, что у вас установлены Java и Kotlin, так как тесты написаны на Kotlin.
- IDE для Разработки. Рекомендуется использовать IntelliJ IDEA для открытия и запуска проекта.
- Запустите Appium Server.
- Откройте ваш проект в IntelliJ.
- Запустите Android Emulator, на котором будет выполняться тестирование.
- Перейдите к
AppiumConfig
, который содержит конфигурацию для Appium. Убедитесь, что URL и capabilities для Appium Server настроены правильно. - В вашей IDE, найдите файл, например,
CalculatorBasicArithmeticTests
. Щелкните правой кнопкой мыши по файлу и выберите Run CalculatorBasicArithmeticTests для запуска всех тестов. Для запуска отдельного теста щелкните правой кнопкой мыши по названию теста и выберите Run. - После выполнения тестов проверьте результаты в окне вывода вашей IDE.
Для эффективного запуска и управления тестами, разделенными на разные классы,можно воспользоваться следующим алгоритмом:
- Сначала запускайте тесты, которые менее вероятно приведут к сбоям, например, CalculatorUITests.
- Затем можно перейти к основным функциональным тестам, таким как CalculatorBasicArithmeticTests и CalculatorNegativeArithmeticTests.
- После этого следует проверить CalculatorResetFunctionalityTests.
- Наконец, CalculatorStatePersistenceTests должны быть запущены, так как они тестируют поведение приложения при изменениях состояния.
Таблица с багами, выявленными в ходе тестирования мобильного приложения калькулятора находиться в Notion. Она обеспечивает быстрый доступ к подробному описанию каждого бага.
Откройте таблицу, чтобы увидеть перечень обнаруженных багов с кратким описанием каждого из них.
- Наведите курсор мыши на название бага в таблице.
- При наведении рядом с названием бага появится кнопка OPEN.
- Кликните на кнопку OPEN, чтобы перейти к подробному описанию бага.
В открывшемся подробном описании бага вы найдете детальную информацию, включая шаги для воспроизведения, фактический результат, ожидаемый результат, и скриншоты (если доступны).
После ознакомления с деталями бага закройте окно описания, чтобы вернуться к общему списку.