Pregunta

La empresa para la que trabajo actualmente está utilizando Selenio para Uniting: probar nuestra interfaz de usuario.¿Qué utiliza para realizar pruebas unitarias de su interfaz de usuario web y qué tan efectiva la encuentra?

¿Fue útil?

Solución

Usamos Watin en mi lugar de trabajo, somos una tienda .net, por lo que esta solución tenía mucho sentido.De hecho, comenzamos con Watir (la implementación original de Ruby) y luego cambiamos.Ha sido una solución bastante buena para nosotros hasta ahora.

Otros consejos

Soy un gran admirador de Selenium.Decir "probar unitariamente su interfaz de usuario web" no es exactamente exacto, como lo han mencionado algunos de los comentarios.Sin embargo, encuentro que Selenium es increíblemente útil para realizar ese tipo de pruebas de aceptación y cordura en la interfaz de usuario.

Una buena forma de comenzar es utilizar Selenium IDE como parte de su desarrollo.Es decir, simplemente tenga el IDE abierto mientras desarrolla y escriba su prueba a medida que avanza para reducir el tiempo de desarrollo.(En lugar de tener que pasar manualmente por la interfaz de usuario para llegar al punto en el que puedas probar cualquier cosa en la que estés trabajando, simplemente presiona un botón y Selenium IDE se encargará de eso por ti.¡Es un fantástico ahorro de tiempo!)

La mayoría de mis escenarios de casos de uso principales tienen pruebas de Selenium RC para respaldarlos.Realmente no se pueden considerar pruebas unitarias similares a un marco xUnit, pero son pruebas dirigidas a una funcionalidad muy específica.Son rápidos de escribir (especialmente si implementa métodos comunes para cosas como iniciar sesión o configurar sus casos de prueba), rápidos de ejecutar y brindan un circuito de retroalimentación muy estrecho.En ese sentido, las pruebas de Selenium RC son muy similar a pruebas unitarias.

Creo que, como cualquier otra cosa, si te esfuerzas en aprender adecuadamente una herramienta de prueba (por ejemplo, Selenium), tu esfuerzo dará sus frutos con creces.Menciona que su empresa ya utiliza Selenium para realizar pruebas de interfaz de usuario.Esto es genial.Trabaja con ello.Si encuentra que Selenium es difícil de usar o confuso, continúe con él.La curva de aprendizaje realmente no es tan pronunciada una vez que aprendes un poco la API.

Si estoy trabajando en una aplicación web, es raro que escriba una cantidad significativa de código sin pruebas de Selenium RC que lo respalden.Así de efectivo encuentro el selenio.:) (Espero que eso responda a tu pregunta...)

Bueno, si has diseñado tu aplicación correctamente, de todos modos no tendrás mucha lógica dentro de la interfaz de usuario.Tiene mucho más sentido separar el trabajo real que se realiza en unidades separadas de la interfaz de usuario y luego probarlas.

Si hace eso, entonces el único código en la interfaz de usuario será el código que invoque el backend, por lo que simplemente probar el backend es suficiente.

He usado NUnit ASP en el pasado (en mi trabajo), y si insiste en realizar pruebas unitarias de su interfaz de usuario, le recomiendo encarecidamente que use CUALQUIER COSA menos NUnit ASP.Es complicado trabajar con él y las pruebas tienden a invalidarse (es necesario revisarlas) incluso después de los cambios más pequeños en la interfaz de usuario (incluso si los sujetos de las pruebas en realidad no cambian).

Estamos utilizando QuickTestPro.Hasta ahora es eficaz, pero la selección del navegador es limitada.La mejor parte es la capacidad de registrar la actividad de su navegador y convertirla en un conjunto de pasos programables.También hay un buen complemento .Net, por lo que si tiene algún código de validación que necesita para las diferentes etapas de su prueba, puede escribir métodos en un ensamblado y llamarlos desde su script.

Usamos Visual Studio 2008 Tester Edition.

Ventajas:Muy bueno para capturar la interacción del usuario.

Captura llamadas Ajax

Es muy fácil asignar la entrada del usuario a una base de datos, un archivo XML o CSV.

La prueba capturada se puede convertir a C# para tener más control.

Se pueden utilizar las mismas pruebas para pruebas de carga y cobertura de código.

Contras:

VS2008 Tester Edition es un SKU separado de la Developer Edition normal, lo que significa un costo adicional

Puede que seas alérgico a Microsoft ;-)

Lo hemos utilizado de manera muy efectiva en proyectos; sin embargo, implica mucho esfuerzo mantener las pruebas actualizadas; cada vez que cambia una pantalla, es posible que sea necesario volver a grabar la prueba.

