¿Qué son las pruebas automatizadas?

¿Quieres aprender a realizar pruebas automatizadas pero no sabes cómo empezar? No importa. Te guiaremos a través de los fundamentos y de todo el proceso de pruebas automatizadas.
En este artículo, veremos qué son las pruebas automatizadas, cómo funcionan, cuándo utilizarlas y por qué son importantes. Además, conocerás algunas de las herramientas de pruebas automatizadas más populares. Puedes elegir cualquiera de estas herramientas de aprendizaje, dependiendo de tus habilidades y de los requisitos del proyecto.
Si ya tienes unos conocimientos básicos de las pruebas automatizadas y quieres saltar directamente a los tutoriales de las herramientas, haz clic en Herramientas de pruebas automatizadas.
Índice
- ¿Qué es la automatización?
- ¿Qué son las pruebas automatizadas?
- ¿Qué automatizar?
- Casos de prueba que requieren ejecución paralela
- ¿Qué no recomendamos automatizar?
- ¿Cuándo debemos automatizar?
- ¿Cuándo no automatizar?
- Proceso de prueba automatizado
- Proceso de prueba automatizado paso a paso:
- Marcos para pruebas automatizadas
- Mitos sobre las pruebas automatizadas
- Herramientas populares de pruebas automatizadas
- Nuestros tutoriales sobre herramientas de pruebas automatizadas
¿Qué es la automatización?
Antes de empezar con las pruebas automatizadas, vamos a explicar el término «automatización». La automatización es el proceso mediante el cual podemos automatizar un proceso manual utilizando la tecnología. El objetivo es eliminar o reducir el trabajo manual humano. Veamos ahora cómo ayuda la automatización en las pruebas de software.
Las pruebas de software implican escribir casos de prueba una sola vez y volver a ejecutarlos siempre que sea necesario. Las pruebas manuales son una tarea que lleva mucho tiempo y es agotadora. Las pruebas automatizadas ayudan a reducir el tiempo necesario para ejecutarlas. Como los guiones de prueba se escriben una sola vez, pueden ejecutarse automáticamente tantas veces como se desee sin intervención humana.
¿Qué son las pruebas automatizadas?
Las pruebas automatizadas son un tipo de pruebas de software que implican la ejecución automatizada de casos de prueba mediante herramientas de automatización. Básicamente, automatizamos el proceso de prueba manual. El probador escribe guiones de prueba y los ejecuta en un momento determinado, o programa las pruebas para que se ejecuten periódicamente. Esto reduce el tiempo total necesario para las pruebas y, por tanto, ayuda a acelerar la implantación del software.
¿Qué automatizar?
Ahora que sabemos qué son las pruebas automatizadas, hablemos un poco de qué casos de prueba son adecuados para la automatización, o más concretamente, qué casos de prueba son candidatos ideales para la automatización. Casos de prueba que comprueban la funcionalidad vital de la aplicación
Por ejemplo, para una aplicación de comercio electrónico, incluiríamos la navegación por los productos utilizando las funciones de búsqueda y categorías, la adición de productos al carrito y la realización de compras como funcionalidades clave. Estos casos de prueba deben ser los primeros adeptos para la automatización. Los casos de prueba para añadir a listas de deseos y similares deben tener una prioridad menor.
Casos de prueba que requieren una ejecución repetida con un conjunto de datos complejo
Hay muchos casos de prueba que requieren una activación repetida. Estos casos de prueba también son candidatos ideales para la automatización, porque ésta reduce en gran medida el esfuerzo dedicado a las pruebas.
Tomemos como ejemplo la función de búsqueda de la aplicación. Si podemos automatizar el procedimiento de búsqueda con un término de búsqueda y luego validar los resultados de la búsqueda, podemos ejecutar el mismo script repetidamente con distintos tipos de términos, como una sola palabra, un término de varias palabras, alfanuméricos, con caracteres especiales, con caracteres de idiomas extranjeros, etc.
Pruebas que llevan mucho tiempo
Los procedimientos de prueba que requieren mucho tiempo de ejecución y preparación también son candidatos ideales para la automatización.
Sigamos con el ejemplo del comercio electrónico. Si algunos casos de prueba requieren configurar varios productos y luego realizar algunas operaciones en estos productos, automatizar estos casos de prueba no sólo reduce el tiempo necesario para ejecutar las pruebas, sino que también libera a los probadores manuales de tareas innecesarias. Además, les ayuda a centrarse en otras actividades de pruebas exploratorias.
Casos de prueba que requieren ejecución paralela
Hay escenarios que requieren controlar el acceso concurrente a la aplicación, por ejemplo, en el caso de pruebas de rendimiento con varios usuarios. En estos casos, las pruebas manuales no son factibles o requerirían más recursos para probar escenarios específicos. Los scripts automatizados ayudan en este caso creando consultas concurrentes y recogiendo los resultados en un solo lugar.
¿Qué no recomendamos automatizar?
Al automatizar, también es importante comprender qué tipos de casos de prueba no pueden o no deben automatizarse.
Casos de prueba para la interfaz de usuario (IU)
Los casos de prueba para la interfaz gráfica de usuario (GUI) se dejarían mejor a las pruebas manuales o a la validación humana. Esto se debe a que incluso el cambio más pequeño en la IA podría hacer que fallaran los casos de prueba automatizados. Además, es muy difícil crear casos de prueba fiables para la IA que funcionen en distintos dispositivos y con distintas resoluciones de pantalla.
Casos de prueba de usabilidad
Los casos de prueba de usabilidad comprueban la facilidad de uso de una aplicación por parte de distintos grupos de usuarios, algo que la tecnología actual no puede proporcionar mediante pruebas automatizadas.
Funcionalidad que se utiliza raramente y requiere mucho tiempo de scripting
Está bien automatizar escenarios complejos, pero invertir esfuerzos en escenarios que se utilizan poco no es muy eficiente.
Pruebas exploratorias
Las pruebas exploratorias requieren una rápida adquisición de conocimientos sobre la aplicación y pruebas concurrentes. Por tanto, los escenarios de las pruebas exploratorias no pueden automatizarse.
¿Cuándo debemos automatizar?
Tras definir todas las opciones de automatización durante la planificación de las pruebas, podemos empezar a crear el marco de automatización en paralelo con el equipo de desarrollo. Sin embargo, la creación de guiones de casos de prueba debe comenzar en el momento adecuado. Para rentabilizar mejor la inversión en automatización y evitar trabajo innecesario, la creación de guiones de casos de prueba debe iniciarse cuando la aplicación sea estable y no se prevean cambios frecuentes en ella.
¿Cuándo no automatizar?
Echemos un vistazo a algunos escenarios en los que las pruebas automatizadas no son apropiadas o en los que es más probable que la automatización aporte desventajas.
- Falta de pericia, experiencia con la herramienta de automatización – La falta de pericia en la herramienta de automatización y/o en el lenguaje de programación para crear scripts fiables es una de las principales razones por las que no se puede aprovechar todo el potencial de la herramienta. Estos factores conducen al fracaso de las pruebas automatizadas.
- Casos de prueba incorrectamente seleccionados – El éxito de las pruebas automatizadas depende en gran medida de los casos de prueba adecuados para la automatización. Las pruebas mal seleccionadas hacen que se malgasten los recursos y el tiempo invertidos en la automatización.
- Aplicaciones con cambios frecuentes – Elegir pruebas automatizadas para una aplicación con cambios frecuentes requiere un mantenimiento constante de los scripts de prueba, lo que a veces puede no producir el rendimiento deseado de la inversión.
- Guiones de prueba escritos incorrectamente – Los guiones de prueba con validaciones limitadas o insuficientes pueden dar lugar a resultados de prueba falsos positivos. Estos falsos positivos ocultan errores que podrían detectarse fácilmente si se verificaran manualmente o se escribieran de otra forma.
Proceso de prueba automatizado
El proceso de pruebas automatizadas implica un conjunto de actividades que se realizan al automatizar diversas aplicaciones de software. Recorreremos cada fase, desde la comprensión de los requisitos hasta las secuencias de comandos automatizadas y la integración con CI/CD.

