ОПП (Объект-ориентированное программирование) — это подход к разработке программ, при котором код организуется в виде объектов
Инкапсуляция
Инкапсуляция — это объединение данных и методов, работающих с этими данными, внутри одного класса, а также ограничение прямого доступа к внутреннему состоянию объекта.
Простыми словами: объект сам управляет своими данными, а внешний код взаимодействует с ним через методы.
Абстракция
Абстракция — это выделение только важных характеристик объекта и сокрытие деталей его реализации.
Простыми словами: пользователю важно что делает объект, а не как именно он это делает.
Полиморфизм
Полиморфизм — это возможность объектов с разной реализацией использовать один интерфейс. В тестировании это помогает писать универсальный код, работающий с разными типами данных или классами.
Пример в Python:
class Animal:
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Woof!"
class Cat(Animal):
def make_sound(self):
return "Meow!"
def animal_sound(animal: Animal):
print(animal.make_sound())
dog = Dog()
cat = Cat()
animal_sound(dog) # Woof!
animal_sound(cat) # Meow!
В автотестах полиморфизм полезен для:
- Создания универсальных методов проверки
- Реализации разных стратегий тестирования через один интерфейс
- Поддержки разных версий API/UI без изменения тестов
Наследственность
Наследование — это механизм, позволяющий новому классу использовать существующего автоматически получая его свойства и методы.
Простыми словами: новый класс переиспользует код родительского класса и при необходимости расширяет его.
Git
1. Системы контроля версий. Локальная, централизованная, распределенная.
2. Основные понятия. Репозиторий, индекс, коммит, указатели, ветка, рабочая копия.
3. Работа с репозиторием. Команды: init, clone, status
4. Создание коммита. Команды: add, commit.
5. Создание, просмотр, переключение между ветками, удаление. Команды: branch, checkout, log, diff.
6. Отмена изменений. Команды: restore, rm, checkout, revert.
7. Слияние изменений между ветками. Команды: merge, cherry-pick, rebase.
8. Работа с удалённым репозиторием. Команды: fetch, pull, push.
9. Работа с GitHub, форки и Pull Requests.