Temporada de graduación, ¡las preguntas de la entrevista de ByteDance son bienvenidas! (con respuesta)

 

Recientemente, he recibido algunas preguntas de entrevistas de fans de diferentes compañías, como ByteDance, Netease, Meituan, etc. Las resolveré cuando tenga tiempo. Tal vez la entrevista sea útil. Te daré lo siguiente. aspectos Organizado:

  • Información personal: (experiencia laboral/de prácticas, proyectos realizados, actitud y calidad)
  • pensamiento de prueba
  • Preguntas situacionales
  • Red de computadoras
  • Sistema operativo
  • Preguntas de código/algoritmo
  • Idioma (Python/Java)
  • linux
  • base de datos

informacion personal

1. ¿Cuál es el proceso de prueba de la empresa? / ¿Cómo funcionó el trabajo de prueba? / ¿Cómo iniciar la prueba?

Compruebe si está familiarizado con todos los aspectos del proceso de prueba. Tener conocimiento: ciclo de vida del software, ciclo de vida de errores, proceso de prueba.

El proceso general es una reunión de revisión de requisitos ---> plan de prueba (alcance de prueba, nodo de tiempo, asignación de tareas, estrategia de prueba, entorno, evaluación de riesgos) ---> redacción de casos de prueba (pensamiento de prueba), revisión interna/del equipo del proyecto -- -> Ejecución de pruebas (finalización del desarrollo y compilación, pruebas): búsqueda de errores, ubicación de errores, envío y seguimiento de errores, múltiples rondas de pruebas de regresión, finalización de las pruebas ---> clasificación de informes de pruebas --> publicación en línea, en línea seguimiento de problemas.

Puede realizar los ajustes oportunos según su empresa.

2. ¿Qué proyectos has realizado y de qué eres responsable?

3. ¿Detalles de cada deducción comercial en el proyecto?

4. Planificación personal, cómo entender la posición de prueba.

5. Lo más desafiante que ha encontrado en su vida o trabajo recientemente

pensamiento de prueba

1. ¿Qué prueba hace el vaso de papel?

Pregúntele al entrevistador: ¿Existe alguna restricción sobre la capacidad, el material, el tamaño, la forma y la función de este vaso de agua?

Entrevistador: sin límite

Yo: Supongamos que este vaso de agua es un vaso de agua de papel desechable de 100 ml en la oficina

Pruebas funcionales, pruebas de interfaz, pruebas de usabilidad, pruebas de compatibilidad, pruebas de seguridad, presión de rendimiento para pensar

Prueba funcional: ¿Se puede llenar la taza de agua con agua normalmente sin fugas? ¿Valor límite de 100 ml? ¿Agua fría y agua caliente hirviendo? ¿Se puede degradar? ....

Prueba de interfaz: ¿Son correctos el color de la apariencia, el diseño, el logotipo y el texto de la interfaz? .

Prueba de facilidad de uso: aislamiento térmico, ¿fácil de sostener? ¿Está la boca de la copa rebaba? ¿El diseño es ergonómico? ....

Prueba de compatibilidad: gas/sólido/líquido?¿Es normal en diferentes ambientes?

Prueba de seguridad: calidad del material, ¿puede prevenir la corrosión? ¿Evitar colisión, cortarse las manos? ¿Inhibir bacterias? ....

Presión de desempeño: ¿Cuántas veces te caíste? ¿Es resistente a caídas? (diferentes alturas) extrusión (diferentes ángulos), ¿se deforma?......

2. ¿Estuche de prueba de sobre rojo?

3. ¿Cómo probar los Me gusta de WeChat?

4. Diseñe casos de prueba para publicar en Momentos

5. ¿Cómo diseñar la página para recibir cupones?

6. ¿Diseñar un caso de prueba para la página de reproducción de video de Douyin?

7. ¿Diseñar casos de prueba para la interfaz de búsqueda de Douyin?

8. ¿Cómo probar una botella de agua mineral?

9. Para un proyecto, hay adiciones, eliminaciones, cambios e interfaces de consulta, etc., ¿cómo probar la interfaz?

Preguntas situacionales

1. Cómo solucionar problemas de congelación de videos