Proceso de prueba automatizado paso a paso:
Comprender los requisitos
Antes de iniciar las pruebas automatizadas, la primera y más importante actividad es comprender los requisitos. Comprender los requisitos ayudará a definir el alcance de la automatización y la selección de la herramienta adecuada.
Definir el alcance de la automatización
Definir el alcance de la automatización implica seleccionar los casos de prueba adecuados para la automatización. Esto representa todos los casos de prueba que entran dentro de los tipos de casos de prueba definidos en la sección «¿Qué automatizar?».
Elegir la herramienta adecuada
La elección de la herramienta depende de varios factores, como los requisitos del proyecto, los conocimientos de programación, el presupuesto del proyecto (si utilizar una herramienta gratuita o de pago), etc.
Crear un marco
Para crear conjuntos de pruebas automatizadas fiables, se necesita un marco de automatización. Estos marcos ayudan a crear guiones de prueba reutilizables, sostenibles y fiables. En función de los requisitos del proyecto, podemos seleccionar uno de los distintos marcos de automatización descritos en la sección «Marcos para pruebas automatizadas».
Scripting de casos de prueba
Tras configurar el marco de automatización, empezamos a programar los casos de prueba que hemos seleccionado para la automatización. Un script típico para un caso de prueba de una aplicación web tiene este aspecto:
Abre el navegador,
Ve a la URL de la aplicación,
Realiza interacciones con diversos elementos de la web,
enviar datos de archivos de prueba externos,
verificación.
Integración con CI/CD
Aunque los casos de prueba pueden ejecutarse según sea necesario, CI/CD (integración continua y despliegue continuo) se utiliza ahora ampliamente en casi todas las empresas de productos. Desde el punto de vista de las pruebas, esto incluye configurar conjuntos de pruebas en una herramienta CI/CD como Jenkins.
Después de configurarlas con CI/CD, podemos programar la ejecución del conjunto de pruebas, por ejemplo por la noche o ejecuta los casos de prueba que necesites. Otra ventaja de integrar la suite de automatización con CI/CD es la posibilidad de ejecutar automáticamente casos de prueba tras el despliegue. En esta configuración, con un solo clic, inmediatamente después del despliegue, las suites de pruebas automatizadas comprueban la estabilidad de la versión.
Marcos para pruebas automatizadas
Al probar manualmente cualquier software, definimos un conjunto de reglas. Por ejemplo, el formato de los casos de prueba, la priorización de la ejecución de las pruebas, diversos procedimientos destinados a optimizar todo el proceso de prueba del software, etc. Del mismo modo, para las pruebas automatizadas, utilizamos marcos de automatización para ayudar a reducir el coste de mantenimiento de los scripts automatizados y mejorar el proceso general de pruebas automatizadas.
El marco puede incluir instrucciones e implementación de varios factores que afectan a la calidad del conjunto de pruebas, como por ejemplo
- ¿De dónde obtendremos los datos de las pruebas? – Por ejemplo, los insertaremos directamente en el script o los descargaremos de archivos externos.
- ¿Cómo debemos tratar los repositorios de objetos o los localizadores de elementos (los localizadores son identificadores de varios elementos, como campos de texto, botones, etc.)?
- ¿Dónde debemos almacenar la funcionalidad común que puede reutilizarse? – Para reducir la redundancia y mejorar la reutilización del código.
- ¿Cuál debe ser el formato de los mensajes? – HTML, PDF, XLS, etc.
- ¿Cómo debemos aplicar el registro? – ¿Qué herramienta/biblioteca debe utilizarse?
- ¿Qué hay que hacer en caso de fallo de la prueba? – ¿queremos una captura de pantalla o intentar volver a ejecutar el caso de prueba? Vamos.
Estamos desarrollando un marco de pruebas de automatización para abordar y aplicar estas normas.
A continuación se enumeran algunos de los marcos de automatización más utilizados:
Marco modular
Los marcos modulares son marcos de automatización básicos que identifican y crean funcionalidades de uso común, como la conexión a una base de datos, el inicio de sesión, un método para leer datos de un archivo externo, etc. En lugar de generar código iterativo, simplemente llamamos a los métodos reutilizables según sea necesario.
Marco basado en datos
En el caso de los marcos basados en datos, los datos de prueba residen en archivos externos, y en función del número de filas de los archivos externos, el caso de prueba se ejecuta varias veces con diferentes conjuntos de datos en cada iteración (leídos del archivo). Dado que los datos impulsan la automatización, a este marco se le ha dado el nombre de Marco Impulsado por los Datos.
Marco basado en palabras clave
En un marco basado en palabras clave, podemos escribir casos de prueba en texto plano. Por ejemplo, podemos escribir los casos de prueba en una hoja Excel de la siguiente manera:

