¿De qué consta una solicitud HTTP?
QA / QA Automation
¿Qué es una matriz de trazabilidad y cómo se forma?
¿Qué es la caché, qué son las cookies?
API REST: ¿cómo crear un servicio simulado? Proporcione ejemplos de herramientas.
¿Con qué propósito se utiliza ORM en las pruebas y en qué casos es mejor no usarlo?
La Programación Orientada a Objetos (POO) es un enfoque para desarrollar programas en el que el código se organiza en forma de objetos Encapsulación La encapsulación es la unión de datos y métodos que trabajan con esos datos dentro de una misma clase, así como la restricción del acceso directo al estado interno del objeto. En palabras simples: el objeto gestiona sus propios datos, y el código externo interactúa con él a través de métodos. Abstracción La abstracción es la selección de solo las características importantes del objeto y el ocultamiento de los detalles de su implementación. En palabras simples: al usuario le importa qué hace el objeto, no cómo exactamente lo hace. Polimorfismo El polimorfismo es la capacidad de objetos con diferentes implementaciones de usar una misma interfaz. En las pruebas, esto ayuda a escribir código universal que funciona con diferentes tipos de datos o clases. Ejemplo en Python: class Animal: def make_sound(self): pass class Dog(Animal): def make_sound(self): return "¡Guau!" 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) # ¡Guau! animal_sound(cat) # ¡Miau! En las pruebas automatizadas, el polimorfismo es útil para: - Crear métodos de verificación universales - Implementar diferentes estrategias de prueba a través de una misma interfaz - Mantener diferentes versiones de API/UI sin cambiar las pruebas Herencia La herencia es un mecanismo que permite a una nueva clase usar automáticamente una clase existente, heredando sus propiedades y métodos. En palabras simples: la nueva clase reutiliza el código de la clase padre y, si es necesario, lo amplía. Git 1. Sistemas de control de versiones. Local, centralizado, distribuido. 2. Conceptos básicos. Repositorio, índice, commit, punteros, rama, copia de trabajo. 3. Trabajar con un repositorio. Comandos: init, clone, status 4. Crear un commit. Comandos: add, commit. 5. Crear, ver, cambiar entre ramas, eliminar. Comandos: branch, checkout, log, diff. 6. Deshacer cambios. Comandos: restore, rm, checkout, revert. 7. Fusionar cambios entre ramas. Comandos: merge, cherry-pick, rebase. 8. Trabajar con un repositorio remoto. Comandos: fetch, pull, push. 9. Trabajar con GitHub, forks y Pull Requests.
¿Para qué se utilizan ORDER BY y GROUP BY en SQL? ¿Qué funciones de agregación utilizaste en tu trabajo?
¿Cuál es la diferencia entre los métodos PUT y PATCH y cuáles son sus características de funcionamiento?
¿Cómo se resuelve el problema de la carrera de mensajes en Kafka?
Cuente sobre el ciclo de vida de un error. Se puede por los estados.
¿Qué información se transmite en los encabezados de la solicitud HTTP?
¿Qué es el rastreo de mensajes y cómo ayuda a localizar un defecto en una arquitectura de microservicios?
¿En qué casos tiene sentido usar asincronía y en cuáles no? ¿Cómo implementa la asincronía en las pruebas?
¿Cómo implementar una aserción suave en pytest para varias verificaciones en una prueba, de modo que la prueba no falle en el primer error, sino que realice todas las verificaciones?
¿Cuál es la diferencia entre un iterador y un generador?
¿Cuál es la diferencia entre las pruebas de Smoke, Sanity y Regression?
¿Cómo interceptar y modificar la respuesta de la API en Playwright para probar la interfaz de usuario?