Lo que debe saber el probador de backend



A menudo me preguntan qué leer antes de entrevistar para el puesto de probador de back-end. Y en mi trabajo, me encuentro con el hecho de que muchos solicitantes no siempre entienden lo que sucederá en la entrevista y no están preparados. Entonces, la idea nació para recopilar información útil en un artículo.

FunCorp tiene una lista de temas con preguntas que hacemos a los candidatos. Decidí complementarlo, hacerlo más universal, dividir cada tema en niveles (lo que necesita saber y lo que será una ventaja) y agregar enlaces a artículos y libros que se pueden leer sobre estos temas.

Qué problemas ayuda a resolver este texto: candidato - prepararse para una entrevista, cualquier probador de back-end - actualizar conocimientos, frontend o probador de aplicaciones móviles - ampliar sus horizontes. Los empleadores pueden usar la lista para crear requisitos de trabajo.

Conocimiento necesario


Voy a hacer un comentario de inmediato: el conocimiento y las habilidades necesarias dependen de los detalles de la vacante. Si la vacante se trata de probar la API donde se usa HTTP, entonces necesita conocer HTTP muy bien y no necesita conocer los matices del sistema operativo. Si trabaja con Windows, entonces no necesita saber bash.

También quiero hacer un llamamiento a los empleadores: no pregunte sobre la gestión de memoria en Linux, un candidato para el puesto de Ingeniero de Control de Calidad Móvil, es poco probable que esto sea útil para él en su trabajo.
No menciono los lenguajes de programación porque depende mucho de la pila utilizada. Pero a menudo no se les pregunta nada sobre ellos en las entrevistas de los evaluadores (de lo contrario, indican el nivel necesario de conocimiento del idioma en la descripción del trabajo).

Sobre muchos temas proporcionaré enlaces, incluso a Wikipedia. Sí, aunque esta no es la fuente de información de más alta calidad, sin embargo, creo que es bastante adecuada para un estudio superficial del tema o un conocimiento refrescante y es bueno porque en cualquier artículo hay muchos enlaces a otros artículos en un área temática específica. En cualquier caso, proporciono enlaces a otros artículos y libros, para que todos puedan elegir la fuente de información adecuada para ellos.

Teoría de prueba


Comenzaré, quizás, con lo más obvio, pero no lo más inequívoco: algunos líderes de equipo pueden guiarlo en todos los términos y conceptos en la entrevista, algunos no preguntarán nada en absoluto.

¿Qué se espera de cualquier candidato?


Conocimiento de términos básicos, técnicas de diseño de pruebas, la capacidad de escribir un informe de errores de calidad.

Lo que sugiere que el candidato conoce bien el tema


Formalmente, estos son certificados ISTQB.

Qué leer sobre el tema


Hay un buen artículo sobre Habré con toda la información necesaria. Si desea comprender la teoría de las pruebas con más detalle, puede leer los materiales de ISTQB .

Cáscara


Dependiendo del sistema operativo, necesita saber bash (sh, zsh, etc., pero es poco probable que los matices jueguen un papel importante), o CMD y PowerShell.

¿Qué se espera de cualquier candidato?


Conocimiento de comandos básicos.

Lo que sugiere que el candidato conoce bien el tema


El candidato conoce muchos comandos, varias opciones para ellos, sus ventajas y desventajas, varias formas de usarlos, así como herramientas para solucionar problemas, por ejemplo, strace , tcpdump , gdb y otros.

Qué leer sobre el tema


Puede leer acerca de los comandos principales en Linux en uno de mis artículos anteriores , y también hay un repositorio genial con un montón de ejemplos en GitHub . Según los libros, recomendaría el "Sistema operativo UNIX" de Robachevsky, Nemnyugin y Stesik: no se trata solo de equipos, sino del sistema en su conjunto.
Puede leer acerca de los comandos CMD aquí , pero PowerShell tiene buena documentación .

HTTP (o los protocolos especificados en la descripción del trabajo)


Muy a menudo, HTTP se elige como el protocolo principal para la arquitectura cliente-servidor, por lo que a menudo preguntan sobre este protocolo. Sin embargo, es posible que necesite conocer IMAP, POP3, SMTP (si va a probar el correo), Protobuf o MessagePack u otros protocolos. 

¿Qué se espera de cualquier candidato?


