Algo de Testing Automatizado

Posted on 1 mayo 2008. Filed under: Calidad del Software, Metodologías de Desarrollo, Procesos Ágile, Pruebas Unitarias |

Objetivos del Testing Automatizado

  • Tests deben mejorar la calidad
  • Tests deben ayudarnos a entender el sistema bajo pruebas
  • Tests deben reducir riesgos
  • Tests deben requerir mantenimiento mínimo al mismo nivel que el sistema involucrado
  • Tests deben ser ejecutados como parte del proceso de construcción
  • Tests deben ser fácil de ejecutar

Tipos básicos de Testing donde se puede automatizar

  • Testing Unitario a nivel del código
  • Testing de aceptación de productos/servicios (pruebas del cliente)
  • Testing de interfaces a nivel de prototipos y luego a nivel de integración o preintegración

Que tener en cuenta para iniciarse en los Procesos Automatizados de Pruebas

¿Cuales son los objetivos de nuestro Testing Automatizado?  Estos deben estar alineados con todos los objetivos de Calidad.
Algunos factores que afectarían a nuestros objetivos:

  • Deseamos automatizar las pruebas regresivas?
  • Deseamos realizar Integración Continua en nuestro Proceso de Desarrollo?
  • Estamos buscando resolver un ítem específico de Aseguramiento de Calidad?

Comencemos a Organizarnos

Elegir una estrategia

Escojamos un Tipo Básico de Testing al que nos queremos aproximar con la automatización.
Debería ser una combinación de aproximaciones basadas en:

  • Objetivos
  • Tipo de sistema que queremos probar:
    • Testabilidad: Definir la capacidad del sistema a soportar automatización de pruebas
    • Nivel de automatización actual: Si la base es cero podría ser el peor escenario
  • ¿Podemos modificar el Proceso de Desarrollo y los Requisitos del Sistema para lograr una aproximación al nuevo Ciclo de Vida que exigen las pruebas automatizadas?
  • ¿Con solo la automatización de pruebas resolvemos algún problema o debemos tener en cuenta otros ítemes?
  • Seleccionemos un tipo de Testing Automatizado: Unitario, Integración, Requerimientos, etc.
Seleccionemos las herramientas basándonos en
  • Estrategia seleccionada
  • Orientación del Testing Automatizado (Aceptación del Cliente, de Componente, GUI)
  • ¿Open Source o Comercial?
  • ¿La aplicación seleccionada se adapta a nuestra aplicación o debemos hacer adaptaciones de la aplicación a la herramienta?
  • Definamos cuales son nuestros costos
Puntos para facilitar el mantenimiento
  • Definamos las expectativas de la Gestión de las Pruebas
  • Definamos los estándares o patterns para implementar las pruebas automáticas

Por ejemplo usemos Palabra Clave como patrón que puede utilizarse para reducir los costos de mantenimiento al utilizar la interfaz de usuario basada en la automatización. Algunos de los enfoques de benefician directamente con el trabajo de control de calidad.

El enfoque que realizamos afectan las acciones

  • Los desarrolladores serán responsables de crear y mantener las Unidades de Pruebas Automatizadas, aunque puede ayudar a QA y su criterio será fundamental
  • SQA puede crear los otros tres tipos de pruebas automatizadas, como siempre lo mejor es integrar directamente en el proceso de desarrollo
  • Debemos asegurarnos de que el Testing Automatizado es realmente parte del proceso y se complementa con el Testing No Automatizado
Revisemos el Plan de Pruebas Automatizadas

En todos los casos se debe hacer revisiones de la efectividad del proceso y buscar la forma de mejorarlo. Las siguientes cuestiones podrían ayudarnos:

  • ¿Son lentas las automatizaciones?
  • ¿Son difíciles de mantener?
  • ¿Disminuyen la velocidad del Proceso de Desarrollo?
  • ¿Son eficaces en el logro de nuestros objetivos de calidad?

Estas pruebas tienen como principales objetivos comprobar que el código se comporta de la manera esperada y prevenir la aparición de errores inesperados al modificar o refactorizar el código. También, en algunos casos como en el desarrollo dirigido por pruebas, las pruebas unitarias ayudan a obtener el diseño del código. Las ventajas de realizar este tipo de pruebas son: código más depurado, mayor seguridad a la hora de refactorizar y mayor velocidad de desarrollo, aparte de obtener código de mayor calidad asegurando que nada se ha roto cuando cambiamos la lógica interna del software.

Actualmente las pruebas unitarias se desarrollan con herramientas tipo jUnit [3] y objetos mock [4]. Las herramientas tipo jUnit se aplican para comprobar que el estado de un objeto, los valores retornados por los métodos, excepciones lanzadas, etc, son los esperados. Los objetos ficticios o mocks, en cambio, permiten aislar el código a probar de las dependencias con otras clases colaboradoras mediante el desarrollo de clases ficticias que simulan el comportamiento de estas clases colaboradoras. Esto permite centrar la prueba sólo en el código que se desea probar.

Aquí introduzco conceptos de Testing Driven Development (TDD) tomados de un blog amigo WebTrun:

SlideShare | View | Upload your own

Una respuesta to “Algo de Testing Automatizado”

RSS Feed for CBASQA – Desarrollo de Software, SQA, Testing, Servicios Informáticos, Project Management Comments RSS Feed

Estimado Javo, estoy en la actividad del testing y necesito saber si conoces algún software que permita realizar pruebas (funcionales) automatizadas de websites: open source y aranceladas. Muchas gracias y muy buena la info que has subido.


Los comentarios están cerrados.

Liked it here?
Why not try sites on the blogroll...

A %d blogueros les gusta esto: