Buscar
  • k19jao

Porqué realizar Testing en Proyectos de Software ?

Los antedecentes empíricos y estadísticos apoyan la justificación del Testing en el proceso de desarrollo de software.



La realidad empírica:

Hay altas exigencias de los clientes para implementar en producción el software que adquieren, tanto en tiempo, en forma y con la calidad requerida, más no siempre definida.


Actualmente el software es gran parte de las actividades diarias de las personas y pueden llegar a manejar desde grandes sumas de dinero hasta vidas de personas. Desde que nos levantamos hasta que nos acostamos estamos en continua relación con aplicaciones software ya sea mientras miramos televisión, compramos en el supermercado, hablamos por teléfono, etc…


Sin embargo, los desarrolladores son seres humanos y como tales (es parte de nuestra esencia) cometemos errores, esto hace que los responsables de vender lo que ellos codifican inviertan lo suficiente para poder mitigar y reducir los riesgos del software que están vendiendo para que el mismo este en condiciones de salir a producción con la menor cantidad posible de fallas.

Al mismo tiempo, las empresas pierden credibilidad, confianza y clientes al producir software con fallas, por lo que los lleva a implementar procesos de pruebas cada vez más rigurosos para reducirlos al máximo.

Este punto es complicado demostrarlo estadísticamente en forma genérica (ya que cada empresa tendrá su propia historia estadística en cuanto a fallas antes y después de incorporar el testing en su proceso de desarrollo de software), pero, la literatura y la experiencia nos indica que los desarrolladores que trabajan dentro de una empresa con un proceso de desarrollo Tradicional o Ágl, acarrarean al menos un 20% a 30% de fallas al momento de finalziar la construcción de sus componentes y comenzar su integración, por lo que si ese software (sin testing) saliera a producción, sería un impacto muy fuerte para la empresa que lo implemente. Este porcentaje puede variar dependiendo de variables como:

  • Independencia del equipo de testing: mientras más independiente sea, el equipo de desarrollo menos se preocupará por la calidad de su código ya que sabe que luego viene una etapa de testing que detectará sus fallas.

  • Madurez del proceso de desarrollo: cuan aceitado esta el proceso de desarrollo para que se implementen en forma precisa las distintas tareas de desarrollo como detección de requerimientos, elección de tecnologías, lineamientos de desarrollo, pruebas unitarias, etc…

  • Experiencia del equipo de desarrollo: La experiencia que tenga el equipo de desarrollo en la metodología de desarrollo, en la implementación de la tecnología y los lineamientos de desarrollo.

  • Contexto: Relacionado con la comodidad, facilidades, infraestructura que tenga el equipo de desarrollo para poder llevar a cabo sus tareas en forma eficiente.

En cuanto a las perdidas de las empresas, se pueden observar ejemplos de casos de fallas en producción que han costado millones en perdidas para clientes y juicios para los proveedores de software.



0 vistas

RDS, Aurora, PostgresSQL, MS SQL Server, Oracle, MySQL, MariaDB​

AWS