miércoles, 21 de junio de 2017

Pruebas de Nivel 2

En el mundo de las pruebas de software existen muchas maneras de clasificar o agrupar los tipos de pruebas, ya que el ámbito o destino de las mismas puede variar. Una de las maneras de realizar dicha clasificación es por Niveles, entonces ¿Que son las pruebas por nivel?, ¿De qué se tratan?


Lo primero que debemos saber es que las Pruebas de Nivel son un grupo de actividades de pruebas que están organizadas y gestionadas conjuntamente. Un nivel de pruebas siempre está conectado a las distintas etapas del proceso de desarrollo.

Existen 3 niveles: 

Nivel 1 - Pruebas Unitarias (Un módulo único): Verifican el funcionamiento aislado de piezas de software que pueden ser probadas de forma separada.

Nivel 2 - Pruebas de Integración (Un Grupo de módulos): Verifican la interacción entre componentes del sistema de software.

Nivel 3 - Pruebas de Sistemas (Un sistema complejo): Verifican el comportamiento del sistema en su conjunto. 


Elaborado por: Lili Ayala


Ahondar en el nivel dos de pruebas es la finalidad de este artículo por lo que detallemos un poco más sobre el mismo.

Las pruebas de integración se basan típicamente en el diseño del sistema, la arquitectura, los flujos de trabajo, los casos de uso, los esquemas de la base de datos y los flujos de datos, si se realizaran pruebas basadas en los riesgos se utilizarían adicionalmente los riesgos de calidad para guiar las pruebas.

Dichas pruebas pueden incluir varios tipos de pruebas (Ej. Funcionalidad, utilización de recursos, rendimiento, etc.). Estas pueden incluir las pruebas estructurales como los flujos de llamadas y los flujos de datos.

El ítem sometido a prueba es una colección de unidades (o componentes) a menudo referida como una “construcción”. Estas construcciones pueden incluir una implementación de la base de datos de un subsistema, una infraestructura, interfaces, una configuración del sistema y datos de configuración. La selección de las unidades o los componentes, para que sean incluidos una construcción, es influenciada por el hecho de que las pruebas de integración consisten en probar las interfaces entre los componentes, las interacciones con diferentes partes de un sistema (como el sistema operativo, el sistema de archivos y el hardware), y las interfaces entre las unidades, componentes o sistemas.

Al igual que las pruebas unitarias o componente, las pruebas de integración requieren con frecuencia arneses y herramientas, debido a que las construcciones no son siempre independientes y comprobables. Estos arneses pueden actuar en el nivel de la interfaz de programación de aplicaciones (API). También pueden estar en el nivel de la interfaz de línea de comandos. A veces, si estamos probando en la interfaz de usuario, las herramientas de interfaz gráfica de usuario son útiles, pero eso es algo raro. Hay herramientas tanto gratuitas como comerciales necesarias para las pruebas de integración.

Existen principalmente dos tipos de integración: La integración incremental y la no incremental. La integración incremental consiste en combinar el conjunto de módulos ya probados (al principio será un conjunto vacío) con los siguientes módulos a probar. Luego se va incrementando progresivamente el número de módulos unidos hasta que se forma el sistema completo. En la integración no incremental o Big Bang se combinan todos los módulos de una vez. 

Para ambos tipos de integración se deberán preparar los datos de prueba junto con los resultados esperados. Esta tarea debe ser realizada por personas ajenas a la programación de los módulos. No es necesario que la lleven a cabo una vez codificados los módulos puesto que basta con conocer qué módulos compondrán el sistema y cuál será la interfaz entre ellos.

En cuanto a quien es el responsable, tanto los probadores como los programadores colaboran idealmente. Desafortunadamente, a menudo nadie es responsable. Los probadores nos siempre tienen las habilidades técnicas necesarias para diseñas y ejecutar las pruebas de integración, y a los programadores no siempre se les da el tiempo y la indicación para ayudar. Esto da lugar a muchas dificultades durante las primeras semanas de las pruebas del sistema, debido a que la primera parte del periodo de ejecución de la prueba del sistema se convierte de hecho en una prueba de integración big-bang (Tipo de prueba de integración en el que los elementos software, elementos hardware o ambos son combinados de forma simultánea en un componente o un sistema global en lugar de hacerlo por fases.).

Finalmente, las pruebas de integración son particularmente complejas, ejemplo de ello podrían ser los sistemas que han sido desarrollados por diferentes organizaciones e incluso en diferentes periodos de tiempo, con tecnologías e interfaces diferentes y tal vez no completamente compatibles, lo cual hace que los cambios en los sistemas sean al mismo tiempo más peligrosos. 

Por situaciones como la antes expuesta, es de vital importancia contemplar las pruebas de nivel dos al momento de plantearse la estrategia de pruebas para los proyectos de desarrollo de software, muchas veces son omitidas o no se les da la relevancia que tienen por la utopía o el peso que tienen las pruebas de sistemas.

Referencias externas:

· Descarga del Syllabus del ISTQB (2011, International Software Testing Qualification Boards).

Autor:
Amlivledif Rivero
QA Technical Expert
ISTQB® Certified Tester, Foundation Level