paint-brush
Los puntos en común entre la localización de errores y la resolución de delitospor@grgr
637 lecturas
637 lecturas

Los puntos en común entre la localización de errores y la resolución de delitos

por Ivan Grigorev5m2022/10/13
Read on Terminal Reader

Demasiado Largo; Para Leer

El ingeniero manual de control de calidad de InDrive describe el proceso de investigación de un informe de error. Similar a una investigación criminal, el control de calidad se guía por el conocimiento del producto y el conocimiento del producto. Ambos procesos están enfocados a investigar los resultados de las malas conductas, así como sus causas y efectos. El ingeniero de control de calidad aplica técnicas de diseño de pruebas que se centran en valores límite, clases de equivalencia y pares. Por el contrario, los investigadores aplicarán tácticas y combinaciones que les permitan planificar sus pasos posteriores con la mayor eficacia posible.
featured image - Los puntos en común entre la localización de errores y la resolución de delitos
Ivan Grigorev HackerNoon profile picture

Me parece que estas dos áreas tienen mucho en común. Por ejemplo, ambos procesos se centran en investigar los resultados de la mala conducta, así como sus causas y efectos, junto con las prácticas relacionadas con el mantenimiento de registros y la documentación.


Hace un año, recibí una oferta para el puesto de ingeniero manual de control de calidad en inDriver. Pero antes de eso, pasé siete años investigando casos criminales en varias unidades y agencias de aplicación de la ley. Durante mi servicio, trabajé con una amplia gama de delitos penales, desde delitos graves que ponen en peligro la vida y la salud de una persona hasta delitos económicos de carácter interregional. En mi último trabajo, mi título laboral era: "Investigador principal de la División de Investigación para Combatir el Crimen Organizado de la Dirección de Investigación del Ministerio del Interior de la República de Sakha (Yakutia)".


Ahora mi trabajo consiste en configurar pruebas de regresión, escribir pruebas automáticas de interfaz de usuario móvil y encargarme de muchas otras cosas diseñadas para acelerar el proceso de entrega de nuevas funciones a los usuarios sin pérdida alguna en la calidad del producto.


Lanzamiento de una investigación

Así como una investigación criminal comienza con la inspección de la escena del crimen, el informe de error comienza con una descripción del entorno donde se encontró el defecto. De esta manera, recopilamos algunos datos sólidos y confiables. Luego, utilizando esos datos como base y aplicando un enfoque deductivo, así como nuestro conocimiento sobre el entorno o el producto, podemos reducir el área de investigación y comenzar a planificar nuevos movimientos y desarrollar nuestras suposiciones.

Un diagrama de la escena del crimen y una descripción del entorno en un informe de error.

Desarrollo de un plan de acción

Una vez que obtenemos los datos sin procesar, nos enfrentamos a la diversidad de información. Ahora es importante elaborar un plan de acción. El tiempo es nuestro recurso número uno aquí. Difícilmente sería una buena idea comprobar todos los valores de -2.147.483.648 a 2.147.483.647 en el campo de entrada de nombre con el fin de localizar el defecto. Del mismo modo, el investigador no tiene la capacidad de interrogar a todos los residentes de la ciudad o enviar todos los utensilios o artículos domésticos para pruebas de genética molecular.


Para resolver este problema, el ingeniero de control de calidad aplica técnicas de diseño de pruebas que se centran en valores límite, clases de equivalencia y pares. Por el contrario, los investigadores aplicarán tácticas y combinaciones que les permitan planificar sus pasos posteriores con la mayor eficacia posible.

Una tabla de contenido de muestra para una lista de verificación de interrogatorio


Haciendo nuestras primeras suposiciones

Supongamos que recibimos un informe de asesinato en el sentido de que nuestra aplicación se bloqueó. Por mi experiencia como investigador, sé que casi el 90 por ciento de todos los asesinatos están relacionados de una forma u otra con el esposo, la esposa, los parientes, los amigos o los vecinos de la víctima. Es la misma historia con la aplicación... nos guiamos por el conocimiento del producto: digamos que sacamos un sniffer y verificamos las solicitudes salientes y las respuestas que obtenemos. Hasta ahora, nada interesante: todos los miembros de la familia tienen coartadas y la respuesta del servidor contiene "200". Todo parece estar en orden aquí.

