Razones del error en las pruebas automatizadas del lado web
Los fallos iniciales en la automatización de pruebas se deben a expectativas poco realistas. Lo he observado muchas veces en mi carrera que una vez que obtienes control de calidad o personal para la automatización, la gerencia espera que automaticen las pruebas de todo. Por muy agradable que parezca, es imposible. No se pueden realizar pruebas 100% automatizadas porque la verificación manual debe realizarse en algunas áreas. Una de estas áreas puede estar relacionada con la accesibilidad de su aplicación web.
Por ejemplo, si está realizando pruebas automatizadas en varios navegadores, los scripts automatizados para las pruebas de Selenium mostrarán la página web en diferentes navegadores o sistemas operativos. Sin embargo, para determinar si el sitio web se muestra según lo diseñado, si el diseño es apropiado y si el texto es apropiado, es mejor evaluarlo manualmente
Muchas organizaciones se dan cuenta de que se esperan pruebas 100 % automatizadas para las declaraciones de problemas. , pero a menudo encuentro las siguientes preguntas. ¿Qué automatización podemos lograr? Si no el 100%, ¿cuánta automatización podemos lograr realmente para un producto web?
No existe un porcentaje perfecto o una aproximación de la cobertura de pruebas automatizadas que se aplique a todas las empresas. Todo depende de la aplicación web que proporcione y de que diferentes empresas atienden diferentes necesidades. Naturalmente, las personas tendrán expectativas únicas sobre qué porcentaje de pruebas automatizadas pueden lograr realmente. El alcance de las pruebas automatizadas variará desde aplicaciones web de comercio electrónico hasta aplicaciones web estáticas, dinámicas o animadas. Entonces, si se pregunta por qué las pruebas automatizadas están fallando en su organización. Entonces le recomendaría que evalúe la cantidad de pruebas automatizadas necesarias según el tipo de aplicación web que se proporciona.
He sido víctima de mala gestión desde que comencé mi carrera en TI como probador de automatización. Estaba trabajando para una empresa de servicios y me asignaron mi primer proyecto. Este proyecto ha estado funcionando durante dos años y cuando me uní me entregaron una serie de scripts de automatización de pruebas. Los miembros sénior del proyecto están abandonando la organización y la dirección está demasiado ocupada con el próximo sprint como para considerar un curso integral de transferencia de conocimientos para los evaluadores sénior de automatización que se van. ¿La mala escena que pasó después de que se fueron? Mi gerente finalizó la audiencia diciendo que la interrupción nos tomó por sorpresa y que yo era nuevo en el juego y tenía una comprensión mínima de cómo los diversos procesos entrantes y salientes se veían afectados por numerosos scripts automatizados. Sin embargo, he visto equipos en los que algunos miembros eran responsables de automatizarlo, mientras que otros miembros no tenían idea de lo que estaba pasando.
¿Crees que no es realista obtener resultados mágicos a partir de pruebas automatizadas cuando la mitad del equipo carece de visibilidad? Dado que la automatización debe ser un esfuerzo colaborativo, es importante educar a todos los miembros del equipo sobre las herramientas y procesos relevantes, especialmente para los principiantes. Puede lograrlo celebrando reuniones de equipo y conferencias para discutir herramientas, tendencias y prácticas relacionadas con la automatización.
Esto puede sorprenderle, pero otra razón por la que falla la automatización de pruebas puede ser la falta de habilidades de prueba manuales o de pruebas exploratorias. Automatizar los scripts de prueba no significa que los miembros del equipo puedan tomarse un respiro. Ahora sabemos que los métodos automatizados no pueden cubrirlo todo, y ahí es donde radica el desafío. Porque ahora tienes que profundizar en la aplicación web y encontrar escenarios de prueba críticos que tus compañeros de equipo aún no han descubierto.
La automatización es una forma de ahorrar esfuerzo de prueba. Las empresas de software deberían utilizarlo para minimizar la duplicación e intentar automatizar aquellos elementos que no se modifican fácilmente. Una vez completado, las empresas deben asignar sus recursos para realizar pruebas manuales exhaustivas o pruebas exploratorias para encontrar casos de prueba únicos.
La automatización parece ser un objetivo para reducir la carga de trabajo. Pero antes de desarrollar un script de automatización de pruebas, debe pensarlo detenidamente. Además, esto puede llevar mucho tiempo de ejecución de pruebas automatizadas.
La flexibilidad de los marcos y las herramientas de automatización de pruebas juega un papel vital en el tiempo necesario para desarrollar escenarios de script.
Dado que cada situación es diferente, el scripting es necesario. Incluso si lo piensas bien, todo es un desperdicio si no lo escribes. Asegúrese de que las habilidades de codificación del ingeniero de pruebas estén alineadas con la complejidad de las pruebas. Las pruebas complejas requieren mucho tiempo para automatizarse. Entonces, a medida que se desarrollan características completamente nuevas, a menudo no tienen la oportunidad de detectar errores de regresión. Antes de escribir un escenario de prueba, asegúrese de tener en cuenta estas consideraciones.
¿Las razones más comunes detrás de “¿Por qué está fallando la automatización de pruebas en su empresa?”? ” es que la gente no sabe cuándo deben automatizar y cuándo no. Por ejemplo, es posible automatizar diferentes funciones de la página web, pero no es una buena idea automatizar mediante pruebas para evaluar problemas de renderizado como relleno, imágenes, etc. Si se utilizan coordenadas para determinar la posición del elemento, pueden producirse diferencias al ejecutar en diferentes resoluciones y tamaños de pantalla.
El uso de la automatización no es viable cuando se prueban proyectos que son propensos a grandes cantidades de cambios. probar entidades estables es el camino a seguir. Básicamente, las tareas comunes que requieren acciones repetitivas son las más adecuadas para las pruebas automatizadas. Por lo tanto, la automatización de pruebas puede simplificar el proceso de pruebas de regresión. Industria de TI. Se cree que cualquier desarrollador o tester puede realizar la automatización de pruebas. El diseño, configuración e implementación de la automatización de pruebas debe saber articular ideas entre gerentes, desarrolladores y clientes.
Los ingenieros de pruebas de automatización son algunas de las personas más difíciles pero importantes de contratar para iniciar diversos proyectos de automatización. Los probadores con amplios conocimientos técnicos son cruciales. Todo el equipo debe saber lo que está sucediendo, en lugar de que solo una o unas pocas personas realicen pruebas automatizadas. Incluso si la inversión en contratar personal capacitado es alta, la recompensa vale la pena, ya que las pruebas automatizadas son una. Fenómeno relativamente nuevo, las posibilidades de falla son altas y el equipo de pruebas está realizando tantos experimentos nuevos que resulta importante que los evaluadores analicen con precisión los resultados y produzcan informes de prueba detallados. Pero esta es la razón por la que la automatización de pruebas falla. usted! Su equipo no presta suficiente atención al análisis de los informes de prueba, lo que puede provocar fallas desatendidas y pérdida de tiempo, recursos y esfuerzo.
En las pruebas automatizadas, algunas pruebas tienen éxito y otras fallan. por lo que es necesario verificar los informes de prueba en busca de fallas y analizar por qué fallaron algunas pruebas, lo cual es mejor hacerlo manualmente. Descubrir problemas ocultos y asegurarse de que no queden ocultos por otros problemas y se ignoren. p> Las configuraciones que son demasiado altas para ser un objetivo real para la automatización pueden parecer perfectas en el papel. Sin embargo, el mayor problema es la falta de claridad entre los miembros del equipo a la hora de ejecutar los pasos. obtienen valor real de la automatización. Comienzan a automatizar cosas muy complejas y eventualmente refactorizan todo el marco. Como resultado, el equipo termina perdiendo mucho tiempo, dinero y esfuerzo.
Puedes eliminar imprecisiones. comenzando poco a poco y aumentando gradualmente la complejidad. Certeza. Elija una función estable y comience con su automatización. Después de eso, recopile comentarios para determinar qué salió mal. Una vez que las pruebas alcancen la coherencia, podrá pasar a otras funciones. Los requisitos pueden variar para diferentes entornos de proyectos, por lo tanto, utilice un enfoque personalizado para probar la automatización.
Con una gran cantidad de herramientas de automatización disponibles, a veces elegir la mejor se convierte en un desafío. El objetivo final es mejorar el programa de pruebas general y cumplir con los requisitos del mundo real. Pero la mayoría de los equipos no empiezan de nuevo y eligen las herramientas que mejor se adaptan a sus necesidades de prueba. No hay duda de que las pruebas automatizadas dependen en gran medida de la herramienta que decida seguir utilizando.
Cada herramienta tiene funciones específicas. Sin embargo, el equipo carecía del nivel de experiencia necesario para aprovechar al máximo estas capacidades.
Además, las empresas quedan atrapadas en el revuelo en torno a herramientas específicas. Pero después de elegirlo, se dan cuenta de que no ofrece todo lo que esperaban. Además, cada equipo tiene un presupuesto y, en ocasiones, el coste de la herramienta supera el presupuesto. Antes de proceder a seleccionar una herramienta operativa, describa cuidadosamente los requisitos. Después de eso, determine sus expectativas para la herramienta. Sea muy específico al establecer objetivos y verifique que coincidan con los criterios de aceptación del usuario del producto. También puede consultar a un experto que tenga experiencia en el uso de estas herramientas.
Esto se observa frecuentemente en casi todas las organizaciones. Una vez que el conjunto de pruebas automatizadas está listo y funcionando correctamente, la administración comienza a relajarse. Comenzaron a relajar el análisis en profundidad de la ejecución de las pruebas porque creían que sólo las comprobaciones de pasa/falla eran suficientes. ¡Pero esta es la razón por la que la automatización de pruebas hace que fallen!
A veces un sistema es fundamentalmente funcional. Sin embargo, los scripts automatizados no reflejan la misma situación. Afirman lo contrario y conducen a escenarios de falsos positivos. Por tanto, esto crea una situación confusa y desperdicia tiempo, energía y recursos. ¡He visto lo frustrante que puede ser para los equipos de prueba intentar encontrar algo que no existe!
Cada elemento web debe tener un ID para realizar pruebas válidas. Pero a veces, los desarrolladores no logran asignar ID a todos los elementos web y es por eso que falla la automatización de pruebas. En este caso, los scripts automatizados tienen que encontrar estos elementos web, lo que lleva mucho tiempo. Además, si el script no puede encontrar estos elementos dentro del tiempo especificado, la prueba fallará. Por lo tanto, para garantizar una sincronización adecuada de los scripts, el equipo tuvo que asignar ID únicos a todos los elementos web.
Así, todo lo que quieras automatizar finalmente queda automatizado. Terminas con un enorme conjunto de pruebas y recién ahora estás empezando a chocar contra una pared. Estos complejos conjuntos de pruebas tardan más en ejecutarse de lo esperado. Esto comienza a entrar en conflicto con la calidad de la cola de prueba en su respectivo marco de automatización de pruebas IDE. Como resultado, los casos de prueba se detienen repentinamente debido a problemas de tiempo de espera de la cola, todo porque intenta ejecutarlos secuencialmente. La ejecución secuencial de casos de prueba es otra razón por la que falla la automatización de pruebas de aplicaciones web.
A diferencia de la ejecución de pruebas de forma secuencial, la ejecución en paralelo le permite ejecutar múltiples pruebas simultáneamente en diferentes entornos. Pero las pruebas automatizadas pueden provocar interacciones de código inesperadas. Depurar la causa de una falla es difícil, por lo que necesita un mecanismo de informes exhaustivo que proporcione información detallada sobre la ejecución de la prueba.
No importa qué negocio ejecute en línea, el retorno de la inversión estará en la agenda de cada reunión de la junta directiva. Los accionistas exigen mayores retornos. Y no importa cuánto tiempo y esfuerzo dedique a preparar sus conjuntos de automatización de pruebas, si no generan el retorno de la inversión que esperaba, serán de mucha menos importancia de lo que esperaba.
Al calcular el ROI de la automatización de pruebas, puede haber muchas métricas a considerar, como el mantenimiento de las pruebas, el costo involucrado en la compra de las herramientas de automatización de pruebas necesarias, los recursos integrados y más. La planificación de un retorno de la inversión poco realista puede resultar problemática para muchas organizaciones y puede ser el motivo del fracaso de la automatización de pruebas.
Muchas organizaciones dan la impresión de que las pruebas automatizadas son fáciles. Todo lo que necesita hacer es escribir algunas líneas de código para automatizar el flujo de trabajo de prueba de su aplicación web. ¡Eso es todo! No tiene que preocuparse en absoluto por planificar y escribir sus scripts de automatización de pruebas. ¡Pero no lo es!
Es necesario evaluar el efecto dominó. Su aplicación web contendrá muchos scripts de automatización de pruebas diseñados para probar diferentes módulos y procesos. Si un script de prueba no se ejecuta correctamente, otros scripts también pueden provocar fallas en la automatización de pruebas. No sólo eso, sino que también se deben calcular los efectos en cadena a la hora de planificar los recursos.
Supongamos que tiene un recurso senior que solía escribir guiones y ahora dejó la empresa. Es posible que no haya pensado en los efectos dominó que podría tener dejar su trabajo en el cronograma futuro de su proyecto de automatización.
Es por eso que es necesario documentar cada detalle de cada script de prueba automatizado en su sistema. Este documento debería servir como estándar tanto para los probadores de automatización en ciernes como para los probadores de automatización experimentados.
Otro motivo por el que la automatización de pruebas falla en su organización podría ser un conjunto de pruebas inadecuado. Muchos evaluadores de automatización crean conjuntos de pruebas estáticas que no son tan flexibles a medida que escala su negocio. Cada vez que las plataformas evolucionan, terminan reescribiendo todos sus scripts de prueba automatizados. Este es un mal hábito porque estás perdiendo tiempo, recursos y dinero. Además, este es un proceso incorrecto. Asegúrese de escribir conjuntos de pruebas que evolucionen y se adapten a medida que se expande su plataforma.
Otra forma de evitar fallos en la automatización de pruebas es improvisar su conjunto de pruebas. Ahora bien, esto puede parecer obvio, pero no se practica en muchas organizaciones. La razón es que una vez que diseñan un conjunto de pruebas y descubren que funciona, comienzan a automatizar nuevas áreas. No estoy criticando los esfuerzos por complacer o explorar nuevas fronteras hacia la automatización. Sin embargo, no está de más administrar una ventana de tiempo y que usted y su equipo revisen el código existente para encontrar formas de optimizarlo aún más. Experimente siempre con su conjunto de pruebas para mejorar las cosas.
Con la adopción de metodologías modernas SDLC (Ciclo de vida de desarrollo de software), como software ágil, software Kanban, etc. en todo el mundo, la colaboración se ha convertido en un componente clave para implementar aplicaciones web en el mercado con mayor rapidez.
Se trata de un proceso de desarrollo de software multidimensional en el que todos los equipos desarrollan aplicaciones web simultáneamente. Tiene un equipo de desarrolladores que diseñan el front-end, otro que trabaja en el back-end y un equipo responsable de las actividades del middleware. Como evaluador, necesita saber qué equipo es responsable de qué módulo. Debe mantenerse actualizado sobre las mejoras del producto realizadas por diferentes equipos y realizar cambios relevantes en los scripts de automatización para garantizar que la automatización de las pruebas no falle.
El objetivo principal de las pruebas automatizadas es ahorrar tiempo minimizando el estrés que implican las pruebas manuales repetitivas. Esto suena genial desde una perspectiva abstracta, pero aquellos que realizan automatización de pruebas deben tener en cuenta la dificultad de configurar la infraestructura adecuada para realizar la automatización de pruebas interna. A menudo observo a los evaluadores actualizar todo el conjunto de automatización de pruebas antes de ejecutar un nuevo script para evitar cualquier ambigüedad con el script. Pero eso no significa que todo el proceso de pruebas automatizadas falle, ¿verdad?
Por ejemplo, si está realizando pruebas automatizadas en varios navegadores utilizando Selenium Grid interno para probar su sitio web para los sistemas operativos macOS y Windows para los navegadores Google Chrome y Safari. Ahora, es posible que tengas que afrontar la molestia de configurar un nuevo sistema operativo cada vez antes de ejecutar los scripts de Selenium.
Esta es una razón muy común por la que fallan las pruebas automatizadas en las organizaciones. Especialmente cuando se acerca una fecha límite. Su departamento de pruebas continuará ejecutando numerosos conjuntos de pruebas en el mismo entorno de prueba sin borrar el caché de los scripts de automatización de pruebas ejecutados previamente. Esto puede dar lugar a evaluaciones de pruebas erróneas y, a medida que encuentre más falsos negativos y falsos positivos, sus informes de pruebas pueden verse afectados.
Por ejemplo, supongamos que necesita probar su aplicación web para diferentes ubicaciones geográficas. Al realizar la orientación geográfica en un entorno de prueba estático. Es posible que Google pruebe su secuencia de comandos y le solicite que demuestre que no es un robot. Esto hará que falle el script de automatización de pruebas.
Esta es la razón por la que se requiere una nueva máquina virtual con un caché limpio, para que pueda obtener resultados precisos de sus scripts de prueba automatizados en varios navegadores.
Para que la automatización funcione en diferentes entornos de prueba, se requiere mucha planificación. Debe realizar pruebas en un entorno de prueba para asegurarse de que su código funcione perfectamente cuando lo mueva a su proceso de producción. Sin embargo, a menudo sucede que un script de automatización de pruebas para cambios de código se ejecuta sin problemas cuando se prueba en un entorno de escenario, pero cuando se traslada a un entorno de producción, falla.
Puede haber muchas razones detrás de estos problemas, como la falta de monitoreo continuo, el entorno de prueba que no puede crecer en pares con el entorno de producción, la falta de tráfico en tiempo real, etc.
Pero no menos importante. Si hemos cubierto todos los puntos hasta ahora y su automatización de pruebas sigue fallando, el único lugar donde debe reconsiderar es en sus propios scripts de automatización de pruebas. Asegúrese de no enviar ningún error de tiempo de compilación ni de tiempo de ejecución para ningún script de prueba involucrado en todo el proyecto.
Si su organización necesita aumentar la productividad, las pruebas automatizadas son el camino a seguir. Este es uno de los procesos más efectivos necesarios para mejorar la calidad del producto. La automatización de pruebas también mejora la solidez del software. Pero tenga cuidado con la ejecución y la dilación. No se puede correr sin obstáculos porque ninguna empresa puede permitirse el lujo de perder enormes cantidades de dinero. Por otro lado, demasiado miedo puede impedirle aprovechar los importantes beneficios que ofrecen las pruebas automatizadas.
¡Gracias a todos los que leen atentamente mi artículo! ! !
Si los siguientes materiales son útiles, puedes llevarlos directamente:
1. Código fuente completo del proyecto y el entorno necesario para el desarrollo o las pruebas de autoestudio
2. Pruebas de todas las plantillas en funcionamiento (planes de prueba, casos de prueba, informes de prueba, etc.)
3. Preguntas de la entrevista sobre pruebas de software clásicas
4. Práctica de pruebas automatizadas de Python/Java. pdf
5. Obtenga el conjunto completo de videos para las pruebas de interfaz Jmeter/postman
Personalmente he recopilado algunos materiales técnicos que he recopilado durante mi carrera de pruebas de software durante los últimos años. , que incluyen: libros electrónicos, módulos de currículum, diversas plantillas de trabajo, guía de entrevistas, proyectos de autoaprendizaje, etc. Si lo necesitas puedes enviarme un mensaje, gracias