automatización de pruebas unitarias de códigos

Post on 19-Jan-2016

16 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Ing. Leonardo Torres Argomedo

Pruebas unitarias de códigos PHP

Las pruebas unitarias de softwarepermiten evitar errores a granescala que con el paso del tiemporequieren mayor inversión para sucorrección. Sin embargo a veces losframeworks de apoyo disponiblespara realizar estas pruebas no sonsuficientes por sí solos y necesitanser automatizados.

Aquí se presenta el desarrollo deuna estrategia de diseño para laautomatización de pruebasunitarias de códigos PHPutilizando el framework PHPUnit.

Las pruebas unitarias de softwarepermiten evaluar por separado elcorrecto funcionamiento de loscódigos que lo componen. En laactualidad, existen diferentessoluciones que permiten desarrollarlas pruebas unitarias, pero carecende facilidad en su manejo, lo queconlleva a que el programadordesista de su uso. Por lo anterior esnecesario contar con uncomponente intermedio que permitala comunicación con dichas libreríaso frameworks de una manerasencilla, rápida y eficaz.

La siguiente estrategia de diseño permite llevar a cabola automatización de pruebas unitarias para archivosde código escritos en el lenguaje PHP a través de unmódulo web que es desarrollado a su vez en dicholenguaje.

Existen dos enfoques principales para el diseño depruebas unitarias. Un enfoque de caja blancaorientado a la estructura del código y otro enfoque decaja negra orientado al correcto funcionamiento deéste a partir del análisis de entradas y salidas queposee y verificando que el resultado es el esperado.

ESTÁNDAR DE CODIFICACIÓN DISEÑADO Un estándar de codificación es un

conjunto de reglas que se utilizan paraescribir archivos de código fuente con elobjetivo de lograr estructuras de códigomucho más comprensibles e identificablespara otros programadores diferentes alautor.

Para realizar la correcta automatización depruebas unitarias para códigos PHP sedetermina que es necesario proponer unestándar de codificación que permitageneralizar la estructura de los códigos aser probados ya que ésta dependedirectamente de las reglas de desarrollode cada ambiente y desarrollador.

Estándar de codificación PHP

ESTRATEGIA DE DISEÑO DEPRUEBAS La estrategia se fomenta en un

procedimiento dividido en pasos bajolos cuales el desarrollador o encargadode pruebas podrá seleccionar susarchivos de código PHP o módulos declase, archivos que contienen funcionesque ejecutan tareas específicasentregando resultados a partir de unaserie de posibles entradas de datos.

La prueba unitaria busca responder silas funciones que componen el códigocumplen o no con el comportamientoesperado. A través de esta estrategia deautomatización el proceso seráautomatizado y se apoyará en elframework de pruebas unitariasPHPUnit.

La estrategia de diseño se compone de los pasos que se detallan a continuación.

PASO 1: Seleccionar Módulos de Clase:

Un módulo de clase es launidad de código máspequeña a la cual puederealizarse una pruebaunitaria. Se seleccionarán deuno en uno los archivos deeste tipo para llevar a cabo laejecución de las pruebas.

PASO 2: Validar estándar de codificación:

Después de realizar la selección de los módulos declase PHP comienza un ciclo iterativo por cada uno delos archivos de código PHP seleccionados. El archivopasa por una validación del estándar de codificaciónpropuesto.

PASO 3: Identificar tipos de parámetros:

Después de validar el estándar de codificación delarchivo seleccionado, se detectan las funciones ométodos que lo componen y por cada parámetro decada función o método se identifica el tipo deparámetro. Los tipos de parámetros seleccionadosserán almacenados en memoria para su posteriormanejo.

PASO 4: Identificar Asserts: Luego de identificar los tiposde parámetros de las funciones se identifican los posiblesasserts a partir de estos. Un assert es la salida o resultadoesperado de cierta entrada en la función o método aprobar. En PHPUnit son una colección de métodosestáticos para verificar los valores actuales con los valoresesperados.

PASO 5: Generar casos de Prueba:

Se genera o diseña una clase con los casos de prueba delarchivo PHP a partir del uso de la librería PHPUnit y sucomponente PHPUnit Framework TestCase. Con estecomponente es posible diseñar y ejecutar diferentes casosde prueba a partir de la lista de entradas generada en elpaso anterior.

PASO 6: Ejecutar la Prueba con PHPUnit:

Se ejecuta la prueba mediante el Framework depruebas PHPUnit. Se valida e inspeccionan losarchivos de casos de prueba definidos, verificando quese han contemplado todas las pruebas necesarias, queno existen pruebas duplicadas o implícitas en otras yque el tiempo estimado no sobrepasa la fecha límite deejecución.

PASO 7: Preparar Resultados:

Por cada una de las pruebas ejecutadas se produce un logde resultados. Dicho log indicará: Número de pruebas: Elnúmero de pruebas que han sido llevadas a cabo mediantela invocación de PHPUnit y los archivos de casos de pruebaen PHP.

Número de aciertos: Es el número de resultados esperadosa partir de los datos de entrada ingresados después de unaejecución de prueba mediante PHPUnit.

Número de fallos: Es el número de resultados no esperadosa partir de los datos de entrada ingresados después de unaejecución de prueba mediante PHPUnit.

top related