Cuáles son los pilares de la automatización de pruebas

mtp
Por mtp

Las claves para que tengan éxito los proyectos de desarrollo

Los proyectos de automatización de pruebas para un desarrollo software, deben estar basados en tres pilares clave para que puedan tener éxito:

  • 1.- Estrategia de automatización. La estrategia de automatización, debe estar derivada de una adecuada estrategia de pruebas. Elegir “qué, cómo, cuándo, quien, donde, con qué” probar el software es un factor clave para la obtención de resultados rentables.
    Pero habitualmente se piensa que automatizar las pruebas consiste en que un programa realice las mismas comprobaciones que un tester, y en la mayor parte de las ocasiones esto no es cierto.Las pruebas por primera vez de aspectos críticos del software son recomendables que se diseñen y se ejecuten por un tester experto incluso manualmente. También los casos de prueba muy complejos y poco habituales pueden quedar fuera de la automatización. Sin embargo, las pruebas de regresión y las comprobaciones técnicas del software, así como las pruebas de nivel (unitarias, integración y sistema) suelen ser el foco principal para la automatización de pruebas o el uso de herramientas de pruebas cómo las de seguridad, rendimiento, mantenibilidad, portabilidad, fiabilidad.
  • 2.- Enfoque a proyecto de desarrollo. Una automatización consiste en que un programa ejecute varios miles (incluso cientos de miles) de casos de prueba. Si no se aplican las buenas prácticas de codificación y arquitectura software, dicha automatización se volverá inmantenible y el proyecto de automatización crecerá en deuda técnica hasta que el coste de mantenimiento de la automatización no compense los defectos que identifica sobre el software a probar. Un desarrollador experto tiene el conocimiento necesario para realizar el diseño y la arquitectura de la automatización.
  • 3.- Software fácil de probar. Una característica del software habitualmente descuidada, es la “testability” o facilidad de probar un software, es decir, lo barato o caro que es probar un determinado software, tanto manualmente como con automatizaciones. Como se mencionó en otro artículo de este blog (http://www.mtp.esblog/calidad-software/debe-saber-testing-un-desarrollador/) las soluciones técnicas elegidas por los equipos de desarrollo pueden elevar significativamente el coste de las pruebas y, obviamente, de la automatización.

Un proyecto de automatización de pruebas de tamaño medio o alto, debe:

  • planificarse adecuadamente
  • ser realizado por profesionales expertos
  • estar integrado con el software a probar

De lo contrario se producirán incumplimientos de las expectativas y elevación de costes de desarrollo.

Las metodologías de desarrollo como TDD, BDD y ATDD, así como Extreme Programing o propuestas de desarrollo Agile, fomentan el cumplimiento de los tres aspectos descritos, aunque siempre viene bien que el equipo de desarrollo tenga un buen conocimiento del testing.