Pruebas Unitarias de un Sitio Web


Tengo curiosidad por ver cómo otros desarrolladores prueban sus sitios web. PHP específicamente en mi caso, pero esto probablemente abarca varios idiomas. He estado trabajando en un sitio durante más de un año, y realmente me gustaría automatizar muchas de las pruebas de regresión que hago entre versiones.

Este sitio específico está en CodeIgniter, así que tengo algunas pruebas para mis modelos. Sin embargo, me gustaría ir más allá de solo probarlos. Sin embargo, este es un problema que incluso los desarrolladores que no son MVC han tenido que abordar Estoy seguro.

Edit: Creo que la funcionalidad que satisfaría muchos de mis deseos de prueba es la capacidad de afirmar que los parámetros tienen un valor específico al final del procesamiento del script. En mi caso hay mucha lógica en el controlador, y esa es el área principal que me gustaría probar.

Author: imlouisrussell, 2009-02-13

7 answers

Para pruebas unitarias reales sin probar la interfaz de usuario, solo debe probar las funciones en el modelo. La mayor parte de su funcionalidad debe estar allí de todos modos.

Es posible que desee echar un vistazo a Selenium para probar la interfaz de usuario de su sitio. Puede grabar sus acciones y reproducirlas, o puede editar el scripting directamente. texto alternativo http://seleniumhq.org/projects/ide/selenium-ide.gif

 23
Author: ryeguy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-13 19:25:38

¿has probado Fitnesse ?

Ayuda a crear pruebas de aceptación. Son especialmente útiles para sitios web, que hacer este tipo de pruebas son un dolor.

También hay un par de videos de unclebob dentro de la página web. Lo bueno es que Fitnesse no está restringido para las pruebas de sitios web, por lo que su conocimiento sobre su uso se puede utilizar con otras aplicaciones también.

El proyecto en el que estoy trabajando es una APLICACIÓN de escritorio escrita en c++ que utiliza Fitnesse prueba.

Pero si te referías a las pruebas unitarias de los modelos (que creo que no lo hiciste), se pueden crear usando la librería phpunit. Creo que el marco de ZEND tiene una lib similar para eso.

 5
Author: Edison Gustavo Muenz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-13 19:39:11

Quizás te interese echar un vistazo a PHPUnit http://www.phpunit.de/manual/current/en /

He empezado a usarlo en mis proyectos PHP y es muy fácil de trabajar y muy potente. En particular, aprender y usar burlas: http://www.phpunit.de/manual/3.0/en/mock-objects.html

La burla es especialmente importante cuando se realizan pruebas unitarias de aplicaciones que realizan operaciones de bases de datos.

 2
Author: OverloadUT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-13 19:23:12

Echa un vistazo a TOAST. Está construido especialmente para CodeIgniter. Utiliza la infraestructura de CI, por lo que puede ejecutar todas las pruebas de prueba a través de un navegador y los resultados se muestran como una página web (HTML). Es muy simple de usar.

Le sugiero que pruebe sus Controladores también. El modelo de prueba está bien, pero el modelo es solo el almacenamiento de la base de datos. Los controladores contienen toda la "lógica de negocios" y son el lugar donde la mayoría de las cosas salen mal.

 1
Author: Milan Babuškov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-03 17:43:48

Una de las mejores ideas de las que he oído hablar, en cuanto a probar aplicaciones web, fue crear un script que repasara todas las páginas del sitio y las revisara en busca de diferencias con respecto al análisis anterior, permitiéndote aceptar cambios y corregir regresiones.

En términos generales, las pruebas automáticas de aplicaciones GUI (los sitios web son aplicaciones GUI) son difíciles y generalmente innecesarias. Las pruebas unitarias funcionan mejor con bibliotecas simples.

 0
Author: Michał Tatarynowicz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-13 19:30:01

Uso Canoo WebTest. Es el mejor marco de prueba de unidad de sitio web gratuito que existe. Es totalmente scriptable con XML y no requiere navegador para que pueda ejecutarse desde un servidor de compilación.

 0
Author: Otávio Décio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-13 19:34:10

Modificamos Waiter (Ruby). Reproduce " scripts "de URLs y Relleno de Formularios a IE y hemos agregado un script" comando "para tomar una Captura de Pantalla; la imagen de captura de pantalla se compara con una Imagen Conocida (es decir, una Imagen Maestra) y si esa imagen es diferente se registra (básicamente se prepara una página Web de tales resultados) y" un humano " hace una revisión de la imagen Maestra / de Prueba. Obviamente, hay dos resultados en ese punto: "La diferencia es intencional" o " Hay un resultado incorrecto cambio". En la primera instancia la imagen Maestra se reemplaza con la Nueva Imagen; en la segunda vamos a corregir el error, y el cambio se incluirá en la próxima prueba

 0
Author: Kristen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-13 19:34:43