Saltar al contenido principal

las mejores preguntas y respuestas de la entrevista sobre pruebas de automatización en Python

la mano tiende a la mano del cursor sobre el fondo azulla mano tiende a la mano del cursor sobre el fondo azul
Armin_Felahatpisheh.jpg
autorIngeniero de Software, EPAM Anywhere

Probar el software es uno de los aspectos más importantes de la ingeniería informática. Una aplicación que no se ha probado a fondo es propensa a muchos fallos y errores. Un ingeniero de automatización de control de calidad se asegura de que todos los sistemas funcionen como se espera de ellos, garantizando la calidad con herramientas de automatización y definiendo normas, procedimientos y métodos.

A continuación encontrará una lista de preguntas de entrevista sobre pruebas de automatización con Python que probablemente encontrará, junto con algunos ejemplos de respuestas.

Preguntas y respuestas de la entrevista de pruebas de automatización de Python sobre fundamentos

En primer lugar, se le pedirá que explique su experiencia en pruebas de automatización de software en general. A continuación, el entrevistador técnico comprobará tus conocimientos prácticos sobre los fundamentos del aseguramiento de la calidad del software y las herramientas de pruebas de automatización en Python.

¿Qué diferencia hay entre un plan de pruebas y una estrategia de pruebas?

Un plan de pruebas es un documento que define el enfoque, los recursos, el alcance, los resultados, los objetivos, la estimación, el calendario, etc. de las actividades de pruebas. Una estrategia de pruebas es un conjunto de principios o directrices que explican el diseño de las pruebas y la determinación de cómo deben realizarse.

¿Qué es una prueba de fallos y cómo se trabaja con ella?

Una prueba se considera "defectuosa" si no puede producir el mismo resultado cada vez que se ejecuta sin ningún cambio en el código bajo prueba o en la configuración de la prueba. Por ejemplo, supongamos que la prueba 1 depende de alguna configuración global. Ahora escribimos la Prueba 2 que cambia esta configuración global, y la Prueba 1 falla. En este caso, la prueba 1 es un ejemplo de prueba defectuosa.

encuentra tu trabajo ideal
Solo envíanos tu CV y nuestros reclutadores te contactarán con una opción a la medida
aplica ahora
icono de lupa

¿Cuándo se utilizan las fixtures?

Utilizamos fixtures en las pruebas para asegurarnos de que existe una configuración fija (o entorno) para las pruebas, de modo que puedan ejecutarse varias veces. Un buen ejemplo de fixture de pruebas es inicializar una base de datos con credenciales específicas para las pruebas.

¿Qué es parametrizar?

Parametrizar es ejecutar la misma prueba (la misma función de prueba) con múltiples parámetros (entradas) varias veces. Por ejemplo, quieres probar tu función 'mult' que toma 2 números y los multiplica. Usando la parametrización de la prueba, podemos introducir entradas como (1, 4), (-1, 0), ('string', 3), (True, 12), (None, -1), ({}, (1,)) en nuestra prueba para asegurarnos de que nuestra 'mult' puede manejar muchos casos extremos.

¿Qué son las pruebas paralelas?

Las pruebas paralelas, o paralelismo, consisten en ejecutar un conjunto de pruebas al mismo tiempo. Estos conjuntos de pruebas pueden tener configuraciones iguales o diferentes. El objetivo principal de las pruebas en paralelo es reducir el tiempo de ejecución.

Describir la arquitectura del TAF

TAF (Testing Software Automation Framework) es un sistema que determina directrices y principios para las pruebas de automatización de un producto. El principal uso de TAF es garantizar tiempos de ciclo de pruebas más rápidos y acelerar la CI.

¿Por qué necesitamos documentación de pruebas?

La documentación de las pruebas es un conjunto de artefactos que se preparan antes de realizarlas. Incluye la cobertura de las pruebas, la terminología, el proceso de ejecución y todas las actividades de prueba que deben llevarse a cabo. La documentación de las pruebas es importante porque nos indica qué parte de nuestro proyecto es crucial y cómo probarla. También ayuda a los equipos a mejorar, verificar, planificar, revisar y comprender mucho mejor las pruebas (y los procesos de prueba). Esto conduce a una comprensión clara de los objetivos del proyecto.