Además, sabemos que una persona en su sano juicio no cometería un asesinato sin una razón. En base a eso, podemos reducir una lista ilimitada de sospechosos a aquellos con quienes la víctima estaba asociada financieramente o tenía contactos relacionados con el trabajo o de otro tipo. De manera similar, en la aplicación podemos identificar la versión de lanzamiento a partir de la cual el defecto comienza a propagarse y desarrollar nuestras suposiciones sobre qué cambios en el código podrían haber causado la aparición del error.

Tirando de los registros

A continuación, tratamos de establecer todos los eventos que precedieron al crimen para rastrear algunas pruebas incriminatorias:


  • Vemos imágenes de cámaras de video.

  • Interrogamos a los vecinos para saber si oyeron ruidos de forcejeo o vieron a alguna persona sospechosa.

  • Establecemos con quién habló la víctima por teléfono poco antes de cometer el crimen.


Cuando se trata de un defecto, también recopilamos pruebas:


  • Capturamos registros en Android Studio o XCode.
  • Verificamos los registros del servidor.


En el proceso, descubrimos que un hombre NullPointerException ingresó al apartamento poco antes de que se cometiera el crimen. Los vecinos lo identificaron como un maleante de la localidad con antecedentes penales que se emborrachaba regularmente y era temido por todos los inquilinos del edificio.


Comprobación de las pruebas en la escena del crimen.

Supongamos que, una vez producida la prueba incriminatoria, el hombre confiesa el delito. La investigación no termina ahí. Tenemos que asegurarnos de que fue él quien cometió el crimen, y que su confesión de culpabilidad está motivada por el remordimiento, más que por el miedo a estropear el estado de ánimo del investigador.


Para ello, la prueba se verifica en el lugar del delito, donde se requiere que el imputado autor revele todos los detalles del delito y cuente las circunstancias que no sean del conocimiento de ninguna de las partes ajenas a la comisión del delito. delito. Así, al identificar un escenario estable para la reproducción del defecto, obtuvimos una prueba concluyente de que habíamos encontrado la parte adecuada que buscábamos.

Investigación criminal completada = Informe de error

Una vez establecidas todas las circunstancias del delito, no corresponde al investigador subsanar el defecto. Organiza las pruebas recopiladas en el expediente del caso penal, redacta una acusación y la presenta ante el tribunal de justicia. La decisión sobre la sentencia, sobre cómo solucionar el error o sobre si declarar este error como una característica inocente se toma fuera del proceso de prueba.

Establecimiento de las causas del delito.

Para prevenir delitos similares en el futuro, el investigador debe establecer las circunstancias que contribuyeron a la comisión del delito bajo revisión y tomar las medidas pertinentes. Debe establecer, por ejemplo, la razón por la cual no se tomaron medidas previamente en respuesta a las denuncias sobre la conducta del autor, o por qué las medidas tomadas en su contra no lograron prevenir el delito.


Lo mismo es cierto en el caso de las pruebas: cuando se detecta un error en PROD, no estaría de más identificar los factores que contribuyeron a su aparición:


  • Cobertura de prueba inadecuada.
  • Combinar sin cobertura de prueba.
  • Mala formulación del problema.
  • Requisitos definidos inadecuadamente.
  • Casos de esquina no revisados por un especialista de control de calidad.
  • Una cantidad insuficiente de tiempo asignado para fines de prueba y desarrollo.
  • Baja cualificación profesional de los miembros del equipo de desarrollo.
  • Requisitos que cambian con frecuencia.

Conclusión

Obviamente, los trabajos de un investigador y un probador no son los mismos. A pesar de algunas características comunes, todavía hay significativamente más diferencias que similitudes entre ellos. Pero si por alguna razón se encuentra con el deseo de cambiar radicalmente su trayectoria profesional, puede encontrar cursos adecuados de nuestro socio, y esto es posible. Incluso en un campo completamente diferente, puedes encontrar actividades que requieren una mentalidad similar, y eso hará que sea un poco más fácil lograr el objetivo que te has propuesto.


También publicado aquí