Skip to content

Набор тестов для проверки мобильного приложения калькулятора.

Notifications You must be signed in to change notification settings

antbessonov/Calculator

Repository files navigation

Тестирование мобильного приложения калькулятора

Набор автотестов для тестирования мобильного приложения калькулятора и багрепорты.

Актуальный код находиться в ветке develop

Стек: Kotlin, Appium, JUnit5

Автоматизация

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

Общая структура

Класс AppiumConfig

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

CalculatorPage описывает элементы интерфейса приложения калькулятора и основные методы взаимодействия с ними.

Основные компоненты:

  • firstNumberInput, secondNumberInput, plusButton и др.: Объекты MobileElement, представляющие элементы интерфейса калькулятора.
  • enterFirstNumber(), enterSecondNumber(): Методы для ввода чисел.
  • sum(), subtract(), multiply(), divide(): Методы для выполнения арифметических операций.
  • reset(): Метод для сброса введённых данных.

Enum ArithmeticOperation

ArithmeticOperation представляет собой перечисление, которое содержит типы арифметических операций (сложение, вычитание, умножение, деление).

Класс TestUtils

TestUtils содержит вспомогательные методы для выполнения и валидации арифметических тестов.

Основные методы:

  • setupDriver(): Метод для инициализации и настройки драйвера Appium.
  • tearDownDriver(driver: AppiumDriver<MobileElement>: Метод для корректного завершения работы и освобождения ресурсов, связанных с драйвером Appium.
  • performArithmeticTest(): Метод для выполнения арифметического теста и проверки результата.
  • createErrorMessageForArithmeticTest(): Генерирует сообщение об ошибке для арифметических тестов.

Класс CalculatorUITests

CalculatorUITests сосредоточен на тестировании элементов пользовательского интерфейса калькулятора, включая проверку наличия и начальных значений UI-компонентов.

Класс CalculatorBasicArithmeticTests

CalculatorBasicArithmeticTests сосредоточен на базовом функциональном тестировании арифметических операций калькулятора, включая сложение, вычитание, умножение и деление с обычными числами.

Класс CalculatorNegativeArithmeticTests

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

Основные методы:

  • Тестирование с граничными значениями. Проверяют поведение приложения на границах допустимых значений. Примеры: testBoundarySumCases(), testBoundarySubtractCases(), testBoundaryMultiplyCases(), testBoundaryDivideCases().
  • Тестирование с некорректными входными данными. Проверяют, как приложение реагирует на неправильный или невалидный ввод. Примеры: testNegativeSumTestCases(), testNegativeSubtractCases(), testNegativeMultiplyCases(), testNegativeDivideCases().
  • Тестирование в специальных условиях. Проверяют поведение приложения в специфических ситуациях, например, с дробями или отрицательными числами. Примеры: testSpecialSumTestCases(), testSpecialSubtractTestCases(), testSpecialMultiplyTestCases(), testSpecialDivideTestCases().

Класс CalculatorResetFunctionalityTests

CalculatorResetFunctionalityTests проверяет работу функционала сброса в приложении.

Класс CalculatorStatePersistenceTests

CalculatorStatePersistenceTests проверяет, сохраняется ли состояние и результаты приложения при различных изменениях, например, при перевороте экрана или сворачивании приложения

Класс CalculatorTestData

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. Она обеспечивает быстрый доступ к подробному описанию каждого бага.

image

Шаги для использования таблицы

Просмотр списка багов

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

Получение детальной информации

  • Наведите курсор мыши на название бага в таблице.
  • При наведении рядом с названием бага появится кнопка OPEN.
  • Кликните на кнопку OPEN, чтобы перейти к подробному описанию бага.

Чтение подробного описания бага

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

Закрытие подробного описания

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

About

Набор тестов для проверки мобильного приложения калькулятора.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages