A tárgyorientált programozás (OOP) egy megközelítés a szoftverfejlesztésben, ahol a kód objektumok formájában van szervezve
Encapsuláció
Az encapsuláció az adatok és az azokkal dolgozó módszerek egyesítése ugyanabban az osztályban, valamint a közvetlen hozzáférés korlátozása az objektum belső állapotához.
Egyszerűen: az objektum kezeli saját adatait, a külső kód pedig módszereken keresztül lép kapcsolatba vele.
Absztrakció
Az absztrakció csak az objektum fontos jellemzőinek kiválasztását és a megvalósítás részleteinek elrejtését jelenti.
Egyszerűen: a felhasználó azt akarja tudni, mit csinál az objektum, nem pedig, hogyan.
Polimorfizmus
A polimorfizmus az, hogy különböző megvalósítású objektumok ugyanazt a felületet használhatják. A tesztekben ez segít univerzális kód írásában, amely különböző adattípusokkal vagy osztályokkal működik.
Példa Pythonban:
class Animal:
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Vau!"
class Cat(Animal):
def make_sound(self):
return "Miau!"
def animal_sound(animal: Animal):
print(animal.make_sound())
dog = Dog()
cat = Cat()
animal_sound(dog) # Vau!
animal_sound(cat) # Miau!
Automatizált tesztekben a polimorfizmus hasznos a következőkben:
- Általános ellenőrzési módszerek létrehozása
- Különböző tesztstratégiák megvalósítása egy interfészen keresztül
- Különböző API/UI verziók támogatása anélkül, hogy a teszteket módosítanánk
Öröklődés
Az öröklődés egy olyan mechanizmus, amely lehetővé teszi, hogy egy új osztály automatikusan használja egy meglévő osztályt, örökölve annak tulajdonságait és módszereit.
Egyszerűen: az új osztály újrahasznosítja az ősosztály kódját, és szükség szerint bővíti azt.