Todo depende de la prevalencia del protocolo. Es poco probable que le den un volcado binario de tráfico y le pidan que lo deserialice en un pedazo de papel de Protobuf, pero si estamos hablando de HTTP, entonces necesita saberlo a un buen nivel: la estructura de la solicitud y la respuesta, los encabezados principales, los métodos, los códigos de respuesta, HTTPS.

Lo que sugiere que el candidato conoce bien el tema


El candidato puede responder preguntas sobre el almacenamiento en caché, la compresión de datos, las cookies y el uso de varios encabezados en HTTP. Para otros protocolos, todo es más subjetivo.

Qué leer sobre el tema


Sobre HTTP, toda la información necesaria está en Wikipedia . Para otros protocolos, le aconsejo que lea su documentación y especificaciones. Además, no te olvides de HTTPS . Bueno, por supuesto, siempre debe tener a su alcance enlaces a RFC 2616 y RFC 7540 (pero hay otras especificaciones ).

Protocolos de red de capa inferior


Muchos candidatos no tienen idea de lo que hay bajo HTTP. Creo que esto no los caracteriza muy bien, porque el evaluador debe tener una mente inquisitiva y una curiosidad moderada, por lo que ciertamente necesito saber en términos generales sobre el modelo de red OSI.

¿Qué se espera de cualquier candidato?


El candidato debe saber que existen protocolos TCP, UDP e IP y comprender su esencia.

Lo que sugiere que el candidato conoce bien el tema


Al comprender el mecanismo de operación del protocolo TCP (protocolo de enlace de tres vías, algunos campos del encabezado, banderas, una ventana deslizante), el candidato puede nombrar las desventajas y ventajas de TCP y UDP, sus áreas de aplicación, conocimiento general de IP. Será genial si el candidato habla en pocas palabras sobre otros protocolos (por ejemplo, ARP, ICMP, ICMPv6).

Qué leer sobre el tema


Se pueden obtener conocimientos básicos de los artículos de Wikipedia: OSI , TCP , UDP , IP , IPv6 , ICMP , ARP , modelo de red ICMPv6 . Si desea sumergirse en este tema, puede leer "Redes de computadoras" de Tanenbaum.

Base de datos


¿Qué se espera de cualquier candidato?


Consultas SQL básicas (la UNIÓN favorita de todos).

Lo que sugiere que el candidato conoce bien el tema


Conocimiento general de diferentes DBMS, replicación, fragmentación, estructura interna de un DBMS, conocimiento general de bases de datos no relacionales.

Qué leer sobre el tema


En términos generales, se puede encontrar información sobre bases de datos en la documentación de un DBMS específico. Si desea tratar las bases de datos en detalle, le recomiendo los capítulos correspondientes de "Aplicaciones altamente cargadas " de Kleppman.

OOP


¿Qué se espera de cualquier candidato?


Conocimiento de los principios básicos de OOP.

Lo que sugiere que el candidato conoce bien el tema


Será genial si el candidato conoce algunos patrones.

Qué leer sobre el tema


Puede leer sobre principios, por ejemplo, aquí , sobre patrones, aquí . También hay un libro genial “Técnicas de programación orientada a objetos. Patrones de diseño "pandilla de cuatro".

Sistemas operativos


¿Qué se espera de cualquier candidato?


Para la mayoría de las vacantes de los evaluadores, el conocimiento de los matices de los sistemas operativos no es relevante.

Lo que sugiere que el candidato conoce bien el tema


Será genial si el candidato conoce la gestión de la memoria, el núcleo y la pila, la creación de nuevos procesos y su eliminación, sistemas de archivos y más.

Qué leer sobre el tema


Brevemente, puede leer en el libro ya mencionado "Sistema operativo UNIX" de Robachevsky, Nemnyugin y Stesik. Si el tema es de interés, puede profundizar en él utilizando, por ejemplo, los sistemas operativos modernos de Tanenbaum. En general, puede familiarizarse con el tema usando Wikipedia: hay artículos sobre el kernel de Linux , la memoria virtual , el cambio de contexto y otros.

Arquitectura de Computadores


¿Qué se espera de cualquier candidato?


Para la mayoría de las vacantes de los evaluadores, el conocimiento de los matices de los procesadores, la memoria y los periféricos no es relevante.