El marco ya tendrá métodos predefinidos para cada palabra clave utilizada, como el código de automatización para la palabra clave OpenBrowser, NavigateTo, etc. De este modo, incluso un usuario sin conocimientos técnicos puede crear guiones de prueba automatizados en texto plano.
Mitos sobre las pruebas automatizadas
Rompamos algunos mitos sobre las pruebas automatizadas:
- El 100% de automatización es posible – Salvo en algunas aplicaciones muy concretas, el 100% de automatización no es posible. Ejemplos de casos de prueba que no pueden automatizarse son los casos de prueba exploratoria o los casos de prueba de usabilidad.
- La automatización sustituirá el trabajo de los probadores manuales – Es cierto que con la llegada de las pruebas automatizadas y diversas herramientas, está cambiando la necesidad de probadores que puedan trabajar tanto con pruebas manuales como automatizadas. Sin embargo, la automatización nunca sustituirá por completo la necesidad de realizar pruebas manuales.
- Un desarrollador es un mejor probador automatizado – Mientras que un desarrollador puede tener una pequeña ventaja en el área de la programación, un probador puede aportar una visión crítica, atención al detalle, etc. al área del desarrollo de software.
- La automatización es cara – Ejecutada correctamente, la automatización puede reducir el esfuerzo global de las pruebas y los recursos necesarios, ahorrando costes del proyecto a largo plazo.
Herramientas populares de pruebas automatizadas
En el mercado del software existen varias herramientas de pruebas automatizadas, tanto de pago como gratuitas. En función de varios factores, como los requisitos del proyecto, el presupuesto, la experiencia de los recursos, etc. debemos elegir la herramienta adecuada que se adapte a nuestras necesidades. Echemos un vistazo a algunas de las herramientas de pruebas automatizadas más populares del mercado:
- Selenium – Herramienta de código abierto para pruebas automatizadas. Tiene una comunidad grande y activa. Es una de las herramientas más utilizadas y admite scripts en varios lenguajes: Java, Python, Ruby, JavaScript, C#, etc.
- Katalon Studio – Herramienta relativamente nueva, pero que está ganando popularidad rápidamente gracias a las funciones de grabación y reproducción y de creación de scripts para los usuarios más expertos técnicamente. Es gratuito, pero no de código abierto.
- UFT One – Herramienta de pago de Microfocus que puede utilizarse para automatizar aplicaciones web y Windows. Sólo admite secuencias de comandos VBScript.
- TestComplete – Una herramienta de pago de Smartbear que puede utilizarse para automatizar aplicaciones web, móviles y de escritorio.
- Tosca – Herramienta de pago de Tricentis que proporciona funciones de grabación y reproducción para automatizar aplicaciones web, API y aplicaciones Windows. Se considera una de las herramientas más populares sin necesidad de programación.
- Watir – Herramienta de automatización de código abierto basada en lenguaje Ruby, que permite automatizar aplicaciones web. Contiene un componente watir-webdriver basado en Selenium.
- Appium – Puede considerarse como el Selenium para aplicaciones móviles. Al igual que Selenium, es una herramienta de código abierto con una gran base de usuarios.
- TestProject – TestProject es una herramienta gratuita de pruebas automatizadas impulsada por la comunidad de Tricentis. Puede utilizarse para automatizar aplicaciones web y móviles.
- Ranorex – Instrumento de pago con funciones de grabación y reproducción. Con su ayuda, podemos automatizar aplicaciones Android, iOS y Windows. Además de grabar y reproducir, también admite secuencias de comandos mediante C# y VBScript.
Nuestros tutoriales sobre herramientas de pruebas automatizadas
Ahora que tienes una idea suficiente del proceso de pruebas automatizadas, puedes elegir la herramienta adecuada para aprender la automatización de pruebas. También preparamos tutoriales sobre herramientas populares de pruebas automatizadas Selenium, Katalon, Cucumber, TestNG.
Esperamos que este artículo te haya ayudado a comprender los fundamentos de las pruebas automatizadas y a tomar conciencia de las actividades que se realizan en el proceso de pruebas automatizadas.