2010-02-20 13 views
6

Si está en mi posición, tiene una gran aplicación de WebForms que se ha escalado a esta situación inasequible. Las cosas se rompen cuando agrega nuevas funciones y necesita una forma económica y fácil de mantener para realizar algún tipo de prueba automatizada.Prueba de aplicaciones webforms de ASP.NET

Ahora, desde mi entendimiento, lo correcto sería intentar crear un diseño de abstracción de la página y el modelo de control de usuario presente en ASP.NET WebForms, ya que requeriría una gran inversión en una aplicación existente no es una opción.

Estoy intentando y presionando por un desarrollo similar al REST tanto como sea posible porque tiene algunas buenas propiedades. Y al hacer esto, escribí un sencillo bot de araña que rastrea todas las URL que puede encontrar e intenta, simplemente obtenerlas. Esto me permitió encontrar rápidamente los datos incorrectos que causaban problemas y evitar que mis usuarios finales hicieran clic en cosas rotas, sin embargo, esto por supuesto no es suficiente.

Continué trabajando en mi rastreador y se desarrolló en un cliente REST simple que prueba diferentes combinaciones de entradas, buscando un posible error o bloqueo. Es más inteligente que solo una búsqueda exhaustiva (porque conoce la capa de aplicación ASP.NET WebForms) y mi objetivo aquí es básicamente explorar el estado de la aplicación web, con la esperanza de llegar a todos los casos de esquina antes que a nuestros usuarios.

¿Alguien tiene alguna experiencia haciendo algo similar?

Además, para usted gurus de prueba por ahí. ¿Es esto una completa pérdida de tiempo, o seré capaz de decir algo sobre la calidad aquí? Desde mi punto de vista, parece alcanzar un punto positivo en el sentido de que probará las cosas que un posible usuario final haría a través de un navegador.

Como dije antes, estamos atrapados en un mal lugar. Y necesitamos una forma simple de salir de eso, ahora mismo.

Hemos probado cosas como Selenium, pero requiere mucho trabajo extra y cambiamos las cosas todo el tiempo, simplemente no es posible mantener múltiples trajes de prueba de selenio para 50 aplicaciones diferentes.

Respuesta

4

De todos los tipos de pruebas para implementar, las pruebas unitarias son tanto las más fáciles como las más probables de obtener resultados, en términos de menos errores y más código de mantenimiento. Consigue que funcionó antes de ocuparse de las pruebas de integración automatizada

  1. elegir una de contenedores COI - Me gusta Ninject para este personal
  2. encontrar un lugar conveniente para inyectar clases "servicio" en su página (la consturctor de una base Clase de página o anulación del módulo que carga páginas, lo que sea que funcione para usted)
  3. Elija un marco de prueba de unidades y, si no tiene una compilación automatizada, configure una; incluye ejecutar un conjunto completo de pruebas unitarias en esa compilación
  4. Cada vez que te acercas a una pieza lógica en un aspx.archivo cs, vea si no puede aislarlo en un servicio y envuelva las pruebas de unidad alrededor de él
  5. Observe si el MVP Pattern sería bueno para usted - encontramos que disminuyó la productividad tanto como aumentó la capacidad de prueba (lo hizo tanto mucho), pero funciona para algunas personas
  6. Ver lentamente sobre la migración de su aplicación a MVC, a page at a time if necessary

Y recuerde, no se va a solucionar este problema durante la noche, usted no tiene tiempo . Simplemente siga mejorando la cobertura de prueba y verá los beneficios a lo largo del tiempo.

+0

Gracias por su respuesta, ¿ha tenido alguna experiencia con MEF? ¿Podría comentar sobre las diferencias? –

+0

No, lo siento, no lo he hecho. Comercialmente, no me gusta tocar los productos de MS [Creo que requiere .NET 4?] Hasta que se lanzan y se prueban, no se corrigen y se vuelven a probar :) – pdr

+0

La vista previa de MEF actual no requiere .Net 4. –

1

¿Qué parte de su solicitud se rompe? ¿La interfaz de usuario o la lógica de negocios?

La lógica empresarial debe estar completamente separada de la interfaz de usuario, y debe probarse por separado. En particular, es mucho más fácil usar herramientas de prueba unitarias automatizadas contra la lógica empresarial separada que contra la IU.

+0

Sí, pero imaginemos un mundo en el que estamos cosas no se hacen por el libro, y no se han hecho durante mucho tiempo. E incluso si lo hubiera sido, el trabajo de plomería que impulsa los valores a la capa de negocios también podría tener errores. Mi interfaz para probar es HTTP/REST, que es la única capa de abstracción que es confiable. Esto se ha convertido prácticamente en una operación de rescate. –

0

Si lo soy, tiene un formulario web grande y quiere ejecutar algunas pruebas estándar de usuario final cada vez que hace una nueva versión.

Puedo recomendar el Selenium IDE adon for firefox.

le permitirá registrar sus acciones de usuario, por ejemplo, completar un formulario y permitirle reproducir esas acciones en cualquier momento. una forma fácil de ejecutar algunas pruebas en un formulario con diferentes datos.

Para las pruebas de código interno escribir algunas pruebas unitarias utilizando NUnit

+0

podría por favor proporcionar enlace a selenium ide adon una vez más? La página ya no existe – harry180

+1

He actualizado el enlace. – TheAlbear

Cuestiones relacionadas