Lo que sugiere que el candidato conoce bien el tema


Será genial si el candidato conoce en términos generales sobre el procesador, registros, cachés, memoria y disco, etc.

Qué leer sobre el tema


Puede familiarizarse superficialmente con el hardware usando Wikipedia: CPU , modo de procesador , microarquitectura (hay muchos enlaces a otros artículos relacionados en este artículo), caché , ALU , canalización , predictor de rama , superescalaridad , etc. Este tema puede estudiarse de manera más integral y profunda, por ejemplo, utilizando el libro " Computer Architecture" de Tanenbaum.

Algoritmos y estructuras de datos.


Lo más probable es que no hagan preguntas sobre algoritmos y estructuras de datos (especialmente si el puesto no está en el nivel de pasante o junior), pero aún necesita saber algunas cosas comunes. Personalmente, en una entrevista solo me preguntaron una vez sobre el montón binario; yo tampoco soy fanático de preguntar a los candidatos sobre esto. Por lo tanto, no presentaré ningún criterio y adjuntaré solo un artículo con buenas imágenes , puede imprimirlas y colocarlas en un lugar destacado. Si quiere sumergirse en algoritmos y estructuras de datos con su cabeza, entonces puede comenzar a leer "Algoritmos". Guía de desarrollo " Skien o " Algoritmos. Construcción y análisis ” Cormen.

Otro


  1. Muchos donde se usa Docker .
  2. (« »).
  3. REST SOAP.
  4. JSON XML.
  5. Protocol Buffers, MessagePack BSON.
  6. TLS.
  7. Git ( VCS).
  8. Nginx Apache.
  9. .
  10. TeamCity Jenkins ( CI-).



, google.com Enter?


Una tarea clásica con la que puede comprobar qué tan profundamente entiende un candidato las tecnologías web en general. Hay un análisis detallado de esta tarea en Habré, pero no recomiendo leer los matices del tipo "se envía una pequeña cantidad de corriente a través del diagrama de cableado del teclado".

Probar un formulario con un botón


Sí, esta tarea a menudo se pregunta en la entrevista de los probadores de back-end. La tarea es clásica, por lo que será genial si el candidato fantasea un poco e imagina lo que podría estar detrás de este botón con un botón. Por ejemplo, podemos suponer que los datos van del formulario al backend, que consta de varios servidores y la base de datos, que el backend escribe registros y tiene una configuración; esto agregará inmediatamente muchos casos de prueba de un nivel más profundo que "ingrese un valor demasiado largo en el campo de entrada" . Por ejemplo, puede usar tcpdump para ver si el tráfico va a todos los servidores de fondo exactamente; puede intentar enviar inyección SQL o JSON roto (naturalmente, si de repente JSON está en el contexto de la tarea); puede verificar qué sucede si los registros ocupan todo el espacio libre en el disco; puedes verificar el sistema cuandoun backend seguro , la corrección de agregar datos a la base de datos, etc. Por lo tanto, el candidato mostrará sus amplios horizontes, lo que sin duda lo beneficiará.

Prueba de servicio


Una variación de la tarea anterior: por ejemplo, hay un servicio que escucha en el puerto y recibe JSON como entrada, responde en el mismo formato. Todo es similar, solo que no hay estaño, por lo que no debes tenerle miedo. Nos conectamos al puerto usando telnet , y luego todo es igual.

Prueba de punto final API REST


Y nuevamente, todo es igual, solo con HTTP (muy probablemente). Aquí puede demostrar conocimiento del protocolo HTTP: por ejemplo, verifique el funcionamiento del servicio si hay varios encabezados en la solicitud.

Por supuesto, no puede compilar un manual de capacitación universal para preparar un probador de back-end desde cero: todo depende de los detalles de la compañía, los detalles del departamento y el líder del equipo. Y la tecnología no se detiene: hasta hace poco, Docker no se usaba activamente, y ahora la experiencia con ella puede ser una gran ventaja. Sin embargo, traté de recopilar las cosas básicas en un solo lugar, y si esto ayuda a preparar y encontrar trabajo para al menos una persona, entonces escribí este artículo por una buena razón.

PD: También recomiendo leer el artículo de mi colega "La imagen de un probador moderno". Lo que necesita saber y poder ", describe varias direcciones de desarrollo para probadores.

All Articles