2. Después de abrir la aplicación, la página está en blanco, ¿cómo solucionar el problema?

Respuesta:

  1. Asegúrese de que la red sea normal y que la dirección URL ingresada sea correcta
  2. Vea las solicitudes y respuestas de la consola a través de herramientas de depuración del navegador o herramientas de captura de paquetes como fiddler,
  3. Compruebe si la dirección y los parámetros de la solicitud son normales; si el código de estado y los datos de respuesta devueltos por el fondo son normales
  4. Generalmente, después de los pasos anteriores, el problema se puede localizar básicamente. Por ejemplo, si la consola informa una excepción js o similar, es un problema de front-end; si el estado de retorno es 500, es un problema de back-end. Puede consultar el registro del servidor de forma síncrona para localizarlo.

3. Diseñe un caso de prueba para la función Me gusta de WeChat. Si le gusta pero la cantidad de Me gusta no aumenta en uno, ¿dónde podría informarse el error?

Respuesta: error de posicionamiento de url, error de código, red de operación de desconexión no es buena, no actualizada, límite de tiempo

4. Cuando la red es buena, se encuentra que durante la transmisión de datos se produce un 404. ¿Cuál cree que es el problema?

En términos generales, hay varias razones:

  1. No se puede acceder al sitio web en el puerto solicitado.
  2. La política de bloqueo de la extensión del servicio web impide esta solicitud.
  3. La política de mapeo MIME impide esta solicitud
  4. El sitio web ha sido actualizado y revisado, pero algunas secciones parciales continúan usando los módulos originales y los archivos llamados por los módulos originales han sido eliminados o transferidos.
  5. Varios códigos de script o archivos CSS que rastrean el acceso no son válidos, pero el código de llamada aún existe.
  6. Eliminar un directorio directamente
  7. Las reglas de generación de URL de la página web cambiaron
  8. Cambiar el nombre del archivo de la página web o mover la ubicación
  9. Errores tipográficos en enlaces de importación, etc.

5. Después de que A envió un mensaje a B, A vio que se envió el mensaje, pero B no lo recibió, ¿cómo solucionar el problema?

6. ¿Por qué la página web se carga lentamente?

7. Cómo lidiar con los conflictos con los desarrolladores y cómo resolver los problemas encontrados

8. ¿Qué debe hacer si el desarrollo de un error no se reconoce como tal?

Primero confirme si el entorno de desarrollo es consistente con su propio entorno de prueba (a veces el desarrollo verifica el error en el entorno donde han actualizado el código, por lo que el error no aparece, pero aparecerá en el entorno de prueba), y confirme que se puede reproducir en el entorno de prueba, si se confirma que es un defecto, mantener una comunicación efectiva con el desarrollo,

Si se trata de un error sugerido de bajo nivel, primero puede registrarlo en la plataforma de errores y mantener la comunicación primero;

Si es un problema con un alto nivel de error, los resultados esperados del documento de requisitos correspondiente y las instrucciones de desarrollo son más convincentes; explique con paciencia el daño del error y, si falla, encuentre el producto para confirmar, confirme que es un error e indicar la situación y asignarla de nuevo al desarrollador

9. Estás probando y el equipo de producto te trae una prueba urgente, ¿qué debes hacer?

10. ¿Qué pasa si el progreso de los colegas no puede cumplir con las expectativas y afectar el progreso general?

11. ¿Qué pasa si el líder le da un evento desconocido, pero es urgente?

Red de computadoras

1. Introducción al modelo OSI

La primera capa: capa física, función: use el medio de transmisión para establecer, administrar y liberar conexiones físicas entre hosts que se comunican, realizar una transmisión transparente de flujos de bits y proporcionar servicios de transmisión de datos para la capa de sincronización de datos

La segunda capa: capa de enlace de datos, función: basada en el flujo de bits proporcionado por la capa física, mediante el establecimiento de una conexión de enlace de datos, utilizando métodos de control de flujo y control de errores, convirtiendo la línea física con errores en un enlace de datos sin errores.

La tercera capa: capa de red, función: a través del algoritmo de selección de enrutamiento, seleccione la ruta de transmisión adecuada para el paquete a través de la subred de comunicación y realice las funciones de control de flujo, control de congestión e interconexión de red

