¿Recursos para el desarrollo basado en pruebas en aplicaciones web? [cerrado]

15

Me gustaría probar e implementar algunos TDD en nuestras aplicaciones web para reducir las regresiones y mejorar la calidad del lanzamiento, pero no estoy convencido de cuán bien pueden realizarse las pruebas automatizadas con algo tan esponjoso como las aplicaciones web.

He leído y probado TDD y pruebas unitarias, pero los ejemplos son funcionalidades 'sólidas' y bastante simples como convertidores de divisas, etc.

¿Hay algún recurso que pueda ayudar con la prueba unitaria de gestión de contenido y sistemas de publicación? ¿Qué hay de la unidad de prueba de un carrito de compras / tienda (productos físicos y en línea)? AJAX?

Buscar en Google "Desarrollo impulsado por pruebas web" solo me trae artículos antiguos de hace varios años, ya sea que cubren los mismos ejemplos de función similar a una calculadora o discusiones sobre por qué TDD es mejor que nada (sin ningún ejemplo).

HorusKol
fuente
1
Las herramientas disponibles dependerán del idioma. ¿Qué idioma (s) estás usando?
Alb
Me doy cuenta de eso, pero estaba buscando más artículos de discusión y ensayos en lugar de herramientas específicas. Sé qué herramientas están disponibles, pero me gustaría saber cuál es la mejor manera de usarlas para aplicaciones de front-end.
HorusKol

Respuestas:

2

Gran descargo de responsabilidad: no he creado ninguna aplicación web ni he probado ninguna aplicación web. Los siguientes son solo fragmentos de información que he absorbido en mis caminatas aleatorias dentro de la esfera de la información.

Construya su aplicación web de tal manera que pueda probar las reglas comerciales de forma aislada. Si se encuentra probando las reglas de negocio a través de la interfaz de usuario, entonces podría ser el momento de pensar en rediseñar.

Cuando se trata de probar la interfaz de usuario, reemplace las reglas de su negocio con implementaciones simuladas que respondan de manera predecible.

Las dos reglas anteriores se tomaron de la charla de Bob Martin en RailsConf 2010 . La charla no es sobre TDD y la sección donde menciona las pruebas es corta y en algún punto intermedio.

Existen herramientas como JsUnit , JSSpec , YUI Test para probar JavaScript y Selenium y Watir para probar la interfaz de usuario.

La estantería pragmático tiene un par de libros que cubren las pruebas de aplicaciones web. Una lista de libros etiquetados con Testing está en http://www.pragprog.com/categories/design . Los libros de prueba de la aplicación web Pragmatic Bookshelf se centran principalmente en Ruby y Rails, pero deberían ser genéricamente aplicables.

Anthony calambre
fuente
Un problema importante con el diseño web es la prueba de CSS: una nueva regla de CSS puede tener consecuencias no deseadas, pero solo en una página con contenido específico ... ¿Puede probar eso?
HorusKol
Buena pregunta. Sugeriría que esto es parte de su prueba de IU. Desarrolla sus pruebas para incluir los diversos contenidos de página que espera (y algunos que no espera) y escribe sus aceptaciones de manera adecuada. Luego, cuando introduce nuevas reglas CSS, su prueba de IU debe resaltar cualquier regresión. Es posible que este proceso requiera demasiado tiempo y que pueda recibir un mejor servicio simplemente haciendo que alguien haga pruebas de control de calidad en el sitio e informe problemas.
Anthony Cramp
3

Test-Driven JavaScript Development es un muy buen libro de Christian Johansen, el desarrollador detrás de Sinon.js y Buster.js , que cubre temas como (tomado del sitio web):

  • Comprender las pruebas unitarias y TDD
  • Elegir el marco de prueba de unidad correcto
  • Creación de API más limpias, JavaScript modularizado y robusto
  • Mejora continua del código mediante refactorización
  • Cinco sesiones prácticas de TDD: Ajax, manipulación DOM, Node.js y más
  • Visita guiada de prueba a JavaScript para desarrolladores que no están familiarizados con el lenguaje

Actualmente usamos Sinon.js con Mocha, pero estamos listos para cambiar a Buster.js, ¡ya que sus características son realmente buenas!

nuc
fuente
1

En un proyecto en el que trabajé recientemente, el desarrollador principal decidió usar Unity para simplificar la burla y el TDD en una aplicación web grande. Creo que el uso de Unity a menudo irá acompañado de que TDD es una aplicación web.

Es probable que la investigación de las pruebas unitarias de CMS conduzca a un callejón sin salida porque simplemente no hay nada razonable de lo que burlarse. No veo qué se puede probar sin burlarse del tráfico http a las páginas, y en ese momento la prueba tiene poco valor.

Creo que una regla práctica útil con las aplicaciones web es que si puede usar un simulacro para reducir la complejidad, entonces probablemente pueda ser probado por la unidad.

Por lo tanto, en una aplicación web puede burlarse de su base de datos para probar diferentes partes de su capa o modelo de acceso a datos; puede burlarse de la entrada del usuario para probar la vista de la interfaz de usuario o la interfaz de usuario, etc.

amelvin
fuente
0

He escrito un libro sobre TDD para desarrollo web con Python + Django. Cubre TDD, tanto con pruebas de extremo a extremo / funcionales (selenio) y pruebas de "unidad" de nivel inferior. También cubro prácticas modernas de desarrollo como cómo integrar git en su flujo de trabajo, cómo implementar en un servidor y automatizar y probar eso, integración continua, simulacros y aislamiento de prueba, y mucho más:

http://www.obeythetestinggoat.com/

(o http://shop.oreilly.com/product/0636920051091.do )

hwjp
fuente
El enlace está roto
Keldon Alleyne