El pasado 3 de noviembre asistí al meetup del grupo Valencia Software Craftsmanship, y en está ocasión el título fué “Estrategia de automatización de aplicaciones de escritorio legadas”, donde, entre otros, se trataron temas tan importantes como los motivos de automatizar, cuándo debemos hacerlo y cómo hacerlo. Además también tuvimos la ocasión de ver un caso práctico en el que se mostraba una herramienta que nos puede ayudar en este tipo de tareas.

Si eres de Valencia, y no conoces el grupo de Valencia Software Craftsmanship, puedes verlo aquí, te recomiendo asistir a los próximos encuentros, donde seguro aprenderás cosas nuevas. En esta ocasión, el tema principal fué la automatización de pruebas, y en este artículo paso a resumiros lo que allí nos enseñó Jorge Capel, que fué el autor de la charla.

Importancia de un software libre de errores

Sobre este tema cada vez tenemos más información, pero igual que ocurre con las buenas prácticas de programación, nunca está de más recordarlo. Y es que, en una sociedad donde está tan extendido el uso del software para acciones tanto cotidianas, como por ejemplo, apps móviles para hacer listas de la compra, hasta llegar a complejos sistemas de seguridad, como software utilizado por vehículos aeronáuticos, no se puede obviar que un simple error causará un impacto que va, desde el económico, al dejar de utilizar la app del primer ejemplo y por lo tanto perder ingresos para la compañía desarrolladora, como poner en riesgo la vida de personas, en el ejemplo posterior.

Teniendo claro que, como programadores, tenemos una responsabilidad, al menos con nuestro cliente, y en mayor medida, con los usuarios que vayan a hacer uso de nuestro software, es vital presentar un producto libre de errores, y para conseguirlo, las pruebas deben empezar en las etapas más tempranas del desarrollo

Ventajas y desventajas de automatizar las pruebas de software

Además de lo dicho anteriormente, y teniendo en cuenta que debemos entregar a nuestros clientes/usuarios el producto lo antes posible, es importante cualquier práctica que nos ayude, obviamente sin perder calidad, a reducir el tiempo de desarrollo, donde deben ir incluidas las pruebas que verifiquen su buen funcionamiento acorde a los requisitos solicitados.

Ventajas de la automatización de las pruebas de software

De las ventajas expuestas, destacaría:

  • Menor tiempo de testing manual: Que por lo general, tendrá una mayor duración, y por lo tanto, conseguiremos esa mejora en el tiempo de entrega del producto.
  • Incremento de la calidad del software: Al poder realizar pruebas que de forma manual no sería posible o aumentarían en exceso el tiempo de entrega.
  • Aumento de la confianza: Como desarrolladores, la entrega de software de calidad mejorará la confianza de nuestros clientes y usuarios para futuros proyectos.

Desventajas de la automatización de las pruebas de software

Por desgracia, existen proyectos de automatización que fallan, y entre otros, es debido a las desventajas que presentan este tipo de pruebas

  • Curva de aprendizaje: En la mayoría de casos en los que nos presentamos ante una nueva tarea, la falta de aprendizaje nos llevará a cometer error que entrarán en conflicto con las ventajas presentadas anteriormente.
  • Necesidad de mayor tiempo y presupuesto: Y es que, aunque está demostrado que ese incremento de tiempo y presupuesto, es compensado a largo plazo, al entregar un software libre de errores, en los primeros proyectos puede que esa falta de tiempo y de presupuesto nos lleve a no realizar las pruebas correctamente.

 

En el próximo artículo sobre automatización de pruebas os contaré lo que allí se habló sobre cuándo se debe automatizar y por dónde empezar a hacerlo.