Causas fundamentales de los errores de software: encontradas en producción

¿Dónde se originan los defectos de software?

Los defectos en el software son inevitables. Una percepción errónea común es que los defectos son causados únicamente por un código defectuoso, pero esto NO es así. De hecho, más defectos son causados por requisitos deficientes, arquitectura deficiente o diseño deficiente (colectivamente) que por un código deficiente.

Por lo general, el concepto de defecto o error se considera “no conformidad con los requisitos” y, sin embargo, si los requisitos son incorrectos, ¿podríamos tener un error de todos modos? ¡Sí! Un error o defecto es la imposibilidad de alcanzar el resultado deseado. Si el resultado deseado está mal descrito (es decir, requisitos deficientes), todavía tenemos un error, incluso si el código hace exactamente lo que describe el requisito específico.

Necesitamos pensar de manera más integral sobre la calidad y cómo satisfacer los objetivos o resultados.

Entonces, ¿cuáles son las causas fundamentales de los errores de software y por qué debería importarnos?

Al investigar las causas fundamentales de los errores de software, dónde y cuándo aparecen primero, podemos establecer mejores formas de evitarlos en el futuro. Nuestro objetivo es encontrar y solucionar los problemas lo antes posible, para que los usuarios no los experimenten.

Es interesante observar en el gráfico anterior que más defectos provienen del trabajo de precodificación que de la codificación en sí. Es decir, la suma de los defectos de requisitos, arquitectura y diseño es mayor que los defectos de codificación. Dado que el código se basa en los tres anteriores, terminaremos codificando algo incorrecto o de manera incorrecta a menos que solucionemos esos defectos de precodificación primero.

Potencial de defecto

El potencial de defecto es el número probable de defectos generados y latentes dentro de cada artefacto. Por ejemplo, si pasamos un día escribiendo requisitos, es inevitable que cometamos algunos errores. Entonces podemos decir que existe un potencial de defecto según el tamaño de los requisitos. El uso de una métrica universal para el tamaño (el punto de función) nos permite comparar potenciales de defectos entre diferentes artefactos.

Si comprende los posibles defectos, puede dar el siguiente paso y considerar los pasos necesarios para detectar esos defectos, eliminarlos y luego verificar que se hayan eliminado.

Orígenes de los defectos

Origen del defecto (defectos por punto de función) Mejor Promedio El peor
Requisitos 0.34 0.70 (16.5%) 1.35
Arquitectura y Diseño 0.67 1.05 (25%) 1.78
Código 0.44 1.15 (27%) 2.63
Fallos de seguridad 0.18 0.25 (6%) 0.4
Documentos 0.20 0.45  (10.5%) 0.54
Malas soluciones 0.39 0.65 (15%) 1.26
Total 2.22 4.25 7.96

Medido en defectos por punto de función para un sistema de 1000 FP. Fuente: pág. 256. Capers Jones, Software de cuantificación, 2018 CRC Press.

Deberíamos comenzar con la premisa de que un equipo que desarrolla software no hará un trabajo perfecto, pero puede hacer un trabajo excelente. Sin embargo, en promedio, harán un trabajo promedio. Y con cualquier trabajo de conocimiento, los errores aparecerán. Es muy útil considerar la idea del potencial de defecto. El potencial de defectos es la idea de que es probable que una determinada pieza de software tenga una cantidad probable de defectos a menos y hasta que esos defectos se eliminen. Los potenciales de defecto varían según el tamaño. Eso significa que una aplicación grande tiene una mayor tendencia a tener errores que una pequeña.

Lograr una mejor calidad

El aspecto del desarrollo de software que consume más tiempo es encontrar y corregir errores.

En proyectos ágiles podemos ver hasta 40% de esfuerzo general en retrabajos causados principalmente por la mala calidad del trabajo de precodificación. La mayor parte de este esfuerzo desperdiciado se puede evitar prestando más atención a la calidad desde el principio, antes de que comience la codificación. Todo lo que se pueda hacer para evitar errores debe tomarse en serio. Evitar y prevenir defectos requiere proactividad.

Para comprender completamente cómo podemos acelerar el camino hacia una gran calidad, debemos considerar todo lo siguiente:

  • Potenciales de defectos
  • Descubrimiento de defectos
  • Evitación de defectos
  • Eliminación de defectos

Estos deben considerarse en el contexto de, al menos, los requisitos, el diseño, el código y las pruebas. En otras palabras, empezando por los requisitos:

  • ¿Cuál es el defecto de requisitos? potencial?
  • ¿Cómo lo haremos? descubrir los requisitos defectos?
  • como podemos evitar los requisitos defectos?
  • y como podemos eliminar los requisitos defectos?

Repita las mismas preguntas para diseño, código y pruebas.  Descubra cómo ScopeMaster puede encontrar posibles defectos en los requisitos para poder solucionarlos fácilmente.

ScopeMaster le ayudará prevenir errores, asegurándose de que sus requisitos sean de alta calidad.

Los errores de producción de hasta 35% se deben a requisitos deficientes

En enero de 2021 Accenture reconoció en el Foro de inteligencia de software que tantos como 35% de defectos de producción son causados por problemas de requisitos., según sus datos basados en 1000 proyectos. Lo que esto significa es que en la mayoría de los proyectos, el trabajo de control de calidad de los requisitos está fallando. Otros problemas de requisitos se encuentran entre los más costosos de solucionar una vez que se ha iniciado la codificación. Encontrar formas de solucionar los problemas de requisitos se puede lograr mediante una combinación de educación, tiempo, atención a la calidad y automatización. Aquí es donde ScopeMaster puede ayudar, ScopeMaster puede encontrar de manera confiable 50% de problemas de requisitosy ayudarle a solucionarlos rápidamente también. En general, utilizar ScopeMaster le ayuda a encontrar y solucionar problemas diez veces más rápido que intentar hacer lo mismo manualmente.

Para detectar posibles defectos en los requisitos, debemos examinarlos con gran detalle. Afortunadamente, el trabajo pesado lo hace ahora ScopeMaster, la primera y más avanzada herramienta de análisis de requisitos de software del mundo.

Informe de calidad de requisitos de ScopeMaster

Requisitos elevados La calidad es clave para minimizar los defectos del software

ScopeMaster evalúa la calidad de sus requisitos.