La cuarta capa: capa de transporte, función: proporcionar servicios confiables de transmisión de datos y enlace de extremo a extremo para los procesos de computadoras distribuidas en diferentes ubicaciones geográficas; la capa de transporte protege los detalles de la comunicación de datos subyacente de la capa superior

La quinta capa: capa de sesión, función: responsable de mantener el establecimiento, gestión y terminación de la conexión entre dos hosts de sesión, así como el intercambio de datos.

La sexta capa: capa de presentación, función: responsable de la conversión de formato de datos entre sistemas de comunicación, cifrado y descifrado de datos, compresión y recuperación de datos

La séptima capa: capa de aplicación, función: realizar el control del proceso de comunicación entre los programas de aplicación que trabajan juntos

2. ¿Por qué TCP consume muchos recursos del sistema?

3. La diferencia entre TCP y UDP

  1. basado en conexión frente a sin conexión;
  2. Requisitos para los recursos del sistema (más TCP, menos UDP);
  3. La estructura del programa UDP es relativamente simple;
  4. modo flujo y modo datagrama;
  5. TCP garantiza la exactitud de los datos, UDP puede perder paquetes, TCP garantiza el orden de los datos y UDP no.

4. ¿Cómo garantiza TCP una conexión fiable?

5. ¿Cómo implementar la función de persistencia de sesión http?

6. ¿Código de estado HTTP?

1XX: Notificación. La serie 1XX de códigos de respuesta se usa solo cuando se comunica con servidores HTTP.

2XX: Éxito. Una serie 2XX de códigos de respuesta indica que la operación fue exitosa.

Redirección 3XX. La serie 3XX de códigos de respuesta indica que el cliente necesita hacer un trabajo adicional para obtener los recursos que necesita.

4XX: error del cliente. Estos códigos de respuesta indican un error del cliente. O hay un problema con la información de autenticación o hay un problema con el formato de representación o la propia biblioteca HTTP. Los clientes necesitan corregirse a sí mismos.

Error del servidor 5XX. Estos códigos de respuesta indican un error en el lado del servidor.

7. ¿Conexión larga HTTP y conexión corta y sus respectivos escenarios aplicables?

8. ¿Cuál es la diferencia entre obtener y publicar?

Conseguir:

a. En general, la solicitud para obtener datos del servidor se puede configurar para obtener el modo

