07. Conociendo el Testing Funcional
Anteriormente en nuestro blog hablamos sobre los servicios de Testing y los diferentes tipos de pruebas que se ejecutan, con una breve descripción de cada una de ellas.
Ahora llega el momento de comenzar a “escarbar” un poco más y comenzaremos por adentrarnos en el Testing Funcional, que por lo general es el primero que se aprende. El requisito fundamental para capacitarse en Testing Funcional reside en la habilidad de poseer un pensamiento crítico y analítico.
¿Qué es el Testing Funcional?
Se trata de evaluar si el software bajo prueba, considerado como un conjunto de funcionalidades, se comporta de acuerdo con sus especificaciones, si existen, o a lo requerido y esperado. También que las funcionalidades estén disponibles y no se produzcan efectos inesperados o indeseados.
El Testing Funcional se centra en el comportamiento observable del producto de software y se basa en lo que hace el sistema. Se considera el punto de vista del usuario y generalmente, se utiliza un enfoque de “caja negra”.
En este enfoque se trata al sistema como una caja negra, de la que no se conoce ni su contenido ni su estructura interna. Para la ejecución de dichas pruebas, se suministran datos de entrada al sistema, se observa la salida obtenida y se compara con la salida esperada. Si bien no conocemos la estructura interna del sistema, sabemos cómo se espera que se comporte.
Información sobre la calidad
Pasando en limpio, el Testing Funcional brinda información muy valiosa sobre la calidad del software. Conocer el comportamiento del software con entradas y datos similares a los reales facilita la toma de decisiones. Estas decisiones pueden variar desde la viabilidad de liberar una versión del producto al mercado hasta la conveniencia de aceptar la entrega de un proveedor.
Por su naturaleza, el Testing promueve cambios, ya que detecta problemas que hay que resolver. Para que estos cambios se hagan efectivos, es necesario que la estrategia de pruebas fomente la detección y corrección de errores en paralelo, e impulse también cambios a nivel de procesos y gestión del proyecto.
Nuestro método
La metodología de trabajo que desde el Centro de Ensayos de Software aplicamos, organiza los procesos de testing en capas, según sus propósitos, de acuerdo al estándar de testing de software ISO/IEC 29119.
Los procesos dinámicos requieren la ejecución del software bajo prueba, y en esta categoría se encuentran los procesos de pruebas funcionales, los de performance, entre otros. Por otra parte, los procesos de testing estáticos son los que transcurren sin que se ejecute el software bajo prueba, típicamente las inspecciones y revisiones de código.
Sin importar el tipo de prueba, siempre se instancian los procesos de gestión de proyectos con las siguientes etapas.
Antes de comenzar a testear, se identifican los elementos a probar y en base a la complejidad y criticidad de cada uno se define la estrategia de pruebas y las pruebas a ejecutar.
El proceso de pruebas funcionales puede ser instanciado en las pruebas unitarias, de integración, de sistema y de aceptación. Contempla tanto las pruebas funcionales guiadas por casos de prueba como las pruebas exploratorias. Las etapas de este proceso son:
Para diseñar casos de prueba se aplican las técnicas de diseño de casos prueba. Una técnica de diseño de casos de prueba se refiere a un conjunto específico de saberes prácticos y procedimientos utilizados para crear casos de prueba. Cada técnica, a partir de un modelo de la realidad define una estrategia para seleccionar casos de prueba, establece un criterio de cubrimiento y tiene una teoría de errores asociada.
En próximas notas continuaremos conociendo otros tipos de pruebas y familiarizándonos con distintos conceptos que se manejan en testing. Esperamos aquí o en redes tus comentarios y sugerencias si te interesa que escribamos sobre algún tema específico. ¡Nos leemos!