Что такое ООП и как оно применяется в тестировании?

«Что такое ООП и как оно применяется в тестировании?» — вопрос из категории ООП, который задают на 42% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ООП (Объектно-Ориентированное Программирование) — это парадигма, основанная на объектах, содержащих данные и методы. В автоматизации тестирования ООП используется для создания гибкого, поддерживаемого и переиспользуемого кода автотестов.

Как принципы ООП применяются в тестовых фреймворках:

  1. Инкапсуляция: Сокрытие внутренней логики страниц или компонентов. Например, в Page Object Model (POM) все локаторы и методы работы с веб-элементом инкапсулированы в классе страницы.

    public class LoginPage {
        private By usernameField = By.id("username"); // Локатор скрыт
    
        public void enterUsername(String user) { // Публичный интерфейс
            driver.findElement(usernameField).sendKeys(user);
        }
    }
  2. Наследование: Создание базовых классов для общих функций. Все классы страниц могут наследоваться от BasePage, где реализованы общие методы (ожидание элемента, логирование).

    public class BasePage {
        protected WebDriver driver;
        public void waitForElement(By locator) { ... }
    }
    public class HomePage extends BasePage { ... }
  3. Полиморфизм: Возможность использовать один интерфейс для разных типов. Например, универсальный метод click() может работать с разными типами элементов (кнопка, ссылка).

  4. Абстракция: Определение контрактов через абстрактные классы или интерфейсы. Это позволяет создавать разные реализации для, например, работы с разными базами данных в тестах.

Использование ООП в тестировании позволяет эффективно структурировать код, уменьшать дублирование и упрощать поддержку больших наборов автотестов.

Видео-ответы