În ce scop este utilizat ORM în teste și în ce cazuri este mai bine să nu-l folosiți?
QA / QA Automation
Din ce este formată o cerere HTTP?
Ce este o matrice de urmărire și cum se formează?
Ce este cache-ul, ce sunt cookie-urile?
API REST: cum se creează un serviciu mock? Oferiți exemple de instrumente.
Programarea Orientată pe Obiecte (POO) este o abordare pentru dezvoltarea de programe în care codul este organizat sub formă de obiecte Încapsulare Încapsularea este unirea datelor și a metodelor care lucrează cu aceste date în cadrul unei clase, precum și restricționarea accesului direct la starea internă a obiectului. Pe scurt: obiectul își gestionează propriile date, iar codul extern interacționează cu el prin metode. Abstracție Abstracția constă în evidențierea doar a caracteristicilor importante ale obiectului și ascunderea detaliilor implementării sale. Pe scurt: utilizatorul este interesat de ceea ce face obiectul, nu de modul în care o face. Polimorfism Polimorfismul este capacitatea obiectelor cu implementări diferite de a folosi aceeași interfață. În teste, acest lucru ajută la scrierea unui cod universal care funcționează cu diferite tipuri de date sau clase. Exemplu în Python: class Animal: def make_sound(self): pass class Dog(Animal): def make_sound(self): return "Ham!" 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) # Ham! animal_sound(cat) # Miau! În testele automate, polimorfismul este util pentru: - Crearea de metode de verificare universale - Implementarea diferitelor strategii de testare printr-o singură interfață - Susținerea diferitelor versiuni API/UI fără a modifica testele Moștenire Moștenirea este un mecanism care permite unei noi clase să utilizeze automat o clasă existentă, moștenindu-i proprietățile și metodele. Pe scurt: noua clasă reutilizează codul clasei părinte și îl extinde dacă este necesar. Git 1. Sisteme de control al versiunilor. Local, centralizat, distribuit. 2. Noțiuni de bază. Repozitoriu, index, commit, pointeri, ramură, copie de lucru. 3. Lucrul cu repository-ul. Comenzi: init, clone, status 4. Crearea unui commit. Comenzi: add, commit. 5. Crearea, vizualizarea, schimbarea între ramuri, ștergerea. Comenzi: branch, checkout, log, diff. 6. Anularea modificărilor. Comenzi: restore, rm, checkout, revert. 7. Îmbinarea modificărilor între ramuri. Comenzi: merge, cherry-pick, rebase. 8. Lucrul cu repository-ul remote. Comenzi: fetch, pull, push. 9. Lucrul cu GitHub, fork-uri și Pull Requests.
Pentru ce se folosesc ORDER BY și GROUP BY în SQL? Ce funcții de agregare ai folosit în muncă?
Cum se rezolvă problema cursei mesajelor în Kafka?
Ce informații sunt transmise în anteturile cererii HTTP?
Care este diferența dintre metodele PUT și PATCH și care sunt caracteristicile lor de funcționare?
Puteți să ne vorbiți despre ciclul de viață al unui bug. Se pot folosi stările.
Ce este urmărirea mesajelor și cum ajută la localizarea unui defect într-o arhitectură de microservicii?
Care este diferența dintre un iterator și un generator?
În ce cazuri are sens să folosești asincronia și în care nu? Cum implementezi asincronia în teste?
Cum se implementează un soft assert în pytest pentru mai multe verificări într-un test, astfel încât testul să nu eșueze la prima eroare, ci să execute toate verificările?
Care este diferența dintre testele Smoke, Sanity și Regression?
Cum să interceptați și să modificați răspunsul API în Playwright pentru testarea UI-ului?