Un sleep fijo pausa durante una duración concreta sin mirar el estado, lo que es lento y poco fiable a la vez. Una espera implícita fija un timeout global de sondeo que se aplica a cada búsqueda de elemento. Una espera explícita sondea una condición concreta sobre un elemento concreto, como que sea clicable o visible. Las esperas explícitas son la opción por defecto correcta, y mezclar implícitas con explícitas produce timeouts impredecibles.
Por qué lo preguntan los entrevistadores
La estrategia de espera es la mayor fuente de tests de interfaz inestables, así que es una comprobación de competencia práctica. El entrevistador quiere que enuncies la distinción con claridad y que rechaces con firmeza los sleeps fijos. Saber que combinar esperas implícitas y explícitas provoca timeouts que se acumulan, y que los frameworks más nuevos esperan solos a que el elemento sea accionable, te marca como alguien al día y no autodidacta con tutoriales viejos.
Cómo estructurar tu respuesta
- Define las tres con precisión y brevedad.
- Explica por qué un sleep fijo es lento y poco fiable a la vez.
- Presenta las esperas explícitas como opción por defecto y da un ejemplo de condición.
- Advierte de mezclar esperas implícitas y explícitas.
- Señala que los frameworks más nuevos esperan solos a que el elemento sea accionable.
Ejemplo de respuesta
Un sleep fijo simplemente bloquea durante un número de segundos. Es la peor opción por partida doble: si es corto, queda inestable, y si es largo, has añadido ese tiempo a cada ejecución para siempre. Trato cualquier sleep en un test como un defecto, salvo que lleve un comentario explicando por qué. Una espera implícita es un ajuste global que le dice al driver que siga sondeando cuando no encuentre un elemento. Es cómoda pero tosca, porque se aplica a todo y hace que un elemento realmente ausente tarde el timeout completo en fallar, lo que ralentiza todos tus casos negativos. Una espera explícita apunta a un elemento y una condición, del tipo espera hasta que este botón sea clicable, o hasta que este spinner desaparezca. Esa es mi opción por defecto, porque declara la intención y falla rápido con un mensaje con sentido. La trampa es mezclar esperas implícitas y explícitas en una misma suite, lo que en Selenium puede producir timeouts que no son ni uno ni otro y sobre los que cuesta razonar, así que pongo la espera implícita a cero y lo hago todo de forma explícita. Playwright se quitó casi todo esto de encima esperando solo a que el elemento sea accionable, y eso es buena parte de por qué ahora lo prefiero.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿A qué condición esperarías antes de comprobar que una tabla se ha refrescado?
- ¿Cómo manejas un elemento que aparece y luego se mueve mientras la página se asienta?
- ¿Qué harías con una página que nunca deja de hacer peticiones en segundo plano?
Más preguntas para Ingeniero de QA
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas