¿Cuántos errores puede encontrar un buen probador por día?

Depende de demasiados factores para generalizar. Trabajando en un entorno ágil (a nivel de unidad), he encontrado una docena de errores al día, sin embargo, desarrollé una relación con el desarrollador en el que cortó el código y (básicamente) lo depuré en un marco de prueba que ideé.

En el otro extremo, una corporación me pidió que auditara el código escrito por los contratistas. No pude encontrar ningún error sustancial (solo pequeños errores molestos) pero el código no funcionó. La falla fue rastreada hasta la etapa de especificación; los codificadores habían implementado ciegamente la especificación para un producto de capa de comunicación que tenía fallas fundamentales (y que requería una reescritura sustancial).

En el medio, he visto varios casos de excelentes programadores contra cuyo código tal vez podría encontrar un error funcional en 2,000 líneas de código ejecutable (que a menudo me llevó hasta una semana analizar completamente).

A veces, los errores son obvios, por ejemplo, una falla en una página web. Otras veces, el error es lo que se conoce como “caso de esquina” y solo ocurre cuando golpeas el código con tiempo crítico, tamaño de datos, secuencia de estado, etc. Como probador, el truco para encontrarlos es analizar el requisito, deducir el caso de esquina , luego idear un medio para probarlos. Este enfoque funcionó particularmente bien para la transmisión de medios.

Espero que vean que no se trata solo de cuántos errores encontramos; a veces es la “calidad” del error lo que cuenta. Encontrar los errores oscuros a menudo requiere un amplio conocimiento del dominio en el que está trabajando (los medios, por ejemplo, la concurrencia de la base de datos sería otra). los requisitos reales del producto y una visión sólida de cómo funciona el código. ¡Este último factor rompe el concepto de “caja negra” de pruebas que las personas inexpertas a veces se adhieren ciegamente!

En un caso, durante la investigación del código de funcionamiento deficiente, pude diseñar una nueva arquitectura de software para esa parte del producto, que fue implementada por un ingeniero de clase y posteriormente no generó más problemas.

Finalmente, el peor de los casos fue un protocolo de tarjeta de cable que me pidieron que depurara. ¡Me di por vencido con alrededor de 180 errores encontrados solo con la lectura de código! Al final me pidieron que volviera a escribir completamente el producto, desde cero, lo que me llevó casi seis meses.

Las pruebas se realizan en diversos momentos y en diversos niveles de sofisticación. Creo que, como ingeniero de validación, mi primer trabajo es “probar” la especificación para validar que es correcta y suficiente para formar la base para un trabajo constructivo. También probamos el código a nivel de unidad, nivel de integración y finalmente a nivel de sistema. Generalizando, cuanto más tarde encontramos errores, más cuestan arreglarlos (ya sea en términos de demora o satisfacción del cliente).

Con suerte, sin errores.


Verá que la prueba no se trata de encontrar errores , por lo que no puede medir nada por los hallazgos de errores. Las pruebas se tratan de probar la calidad de algo.

Si solo desea conocer los números, diría que variaría de 0 a 16 (30 minutos por error). Y eso es.

Además, no puede juzgar cuán “bueno” es el probador por la cantidad de errores que encontró. No está funcionando de esta manera.

Desafortunadamente, hay algunas compañías que están pagando a los evaluadores por los errores encontrados, lo que es perjudicial para probar la calidad. Es dañino porque tiende a que los evaluadores llenen más errores incluso si no son precisos, o los dividen mucho, o incluso posponen el llenado para el próximo mes cuando necesiten más dinero.

Soy un buen probador. Puedo encontrar 20 errores un día y 5 otro día. También puedo ejecutar 40 casos de prueba en un día y 3 en otro día. Todo es relativo. Lo más importante es si esos errores son defectos válidos y están bien documentados para que el equipo de desarrollo pueda solucionarlos.

Otra cosa que lo hace relativo es cómo su equipo espera registrarlos. En nuestra empresa, algunos informes de errores pueden contener múltiples defectos estéticos de baja prioridad estrechamente relacionados en un solo registro. No siempre es preferible, ya que puede hacer que se pierdan cosas, pero ahorra tiempo para la creación, reparación y gestión de defectos. Puede haber 5 pequeños errores de ortografía listados en ese defecto, pero es solo 1 defecto.

Esta respuesta, mi amigo, es relativa, quiero decir, ¿cuánto dura un trozo de cuerda?

Esto dependerá de varios factores.

  1. La calidad y experiencia del desarrollador.
  2. Presencia de pruebas unitarias y su calidad.
  3. La arquitectura del sistema, el desarrollo se ajusta al principio sólido.
  4. ¿El desarrollo cumple con los requisitos?

Y la lista sigue y sigue …

El software es un modelo muy complejo y no puede haber una respuesta difícil a su pregunta.

Los errores pueden variar en complejidad e impacto. También depende de lo buenos que sean los desarrolladores.

Cuantificar un número es difícil.

Además, a menudo vale la pena cuando un buen probador puede simplificar las condiciones que desencadenan el error, así como crear un proceso paso a paso para reproducir el error. Los desarrolladores odian cuando no pueden reproducir el error. Con un buen informe de error, a veces el desarrollador tarda menos tiempo en corregirlo que en escribirlo.

A modo de analogía, compare dos porteros: un jugador deja muchos goles por partido en comparación con el otro jugador. ¿Quien es mejor? No puede determinar esto porque depende de los compañeros del equipo. Si mantienen la pelota en la mitad opuesta del campo, entonces el portero no tiene mucho que hacer. Pero si el balón está en el extremo del campo del portero, verá mucha más acción.

Depende de muchos factores, por ejemplo, si estoy haciendo pruebas manuales en la interfaz de usuario de un sitio web inmaduro, puedo encontrar fácilmente 30 o más errores en un día, “fruta baja”, podría decirse.

Si estoy probando una aplicación utilizando técnicas de recuadro blanco que ha existido por un tiempo (léase: se han encontrado y resuelto todos los defectos obvios), puede llevarme uno o tres días encontrar incluso los defectos más pequeños.

Intente no trabajar en empresas que juzguen la calidad relativa de los probadores de software únicamente por la cantidad de defectos que encuentren.

La calidad de los errores se prefiere más que la cantidad de errores.

More Interesting

¿Qué significa que una empresa de software no tenga un puesto de arquitecto de software?

Como profesional en la industria del software, ¿qué tan efectivo cree usted que son los cursos completos en línea? ¿Los empleadores los toman en serio?

¿Cómo son perjudiciales los patrones de diseño de programación?

¿Cuáles son los mejores marcos de backend y por qué?

Tengo un descanso de verano de 3 meses. Durante este tiempo, quiero aprender la estructura de datos y los algoritmos para poder manejar entrevistas técnicas y también obtener una buena clasificación en la programación competitiva. ¿Cómo debo prepararme para alcanzar mis metas?

¿Cuáles son algunos problemas que tienen los hackatones actuales? O más bien, ¿cuáles son algunas cosas que podrían mejorarse?

¿Cuáles son los problemas abiertos en la estimación del esfuerzo de desarrollo de software? ¿Qué métodos se practican actualmente en las empresas con el fin de estimar el esfuerzo? ¿En qué se diferencia la estimación ágil de otros enfoques de estimación tradicionales?

¿Ves el sindicalismo artesanal en la ingeniería de software?

¿Cómo son los horarios para los ingenieros de empresas como Google o Facebook?

¿Cuál fue el camino de aprendizaje para los desarrolladores web autodidactas? ¿Cuánto tiempo te llevó conseguir ese trabajo soñado?

¿Cuál es la expectativa para un nuevo ingeniero de software graduado en compañías como Google, Facebook, Amazon, Microsoft?

Cómo comenzar a escribir software como freelance

Según los conceptos de OOP, ¿cuál es la diferencia entre Fruit fruit1 = new Berry (); y Berry fruit1 = new Berry ()?

¿Cuál es la principal diferencia entre el modelo incremental y el modelo RAD en las pruebas de software?

Estoy teniendo una entrevista para el puesto de Ingeniero de Software Embebido. Como más fresco, ¿cómo debo prepararme para ello?