¿Cuáles son las bibliotecas de pruebas más populares de Python?

Algunas de las bibliotecas de Python más populares para realizar pruebas son Robot, pytest, Selenium y unittest.

¿Cuáles son las diferencias entre CI, CD y CT?

  • CI (integración continua): El proceso de integración continua del código en nuestra base de código.
  • CD (Entrega o Despliegue Continuo): La cadena automatizada de todo el lanzamiento del software. Por ejemplo, cuando alguien quiere desplegar en el entorno de desarrollo, este proceso garantiza que se superen las pruebas, se revise el código y se apruebe su despliegue, y el único paso que queda es desplegarlo.
  • CT (Pruebas continuas): Esto permite a los ingenieros realizar pruebas de despliegue y post-despliegue en algunos entornos (locales). También podemos decir que CT ejecuta pruebas después de cada commit.

La principal razón para implantar estos procesos es aumentar la productividad, la eficacia, la velocidad y la fiabilidad.

¿Qué son las QGs?

Las GQs (Quality Gates) pueden definirse como un hito de un proyecto que incluye varios criterios importantes. Si no se cumplen, el proyecto no puede pasar a la etapa siguiente.

¿Qué es REST y cómo se prueba una API?

REST es el acrónimo de Representational State Transfer, y es un estilo arquitectónico. Existen diferentes paquetes de Python que puedes utilizar para probar una API en Python, como pytest, VCR.py, etc.

¿Qué es el modelo OSI y sus capas?

El modelo de Interconexión de Sistemas Abiertos (OSI) contiene siete capas que los ordenadores utilizan para comunicarse a través de una red:

  • Capa física es responsable de la conexión física real entre los dispositivos y contiene información en forma de bits.
  • Capa de enlace de datos se encarga de enviar mensajes de un nodo de la red a otro.
  • Capa de red es responsable de la transmisión de datos desde el host de red actual a otro host (en una red diferente). Además, esta capa se encarga del encaminamiento de los paquetes.
  • Capa de transporte recibe los datos transferidos en la capa de sesión, los divide en "segmentos" y los entrega a la capa de red.
  • Capa de sesión establece canales de comunicación entre dispositivos. También se encarga de la autenticación y la seguridad.
  • Capa de presentación prepara (manipula) los datos para la capa de aplicación.
  • Capa de aplicación es utilizado por el software del usuario final.

¿Cuál es la diferencia entre TCP y UDP?

TCP (Transmission Control Protocol) es un protocolo orientado a la conexión que establece una conexión para transferir datos y debe cerrarse una vez finalizada la transmisión.

UDP (User Datagram Protocol) es un protocolo sin conexión, lo que significa que no requiere establecer, mantener o terminar una conexión, y por lo tanto es mucho más rápido que TCP.

Preguntas de la entrevista de automatización de pruebas de Python para ingenieros experimentados

Si has solicitado un puesto de ingeniero de pruebas de automatización de Python de nivel medio o superior, entonces te harán preguntas más profundas en la entrevista sobre Python para pruebas de automatización, así como algunas de comportamiento.

Definir generadores, gestores de contexto, decoradores y herencia múltiple en Python Core

  • Funciones del generador son aquellas que tienen una o más sentencias 'yield' que devuelven un iterador (sobre el que podemos iterar).
  • Gestor de contexto se utiliza para configurar recursos, como abrir una conexión o un archivo. Se encarga automáticamente de la limpieza (por ejemplo, cerrar la conexión o el archivo) cuando terminamos.
  • Decorador es una función utilizada para añadir nuevas funcionalidades al envolver una clase o una función sin tener que cambiar su estructura.
  • Herencia múltiple es cuando una clase puede heredar de más de una clase.