b. Al pasar parámetros en el método Get, los parámetros generalmente se empalman directamente en la URL (por ejemplo: http://xxx?id=1&type=2)

c. La cantidad de datos de parámetros que puede pasar el método de solicitud Get es limitada (porque los parámetros generales están empalmados en la URL y el navegador tiene restricciones en la longitud de la URL)

d. La solicitud de obtención no es tan segura como la publicación (relativamente) porque los datos se empalman directamente en la URL, pero la eficiencia de ejecución de la obtención es más rápida que la publicación.

Correo:

a. En general, la solicitud para enviar datos al servidor se establecerá en modo de publicación

b. El método de publicación para pasar parámetros generalmente coloca los parámetros en el cuerpo de la solicitud en lugar de concatenarlos en la URL

c. La cantidad de datos que se pueden enviar mediante el método de solicitud posterior no está limitada

El paso de parámetros de solicitud posterior es más seguro que obtener (relativamente no absoluto), pero la eficiencia de ejecución de la publicación no es tan buena como la de obtener.

9. ¿El formato del cuerpo de la publicación?

10 encabezado del protocolo http

11 ¿Qué son las cookies y las sesiones, por qué utilizar las cookies y las sesiones?

12 ¿Protocolo y función DNS?

13 ¿El certificado de CA en Https está del lado del cliente o del lado del servidor?

Sistema operativo

1. ¿Cuál es la diferencia entre un proceso y un hilo?

Un proceso es la unidad más pequeña de asignación de recursos y un subproceso es la unidad más pequeña de ejecución del programa.
Un proceso tiene su propio espacio de direcciones independiente. Cada vez que se inicia un proceso, el sistema le asignará un espacio de direcciones y creará una tabla de datos para mantener el segmento de código, el segmento de pila y el segmento de datos. Esta operación es muy costosa. Los subprocesos comparten los datos en el proceso y usan el mismo espacio de direcciones, por lo que el costo de cambiar un subproceso por la CPU es mucho menor que el de un proceso, y el costo de crear un subproceso también es mucho menor que el de un proceso.
La comunicación entre hilos es más conveniente, los hilos bajo un mismo proceso comparten datos como variables globales y variables estáticas, y la comunicación entre procesos se debe realizar por medio de comunicación (IPC). Sin embargo, cómo manejar la sincronización y la exclusión mutua es la dificultad de escribir programas de subprocesos múltiples.
Pero los programas multiproceso son más robustos. Mientras un subproceso de un programa multiproceso muere, todo el proceso también muere, y la muerte de un proceso no afectará al otro proceso, porque el proceso tiene su propio espacio de direcciones independiente. .

2. ¿Escenarios de aplicaciones y subprocesos múltiples y procesos múltiples?

3. ¿Método de comunicación del proceso?

4. ¿Fuga de memoria?

5. ¿Montón y pila?

Área de pila (pila): asignada y liberada automáticamente por el compilador, almacenando valores de parámetros de funciones, valores de variables locales, etc. Funciona como una pila en una estructura de datos.
Área de montón (heap): generalmente asignada y liberada por el programador, si el programador no la libera, el sistema operativo puede reclamarla cuando finaliza el programa.

6. ¿Memoria de pila y memoria de pila?

7. ¿Qué es interbloqueo y las condiciones de interbloqueo?

8. ¿Cuál es la causa del interbloqueo?

Se puede resumir en los siguientes dos puntos:

a. Recursos competitivos

Los recursos del sistema se pueden dividir en dos categorías:

Los recursos privables significan que después de que un proceso obtiene dichos recursos, otros procesos o sistemas pueden privarlos de los recursos.Tanto la CPU como la memoria principal son recursos privables;

El otro tipo de recursos son los recursos inalienables.Cuando el sistema asigna dichos recursos a un proceso, no se pueden recuperar por la fuerza, sino que solo se pueden liberar una vez que se agota el proceso, como las unidades de cinta y las impresoras.

Uno de los recursos competitivos en el interbloqueo se refiere a la competencia por recursos inalienables (por ejemplo: solo hay una impresora en el sistema, que puede ser utilizada por el proceso P1, asumiendo que P1 ya ha ocupado la impresora, si P2 continúa requiriendo la impresora imprima, se bloqueará) lo que resultará en
un interbloqueo Recursos que compiten en bloqueos Otro tipo de recurso se refiere a los recursos temporales que compiten (los recursos temporales incluyen interrupciones de hardware, señales, mensajes, mensajes en el búfer, etc.), por lo general, si el el orden de la comunicación del mensaje es incorrecto, se producirá un interbloqueo

b. Secuencia de progreso ilegal entre procesos

Si P1 mantiene el recurso R1 y P2 mantiene el recurso R2, el sistema está en un estado inseguro, porque los dos procesos avanzan y puede ocurrir un punto muerto.

Por ejemplo, cuando P1 corre a P1: Solicitud (R2), se bloqueará porque R2 ya está ocupado por P2; cuando P2 corre a P2: Solicitud (R1), también se bloqueará porque R1 ya está ocupado por P1, por lo que el el proceso ocurre interbloqueo

9. ¡Cómo evitar el interbloqueo! ¿Evitar interbloqueos, comprobar si hay interbloqueos?

Asignación única de recursos: asigne todos los recursos a la vez, para que no haya más solicitudes: (destrucción de las condiciones de solicitud)

Mientras no se pueda asignar un recurso, no se asignarán otros recursos a este proceso: (destruya, mantenga la condición)

Recursos privables: es decir, cuando un proceso obtiene unos recursos pero no puede obtener otros, se liberan los recursos ocupados (rompiendo la condición de inalienable)

Método de asignación ordenada de recursos: el sistema asigna un número a cada tipo de recurso, y cada proceso solicita recursos en orden creciente y libera el opuesto (destruye la condición de espera del bucle)

Preguntas de código, preguntas de algoritmo

1. decorador y escribe un ejemplo de decorador ?

2. Encuentra números que ocurren más de la mitad del tiempo en una matriz

3. Complejidad espacial de la tabla hash

4. Pregunta de algoritmo: Dada una cadena, encuentre todas las subcadenas repetidas.

5. Pregunta de algoritmo: recorrido de profundidad del árbol: ciclo while: pila, primero ingrese el nodo del subárbol derecho, luego ingrese el nodo del subárbol izquierdo.

6. Pregunta de algoritmo: proporcione una cadena para encontrar la cadena de palíndromo, diseñe un caso de uso para su algoritmo

7. Pregunta de algoritmo: recorrido de orden anticipado del árbol binario

Conceptos básicos de Python/Java

  1. ¿Características de los lenguajes orientados a objetos?
  2. ¿Copia profunda vs copia superficial?

Los tipos de datos se dividen en dos tipos básicos y tipos de referencia.

  1. Tipos básicos: tipos básicos como Number, String, Boolean, etc.
  2. Tipos de referencia: objeto y matriz

La copia superficial simplemente copia la dirección de referencia del objeto, y los dos objetos apuntan a la misma dirección de memoria, por lo que si se modifica algún valor, el otro valor cambiará en consecuencia. Esta es una copia superficial (por ejemplo: asignar())

La copia profunda es copiar el objeto y su valor. Dos objetos modifican cualquier valor y el otro valor no cambiará. Esto es una copia profunda.

  1. Diferencia entre tupla de python y lista

a=[] esta es una lista

b=() esto es una tupla

Diferencia: La lista se puede modificar pero la tupla no se puede modificar, por ejemplo se puede usar append() para agregar elementos a la lista, como la tupla no es modificable no hay problema de agregar elementos.

El mismo punto: tanto las listas como las tuplas son contenedores que contienen varias columnas de objetos, y ambos pueden contener elementos de cualquier tipo o incluso secuencias.

  1. ¿Qué reutiliza Python?
  2. ¿Qué funciones de biblioteca ha utilizado Python?
  3. ¿En qué medida se utiliza el selenio?
  4. decorador de python, función, uso
  5. java: Permítanme hablar sobre el polimorfismo, la diferencia entre las clases de interfaz y las clases abstractas;
  6. ¿Mecanismo de recolección de basura de Java/Python?
  7. ¿Cómo crean java y python multihilo y multiproceso?

linux

1. comandos comunes

2. Imprime los archivos de la carpeta actual ls -al a todos los archivos l información detallada

3. Comandos para consultar cpu y otras condiciones

Respuesta: El comando gratuito es una forma rápida de ver el uso de la memoria, es una descripción general de la información recopilada por /proc/meminfo.

El comando superior proporciona estadísticas de uso de recursos en tiempo real de los programas en ejecución

El comando atop es un comando de monitoreo para el entorno del terminal. Muestra la síntesis de varios recursos del sistema (CPU, memoria, red, E/S, kernel) y codificados por colores bajo carga alta

El comando htop muestra el uso de memoria en tiempo real de cada proceso. Proporciona informes sobre el tamaño de la memoria residente de todos los procesos, el tamaño total de la memoria del programa, el tamaño de la biblioteca compartida y más. Las listas se pueden desplazar horizontal y verticalmente.

El comando ps puede mostrar el uso de memoria de cada proceso en tiempo real.

El comando smem le permite contar el uso de memoria de diferentes procesos y usuarios en función de la información de /proc. El análisis del uso de la memoria puede exportar gráficos (como gráficos de barras y gráficos circulares, solo disponibles en la ventana GUI).

El comando vmstat muestra estadísticas promedio y en tiempo real que cubren CPU, memoria, E/S y más. Por ejemplo, el estado de la memoria no solo muestra la memoria física, sino que también cuenta la memoria virtual.

nmon es una herramienta de evaluación comparativa del sistema basada en ncurses que supervisa los patrones de interacción de la CPU, la memoria, las E/S, el sistema de archivos y los recursos de red. Para el uso de la memoria, puede mostrar información como la memoria total/remanente y el espacio de intercambio en tiempo real.

base de datos

  1. ¿Cómo se implementa el motor de almacenamiento mysql?
  2. ¿Concepto de transacción y sus características?

concepto:

1. Transacción de base de datos: una transacción de base de datos generalmente se refiere a una secuencia de operaciones que leen o escriben en una base de datos.

Existe para dos propósitos:

  1. Proporciona un método para que las operaciones de la base de datos se recuperen de un error a un estado normal y, al mismo tiempo, proporciona un método para que la base de datos mantenga la coherencia incluso en un estado anormal.
  2. Cuando varias aplicaciones acceden a la base de datos al mismo tiempo, se puede proporcionar un método de aislamiento entre estas aplicaciones para evitar que las operaciones de las demás interfieran entre sí.
  3. ¿Cuál es la diferencia entre la consulta de varias tablas, el sql normal y el procedimiento almacenado?
  4. ¿Por qué se debe usar el árbol B o el árbol B+ para la capa inferior y la capa inferior del índice?
  5. ¿Cuál es la diferencia entre el árbol B y el árbol B+?
  6. ¿Está familiarizado con la base de datos: ¿Cómo construir una tabla en el sistema de selección de cursos de estudiantes para consultar los nombres de todos los estudiantes enseñados por un maestro?
  7. ¿Tomar el nombre del estudiante más joven de cada clase en un grado?
  8. ¿Cuál es la diferencia entre dónde y tener?

Respuesta:

utilizado en diferentes lugares

donde se puede usar en declaraciones de selección, actualización, eliminación e inserción en valores (seleccione * de la tabla donde ...). Tener solo se puede usar en declaraciones seleccionadas.

El orden de ejecución es diferente.

La condición de búsqueda de donde se aplica antes de ejecutar la instrucción para agrupar

La condición de búsqueda de tener se ejecuta después de la condición de agrupación

Es decir, si where y being se usan juntos, where se ejecutará primero y después de haber

las cláusulas son diferentes

Se puede seguir la expresión condicional que tiene en la cláusula where, pero algunas expresiones en la cláusula que no se pueden seguir; la cláusula que tiene puede usar funciones agregadas (sum, count, avg, max y min), y la cláusula where no puede .

Resumir

1. La cláusula WHERE se usa para filtrar las filas generadas por la operación especificada en la cláusula FROM.
2. La cláusula GROUP BY se usa para agrupar la salida de la cláusula WHERE.
3. La cláusula HAVING se usa para filtrar filas de los resultados agrupados

  1. Unión interna y unión externa?

Una unión interna es una unión cruzada con solo condiciones. De acuerdo con una determinada condición, los registros que cumplen las condiciones se filtran y los registros que no cumplen las condiciones no aparecerán en el conjunto de resultados, es decir, la unión interna. solo conecta las filas coincidentes.

El conjunto de resultados de una combinación externa no solo contiene las filas que cumplen las condiciones de combinación, sino que también incluye todas las filas de datos en la tabla izquierda, la tabla derecha o ambas tablas. Estos tres casos se denominan combinación externa izquierda, combinación externa derecha , y unión completa, unión externa.

Combinación externa izquierda, también conocida como combinación izquierda, la tabla de la izquierda es la tabla principal y todos los registros de la tabla de la izquierda aparecerán en el conjunto de resultados. Para aquellos registros que no coincidan en la tabla de la derecha, aún se mostrarán. Los valores de campo correspondientes a la derecha son NULL para completar. Combinación externa derecha, también conocida como combinación derecha, la tabla de la derecha es la tabla principal y todos los registros de la tabla de la derecha aparecerán en el conjunto de resultados. Las combinaciones izquierda y derecha son intercambiables, y MySQL actualmente no admite combinaciones externas completas.

  1. ¿Deduplicación de los campos de la base de datos?
  2. ¿Instrucción SQL para consultar los nombres de los estudiantes cuyas puntuaciones son superiores a 80 en cada curso?

SELECCIONE el nombre DEL GRUPO de estudiantes POR Materia que tiene MIN (Grado)> = 80

Supongo que te gusta

Origin blog.csdn.net/a448335587/article/details/131463914
Recomendado
Clasificación