Tendemos a que las pruebas sean breves y precisas, hacemos una cosa y salimos en lugar de registrar 10 minutos de clics en una sola prueba.

Tenemos algunos tipos de pruebas de UI estándar:

Prueba de menú: Inicie sesión como un usuario específico (o tipo/rol de usuario) y asegúrese de que todos los elementos del menú requeridos estén disponibles

Prueba de validación: Abra una página y haga clic en guardar sin ingresar ningún dato, asegúrese de que aparezcan todas las advertencias de validación.Complete los campos obligatorios uno a la vez y verifique que los mensajes de advertencia desaparezcan cuando deberían hacerlo.

Prueba de búsqueda: Busque utilizando datos de su base de datos o un archivo de datos y asegúrese de que la búsqueda devuelva los datos correctos.

Prueba de entrada de datos: Cree nuevos registros a partir de un archivo de datos, limpie la base de datos para permitir que las pruebas se ejecuten varias veces

Las pruebas de UI requieren bastante tiempo, pero la sensación de comodidad que se obtiene cuando se pasan unos cientos de pruebas antes de lanzar una nueva versión no tiene precio.

hemos estado usando Unidad JS por un tiempo para hacer pruebas unitarias...Puede que no sean los mismos tipos de pruebas de las que estás hablando, pero son excelentes para garantizar que tu JavaScript funcione como esperas.

Lo ejecuta en el navegador y se puede configurar en una compilación Ant para que se ejecute automáticamente en varios navegadores en varias plataformas de forma remota (para que pueda asegurarse de que su código sea compatible con todos los navegadores y que la lógica sea correcta). ).

No creo que reemplace al Selenium, pero lo complementa bien.

Usamos Selenium Core, pero estamos cambiando gradualmente a Selenium RC, que es mucho mejor y más fácil de administrar.Hemos escrito mucho código personalizado para que las pruebas se ejecuten en nuestros servidores de Integración Continua, algunos de ellos en suites paralelas para ejecutarse más rápido.

Una cosa que encontrará es que Selenium parece reiniciar el navegador para cada prueba (puede configurarlo para que no haga esto, pero tuvimos problemas de memoria cuando lo hicimos).Esto puede ser lento en Firefox, pero no es tan malo en IE (una vez estoy agradecido por la integración del sistema operativo de Bill Gates).

he usado agua, lo cual es bastante bueno.Me gustó porque es Ruby y permite probar la interactividad, los elementos disponibles y el análisis del código fuente.Hace tiempo que no lo uso pero supongo que ha mejorado.

Supuestamente se está trasladando a Firefox y Safari, pero eso lleva sucediendo desde hace un tiempo.

Verificar Prueba web de Canoo.Es de código abierto y está construido sobre el marco ANT.

Pasé algún tiempo trabajando con él para un curso de posgrado sobre control de calidad de software y parece ser una herramienta de prueba bastante poderosa.

Rejilla de selenio Puede ejecutar sus pruebas web en varias máquinas en paralelo, lo que puede acelerar el proceso de prueba web.

Yo uso principalmente Prueba cúbica, que es un complemento de eclipse que te permite definir pruebas gráficamente.Puede exportar/ejecutar pruebas a través de varias bibliotecas, incluidas Watir y Selenium.Sin embargo, la mayoría de la gente simplemente usa el corredor Selenium.

La divulgación completa:Soy uno de los desarrolladores, así que soy algo parcial :)

Échale un vistazo más de cerca aquí: cúbicatest.openqa.org

-Erlend

Selenium es para pruebas de integración, no para pruebas unitarias.Es una diferencia sutil, pero importante.El uso que suelo ver es para comprobar la cordura de una compilación.es decir, tener una prueba que inicie sesión, una prueba que (por ejemplo) envíe una historia, haga un comentario, etc.

La idea es que esté probando para ver si todo el sistema funciona en conjunto antes de la implementación, en lugar de que un usuario descubra que su sitio no funciona.

Actualmente utilizamos seda4j - un enfoque centrado en Java para probar la interfaz de usuario web.Puede probar Flash, Flex, AIR, Silver Light, Win32, HTML y algunas otras aplicaciones.

Dado que Silk4J puede controlar aplicaciones Win32, puede controlar los cuadros de diálogo del navegador directamente, lo cual es un paso por encima de lo que Selenium puede controlar y es especialmente útil para las indicaciones de descarga.

Usamos WatiN para pruebas del sistema, y Unidad Q para pruebas unitarias de JavaScript.

Molibdeno está construido sobre Selenium y tiene algunas características adicionales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top