¿Cuál es la diferencia entre coroutine y generador?

Las coroutines son como los generadores en el sentido de que su ejecución puede iniciarse, suspenderse o reiniciarse. La principal diferencia entre una corrutina y un generador es que los generadores generan valores, mientras que las corrutinas los consumen.

¿Para qué utiliza Appium?

Appium es uno de los frameworks de código abierto más populares que podemos utilizar para realizar pruebas móviles automatizadas. Funciona con aplicaciones iOS, Android y Windows. La idea principal detrás de Appium es que no necesitamos incluir un SDK o recompilar la aplicación para probar nuestras aplicaciones nativas.

¿Qué son las normas PEP?

PEP (Python Enhancement Proposals) son convenciones para escribir código en Python, por ejemplo:

  • PEP 8: Se trata de una guía de estilo para el código Python, como el uso de 4 espacios por nivel de sangría.
  • PEP 257: Este PEP documenta la semántica y las convenciones relativas a los docstrings de Python.
  • PEP 484: Introduce la tipificación estática en Python, es decir:

¿Cuáles son algunos de los principios y patrones clave de la ingeniería del software?

Algunos de los principios más importantes de la ingeniería del software son:

  • DRY (Don't Repeat Yourself) pretende disminuir la repetición de códigos.
  • YAGNI (You Aren't Gonna Need It) afirma que debemos añadir funciones cuando sean necesarias.

También puede proporcionar definiciones para los siguientes grupos de patrones arquitectónicos:

  • Patrones de creación proporcionan diferentes mecanismos para crear objetos mientras abstraen la implementación interna de la clase.
  • Patrones de comportamiento identificar los patrones de comunicación comunes entre los objetos para que puedan comunicarse fácilmente entre sí sin estar muy acoplados.
  • Patrones estructurales explicar cómo combinar las clases y los objetos en estructuras más amplias, flexibles y eficaces para alcanzar múltiples objetivos.

¿Cómo suele estimar las tareas?

Al estimar las tareas, debemos tener en cuenta factores como los pasos necesarios, las dependencias de los pasos, el número de personas que deben participar, los riesgos del proyecto, la calidad de la arquitectura, etc. Por ejemplo, Fibonacci Agile Estimation es una forma de asignar puntos a las historias en el sistema Agile.

Estás sobrecargado de tareas y detectas un fallo crítico. ¿Qué debe hacer?

Esta es una de las típicas preguntas de comportamiento de la entrevista de Python para ingenieros de automatización de pruebas que mide tus estrategias profesionales.

Mi respuesta sería la siguiente: en caso de que el fallo sea crítico, prefiero resolverlo inmediatamente. Por ejemplo, si hay un fallo en el código de un sistema de facturación que hace que fallen todas las transacciones, ese fallo debe resolverse lo antes posible. Pero si el fallo no es tan crucial (como un cambio en la interfaz de usuario de una página que no visita mucha gente), entonces informo del fallo.

Imagina que estás en un nuevo proyecto y te piden que configures la automatización de las pruebas desde cero. ¿Cómo lo haría?

Aplicar los enfoques existentes es una buena idea. Dependiendo del lenguaje de desarrollo principal, la estrategia de despliegue, los objetivos del proyecto, el tiempo, la capacidad del equipo y el estilo arquitectónico, podemos optar por enfoques como Monolith, Layered, Microservices, Event-Driven, etc. Las capas pueden ser capa de casos de prueba, capa de dominio y sistema bajo prueba. Las pruebas unitarias pueden crearse al principio, y luego el resto se creará de acuerdo con la pirámide de pruebas.

Explore los puestos de automatización de pruebas en EPAM Anywhere

Ahora que estás preparado para una entrevista técnica con estas preguntas de entrevista de automatización de control de calidad de Python, explora nuestras ofertas de empleo y solicita el que más te llame la atención. ¡Esperamos que te unas a nosotros en Anywhere!

Armin_Felahatpisheh.jpg
autorIngeniero de Software, EPAM Anywhere