Fija el comportamiento actual antes de cambiarlo. Escribe tests de caracterización en una frontera estable, metiendo entradas reales y afirmando lo que el código hace hoy, bugs incluidos, para tener una red que detecte cambios. Después refactoriza en pasos pequeños con esos tests en verde, extrayendo la lógica que necesitas tocar a algo comprobable. Solo cuando existe esa costura cambias el comportamiento, y cada cambio lleva su propio test.
Por qué lo preguntan los entrevistadores
La mayor parte de la ingeniería ocurre sobre código que no escribiste, y esto revela si entras a saco o construyes seguridad primero. Los entrevistadores escuchan tests de caracterización, probar en una frontera estable en vez de hacer tests unitarios de una implementación que vas a borrar, y separar el refactor del cambio de comportamiento para que cuando algo se rompa sepas al instante cuál de los dos fue.
Cómo estructurar tu respuesta
- Niégate a cambiar lógica sin tests si no tienes una red.
- Escribe primero tests de caracterización en la frontera de la API.
- Separa el refactor del cambio de comportamiento.
- Usa datos reales de producción para validar.
Ejemplo de respuesta
No cambio lógica que no puedo verificar, así que el paso uno es una red. Escribo tests de caracterización en la frontera estable más alta, normalmente el handler HTTP o un punto de entrada del servicio, y afirmo lo que el código hace ahora mismo, incluidas cosas que sospecho que son bugs. El objetivo no es la corrección, es detectar el cambio. Si tengo acceso a producción capturo unos cientos de pares reales de petición y respuesta, porque las entradas hechas a mano se pierden las raras y las raras son las que rompen. Después refactorizo en pasos pequeños con los tests en verde todo el camino, sacando la lógica que de verdad necesito tocar a una función que puedo llamar directamente. Solo entonces cambio el comportamiento, y cada cambio viene con un test real más una decisión sobre si el comportamiento antiguo era intencionado. En un servicio de precios heredado hice exactamente esto y el tráfico capturado dejó al descubierto dos caminos de redondeo que no coincidían, algo que nadie sabía. Ese es el tipo de cosa que encuentras con una red y destrozas sin ella.
¿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
- ¿Cómo gestionas un bug del que los clientes ya dependen?
- ¿Ejecutarías el camino antiguo y el nuevo en paralelo?
- ¿Cómo evitas que el refactor se desmadre en alcance?
Más preguntas para Ingeniero de software
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