PDF de programación - Testing con PHP

Imágen de pdf Testing con PHP

Testing con PHPgráfica de visualizaciones

Publicado el 23 de Octubre del 2018
1.511 visualizaciones desde el 23 de Octubre del 2018
578,2 KB
117 paginas
Creado hace 1a (07/05/2018)
Tabla de contenido

1. Introduction 1.1
2. Agradecimientos 1.2
3. Capítulo 1. Introducción 1.3
4. Capítulo 2. Primer acercamiento a tests 1.4
5. Capítulo 3. Ejemplos de distintos frameworks 1.5
6. Capítulo 4. Aislamiento de tests e interacción con datos 1.6
7. Capítulo 5. Testeando bases de datos 1.7
8. Capítulo 6. Test dobles 1.8
9. Capítulo 7. TDD 1.9
10. Capítulo 8. BDD 1.10
11. Capítulo 9. Codeception: Solución todo en uno 1.11
12. Capítulo 10. Testeando APIs 1.12
13. Capítulo 11. Integración continua 1.13
14. Capítulo 12. Test de proyectos existentes 1.14
15. Capítulo 13. Más Tests 1.15
16. Conclusiones 1.16
17. Bibliografía 1.17

1

Introduction

Introduction

En los últimos años el lenguaje de programación PHP ha experimentado una profesionalización por
parte de la industria, debido principalmente, a que algunas de las empresas más importantes de
internet como Facebook.com están desarrolladas en este lenguaje. Una de las partes del desarrollo en
PHP que más crecimiento ha experimentado ha sido la forma de testear el código, y las distintas
herramientas y metodologías que se han adaptado al ecosistema PHP. Este proyecto trata de presentar
dichas herramientas, las alternativas y los problemas que se encuentran normalmente proyectos PHP.

En nuestra opinión, los acontecimientos que han revolucionado la comunidad PHP han sido un
conjunto de herramientas, buenas prácticas y standards, los cuales han propiciado una comprensión
unánime hacia tener probado un proyecto PHP, como prueba de ello podemos ver al estudiar el código
de cualquier proyecto PHP en http://github.com. La comunidad detrás de PHP-FIG[1] está motivando
a que los desarrollos en PHP sigan estándares que faciliten la modularización y reutilización de dichos
componentes[2]. Bajo esta premisa de poder compartir código es necesario que el comportamiento de
dichos componentes sea predecible y estable, y para ello la comunicad desarrolla testing[3] en las
distintas fases del proyecto, y en distintos capas de abstracción del desarrollo (unitarios, funcionales,
de integración o de aceptación).

Para ello existen herramientas como PHPUnit[4] y phpspec[5] que facilitan la tarea del testo. Los
principales frameworks de la comunidad PHP como pueden ser Symfony, Laravel o Yii tienden ha
implementar este tipo de estrategias, tal y como podemos ver en las separación de componentes
independientes de estas librerías.

Este proyecto trata de documentar, analizar y contrastar las distintas metodologías y herramientas que
han surgido en los últimos años para testear aplicaciones y desarrollos web en PHP, a través de
ejemplos prácticos cuando sea posible.

2

Agradecimientos

Agradecimientos

Este proyecto no hubiera sido posible sin el apoyo que he recibido de muchas personas, a las que se lo
quiero agradecer:

A mi hijo de un año Saúl y a su madre, mi chica, Mari Carmen, por apoyarme en todo
incondicionalmente.

A mi toda familia. En especial a mis padres y hermana, por la paciencia que han tenido en
darme la formación y la educación que he recibido. Tengo que dar gracias por el cariño que
recibí durante todo el tiempo que estudié en Málaga, las facilidades que tuve, los buenos
consejos, y la insistencia porque finalizara mis estudios.

A mis compañeros de estudios. Sin ellos no hubiera podido disfrutar y padecer de todos los
momentos que viví estudiando la ingeniería. A los hermanos Sergio y Javier Jimenez Gonzalez,
a Jaime Gálvez Cordero, Emilio Lucena, Juan Antonio Morales, etc...

A mis amigos y compañeros de viaje universitario. Aquellos que compartían conmigo cada
mañana el autobús o el coche desde Torre del Mar a la escuela en Teatinos. De las
conversaciones que mantuvimos aprendí parte de lo que me enseñó la universidad.

Quiero dar las gracias a todos los profesores, docentes, investigadores y resto de personal
universitario. Sin ellos no sentiría lo que siento ahora por las ciencias de la computación, y no
podría trabajar en algo que me gusta, divierte e ilusiona. En especial quiero agradecer a
Francisco Villatoro. Siempre ha estado disponible para ser mi director de proyecto, además de
realizar una gran labor de divulgación científica.

A mis compañeros de trabajo. En especial a los de las dos empresas a las que he trabajado más
tiempo, Salir.com y Trovit SL. Algunos de los compañeros de trabajo a los que quiero
agradecer especialmente son: Jordi Salvat, Diego Campoy, Sergi de Pablos, Xose Pérez, Raül
Perez, Gorka Lopez, Issel Guberna, Carlos Falo, etc, etc.

3

Capítulo 1. Introducción

Capítulo 1. Introducción
Introducción
1.1 Introducción al proyecto

