Dans quel but l'ORM est-il utilisé dans les tests et dans quels cas vaut-il mieux ne pas l'utiliser?
QA / QA Automation
De quoi se compose une requête HTTP?
Qu'est-ce qu'une matrice de traçabilité et comment est-elle formée?
Qu'est-ce que le cache, qu'est-ce que les cookies?
API REST : comment créer un service simulé ? Donnez des exemples d'outils.
La Programmation Orientée Objet (POO) est une approche du développement logiciel où le code est organisé sous forme d’objets Encapsulation L’encapsulation consiste à regrouper des données et des méthodes qui manipulent ces données au sein d’une même classe, ainsi qu’à limiter l’accès direct à l’état interne de l’objet. En termes simples : l’objet gère ses propres données, et le code externe interagit avec lui via des méthodes. Abstraction L’abstraction consiste à ne retenir que les caractéristiques importantes de l’objet et à cacher les détails de sa mise en œuvre. En termes simples : l’utilisateur se soucie de ce que fait l’objet, pas de comment il le fait. Polymorphisme Le polymorphisme est la capacité d’objets avec des implémentations différentes à utiliser une même interface. En test, cela permet d’écrire un code universel qui fonctionne avec différents types de données ou classes. Exemple en Python : class Animal: def make_sound(self): pass class Dog(Animal): def make_sound(self): return "Wouf!" class Cat(Animal): def make_sound(self): return "Miaou!" def animal_sound(animal: Animal): print(animal.make_sound()) dog = Dog() cat = Cat() animal_sound(dog) # Wouf! animal_sound(cat) # Miaou! En tests automatisés, le polymorphisme est utile pour : - Créer des méthodes de vérification universelles - Implémenter différentes stratégies de test via une même interface - Maintenir différentes versions d’API/UI sans modifier les tests Héritage L’héritage est un mécanisme qui permet à une nouvelle classe d’utiliser automatiquement une classe existante, en héritant ses propriétés et méthodes. En termes simples : la nouvelle classe réutilise le code de la classe parente et l’étend si nécessaire. Git 1. Systèmes de contrôle de version. Local, centralisé, distribué. 2. Concepts clés. Dépôt, index, commit, pointeurs, branche, copie de travail. 3. Travailler avec un dépôt. Commandes : init, clone, status 4. Créer un commit. Commandes : add, commit. 5. Créer, voir, changer de branche, supprimer. Commandes : branch, checkout, log, diff. 6. Annuler des modifications. Commandes : restore, rm, checkout, revert. 7. Fusionner des changements entre branches. Commandes : merge, cherry-pick, rebase. 8. Travailler avec un dépôt distant. Commandes : fetch, pull, push. 9. Travailler avec GitHub, forks et Pull Requests.
À quoi servent ORDER BY et GROUP BY en SQL ? Quelles fonctions d'agrégation avez-vous utilisées dans votre travail ?
Comment résoudre le problème de course des messages dans Kafka?
Quelle information est transmise dans les en-têtes de la requête HTTP?
Quelle est la différence entre les méthodes PUT et PATCH et quelles sont leurs particularités de fonctionnement?
Parlez du cycle de vie d'un bug. On peut par les statuts.
Qu'est-ce que le traçage des messages et comment cela aide-t-il à localiser un défaut dans une architecture de microservices?
Quelle est la différence entre un itérateur et un générateur?
Dans quels cas est-il judicieux d'utiliser l'asynchronie et dans quels cas ne pas l'utiliser ? Comment implémentez-vous l'asynchronie dans les tests ?
Comment implémenter une soft assert dans pytest pour plusieurs vérifications dans un test, afin que le test ne échoue pas à la première erreur, mais exécute toutes les vérifications?
Quelle est la différence entre les tests Smoke, Sanity et Regression?
Comment intercepter et modifier la réponse de l'API dans Playwright pour tester l'interface utilisateur?