El impacto que generan las pruebas inadecuadas de software
Cuando se desarrolla software es erróneo pensar que las pruebas deben dejarse hasta el final para determinar el funcionamiento correcto y calidad del producto. Los errores de software no se limitan a aparecer únicamente en la fase de desarrollo sino también en el levantamiento de requerimientos, análisis, diseño e implementación. Y desde luego, mientras más tiempo transcurra hasta que se detecte el error más costoso será solucionarlo.
El mal diseño de un sistema, la falta de estándares y procedimientos, aunado a la poca importancia que las empresas le dan al testeo de sus productos desemboca en la generación de software defectuoso. Tal parece que la industria se encuentra muy relajada al respecto.
En la presente entrada no pretendo explicar estándares y metodologías para llevar a cabo pruebas de software, (Si bien se mencionarán) sino destacar la poca importancia que se le da a dichas prácticas y por lo tanto el impacto que generan.
Luis Vinicio León, director general de e-Quality , empresa especializada en pruebas de software, menciona que en nuestro país, la gran mayoría de las veces son los programadores quienes realizan las pruebas en lugar de que lo haga un equipo de testers a quienes se les pague únicamente por ello. Resulta irónico ser juez y parte al mismo tiempo, más sin embargo así se trabaja, es una realidad.
En el peor de los casos tales pruebas ni siquiera llegan a hacerse y al programador le basta con que su aplicación compile y que el usuario final funja como tester.
Estas malas prácticas, en conjunto, siempre concluyen en contingencias en las organizaciones, problemas de operatividad, fiabilidad y desde luego en desconfianza por parte del cliente para con la herramienta de software.
Quienes nos encontramos trabajando en la industria de T.I. seguramente podríamos listar varias situaciones que hemos presenciado a causa de fallos en los sistemas y por lo tanto hemos tenido que involucrarnos en la solución del problema, asegurar que no vuelva a ocurrir y en tratar de calmar y explicar a los usuarios lo ocurrido (Que resulta una de las cuestiones más difíciles) ya que siempre que un error de software sale a la luz y afecta la operatividad e información de la empresa, representa un costo para el negocio, significa tener que recapturar datos, repetir procesos, etc., lo cual estresa a todos.
Existen casos muy sonados a nivel mundial donde los errores y fallos en los sistemas han sido protagonistas:
-En 1985 un equipo médico llamado
Therac-25 a causa de un error de software emitió radiaciones letales a los
pacientes matando al menos a tres personas mientras que otras más quedaron
heridas.
-En 1998 la onda espacial
Mars Climate Orbiter que fue enviada a Marte para recolectar información y
transmitirla a la Tierra, una vez que arribó a dicho planeta se perdió
comunicación con el satélite ya que se destruyó. Posteriormente se concluyó que
tal inconveniente se debió a un problema de compatibilidad entre las unidades
de medida utilizadas en el software.
-En 2003 una parte de Estados
Unidos y Canadá se quedaron sin electricidad por más de 7 horas y en algunos
lugares hasta por días. La causa del apagón fue una falla en el software de
alarma del control de energía.
-En 2014 uno de los bancos de
Escocia fue multado con 56 millones de libras esterlinas luego de que por un
error de sistema se bloquearan las cuentas bancarias de al menos 6 millones y
medio de clientes.
Estados Unidos informó en el año 2015, en la encuesta Statista que el 43% de los errores en la información es a causa de software mal probado; inclusive en años anteriores reportó que la pérdida del 1% (60 mil millones de dólares) del PIB se debió a la mala calidad de los sistemas utilizados.
¿Cómo lograr entregar al cliente un software de calidad?
Los datos anteriores demuestran la forma en que llegan a impactar las malas o nulas pruebas de software; por lo tanto es de suma importancia que desde el inicio del proyecto, es decir, desde que se hace el análisis y el levantamiento de los primeros requerimientos con los usuarios, se establezca un proceso de pruebas y se adopte durante todo el ciclo. Desde luego es preferible que un tester lleve a cabo tal tarea y que no sea visto como villano sino todo lo contrario.
El estándar internacional ISTQB (International Software Testing Qualifications Board) establece una serie de principios que pueden aplicarse para llevar a cabo pruebas de software, las cuales menciono a continuación:
- Las pruebas demuestran la presencia de errores: Llevar a cabo testing y no identificar errores no significa que tu código esté libre de ello.
- No es posible probar todo el desarrollo: Resulta complicado hacer pruebas integrales de todas las opciones y procesos del sistema, puede haber miles de condiciones; en su lugar priorízalas y ve probando en orden de riesgo e importancia.
- Comienza con el testing cuanto antes: Si las pruebas se hacen desde las etapas más tempranas será más fácil y barato corregirlas y así te aseguras de que no se irán “arrastrando” a otras etapas.
- Los errores siempre se agrupan: Una vez que detectes algún detalle en tu código es seguro que enseguida de éste haya otro ¡Revisa con minuciosidad!
- La paradoja del pesticida: Si ejecutas siempre las mismas pruebas de software disminuirás únicamente aquellos bugs para los cuales fue hecha la solución pero dejarás intactos aquellos que tu método no es capaz de detectar. Entre más variabilidad mejor.
- La prueba depende del contexto en el que se aplica: Ningún desarrollo es igual a otro, por lo tanto no te empeñes en generar el mismo testeo de una aplicación para móviles en un desarrollo de escritorio.
- ¿Asumes que tu software está libre de errores? ¡Cuidado!: El hecho de que tus usuarios estén satisfechos con el funcionamiento y estabilidad del sistema no significa que ya no haya ningún error oculto por ahí. Todos los desarrollos los tienen y de momento tendrás más tiempo para identificarlos.
“La calidad de un producto de software
depende de la calidad del proceso que lo
genera.”
depende de la calidad del proceso que lo
genera.”
Watts Humphrey.
Hasta la próxima entrada, saludos.
Imágenes tomadas de freepik.com