En los últimos años el lenguaje de programación PHP ha experimentado una evolución por parte de la
industria, debido principalmente, a que algunas de las empresas más importantes de internet como
Facebook.com están desarrolladas en este lenguaje.

Una de las partes del desarrollo en PHP que más crecimiento ha experimentado ha sido la forma de
realizar pruebas automáticas del código y las distintas herramientas y metodologías que se han
adaptado en ecosistema PHP. En este proyecto vamos a trata de presentar dichas herramientas, las
alternativas y los problemas que podemos encontrarnos normalmente al desarrollar y especialmente
testear proyectos PHP.

En nuestra opinión, los acontecimientos que han revolucionado la comunidad PHP han sido la
adopción de un conjunto de herramientas, buenas prácticas y estándares por parte de desarrolladores y
empresas. De este conjunto de herramientas y estándares la comunidad a comprendido los beneficios
de tener testeado un proyecto PHP. Como prueba de ello podemos ver al estudiar el código de
cualquier proyecto PHP alojado en GitHub, que la mayor parte tiene un gran conjunto de pruebas
automáticas en sus respectivos repositorios.

La comunidad detrás de PHP-FIG está motivando a que los desarrollos de PHP sigan estándares que
faciliten la modularización y reutilización componentes. Bajo esta premisa de poder compartir código
es necesario que el comportamiento de dichos componentes sea predecible y estable. Para ello la
comunicad desarrolla tests en las distintas fases del proyecto y a distintos niveles (unitarios,
funcionales, de integración o de aceptación).

En este PFC intentaremos dar visibilidad a las distintas herramientas, centrándonos especialmente a
las que están publicadas bajo licencias de código abierto. También estudiaremos las distintas
metodologías que podemos realizar cuando hablamos de testo automático.

Realizar pruebas automáticas no es lo mismo que adquirir los conocimientos de programación
necesarios, pero tanto en la vida profesional, como en la académica o comunitaria (nos referimos a
comunidades de software), entregar con un código de mayor calidad es mejor para todos. Con este
PFC hemos intentado aportar algo de conocimiento sobre este area, a riesgo de que esté cubierto en la
actualidad.

1.2 Contenido de la memoria

Capítulo 1 "Introducción". Es el capítulo actual, en el que damos una pequeña introducción y
objetivos del proyecto.

Capítulo 2 "Primer acercamiento a tests". En este capítulo definiremos algunos conceptos
relacionados con el testeo, identificaremos los distintos tipos de tests y comentaremos algunas
proyectos como Git y Composer, que son dependencia para entender el resto de ecosistema
relacionado a desarrollo en PHP.

Capítulo 3 "Ejemplos de distintos frameworks". Este capítulo lo dedicaremos como

4

Capítulo 1. Introducción

introducción práctica para testeo. Para ello crearemos unos tests sencillos con PHPUnit y
Atoum para una clase de manipulación de cadenas de texto.

Capítulo 4 "Aislamiento de tests e interacción con datos". Es este capítulo expondremos la
importancia de testear en una situación controlada y estudiaremos diferentes herramientas
especializadas en crear datos de entradas para testear.

Capítulo 5 "Testeando bases de datos". En este capítulo explicaremos los problemas que
existen al testear código con dependencia de una base de datos. Veremos un ejemplo para
documentar la forma en la que se podría testear códigos con este tipo de dependencias.

Capítulo 6 "Test dobles". En este capítulo analizaremos el problema que existe al testear con
dependencias y analizaremos distintas formas de resolver ese problema, así como distintas
alternativas a herramientas que ayudar a este efecto.

Capítulo 7 "TDD". En este capítulo estudiaremos la metodología de desarrollo guiado por los
tests. Estudiaremos los distintos pasos de la metodología a través de un ejemplo y veremos una
herramienta para desarrollar : Phpspec.

Capítulo 8 "BDD" Este capítulo está dedicado a estudiar el desarrollo guiado por
comportamiento (behavior-driven development), así como la principal librería dedicada de PHP
para ello: Behat. Veremos como utilizar Behat con un ejemplo como test de aceptación, aunque
expondremos las bases para usarlo como herramienta de BDD. Al final del capítulo veremos
ligeramente dos alternativas a Behat, Pho y Peridot.

Capítulo 9 "Codeception: Solución todo en uno". En el capítulo 9 estudiaremos una
herramienta para testeo en PHP con capacidad de generar los tres principales tipos de tests,
unitarios, de integración ty de aceptación. Veremos algunas diferencias entre otras alternativas y
la forma de uso para un ejemplo como test de aceptación.

Capítulo 10 "Testeando API". En este capítulo veremos como testear la API pública de un
servicio online, Flickr.com, siguiendo las dos alternativas a las que podemos optar: mockear o
conexión. Veremos los problemas y ventajas al optar una u otra alternativa.

Capítulo 11 "Integración continua". En este capítulo explicaremos el concepto de la
integración continua. Además desarrollaremos dos ejemplos para ilustrar el proceso de
integración continua, utilizando Jenkins y Travis CI.

Capítulo 12 "Test de proyectos existentes". En este capítulo veremos una herramienta,
Humbug, para análisis de test de otros proyectos. Estudiaremos los resultados de esta
herramienta so
  • Links de descarga
http://lwp-l.com/pdf14009

Comentarios de: Testing con PHP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad