Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Automatización de Pruebas
Automatización de Pruebas
PRUEBAS
En las pruebas de software, la automatización de pruebas consiste en el uso de software
especial (casi siempre separado del software que se prueba) para controlar la ejecución de
pruebas y la comparación entre los resultados obtenidos y los resultados esperados.1 La
automatización de pruebas permite incluir pruebas repetitivas y necesarias dentro de un
proceso formal de pruebas ya existente o bien adicionar pruebas cuya ejecución manual
resultaría difícil.
Algunas pruebas de software tales como las pruebas de regresión intensivas de bajo nivel
pueden ser laboriosas y consumir mucho tiempo para su ejecución si se realizan manualmente.
Adicionalmente, una aproximación manual puede no ser efectiva para encontrar ciertos tipos
de defectos, mientras que las pruebas automatizadas ofrecen una alternativa que lo permite.
Una vez que una prueba ha sido automatizada, esta puede ejecutarse repetitiva y rápidamente
en particular con productos de software que tienen ciclos de mantenimiento largo, ya que
incluso cambios relativamente menores en la vida de una aplicación pueden inducir fallos en
funcionalidades que anteriormente operaban de manera correcta. Existen dos aproximaciones a
las pruebas automatizadas
Pruebas de regresión
Cualquier tipo de pruebas de software con el objeto de descubrir errores (bugs), carencias de
funcionalidad, o divergencias funcionales con respecto al comportamiento esperado del
software, causados por la realización de un cambio en el programa. Se evalúa el correcto
funcionamiento del software desarrollado frente a evoluciones o cambios funcionales. El
propósito de éstas es asegurar que los casos de prueba que ya habían sido probados y fueron
exitosos permanezcan así. Se recomienda que este tipo de pruebas sean automatizadas para
reducir el tiempo y esfuerzo en su ejecución.
Pruebas manejadas por el código: Se prueban las interfaces públicas de las clases, módulos o
bibliotecas con una variedad amplia de argumentos de entrada y se valida que los resultados obtenidos
sean los esperados.
La elección misma entre automatización y ejecución manual de pruebas, los componentes cuya prueba
será automatizada, las herramientas de automatización y otros elementos son críticos en el éxito de las
pruebas, y por lo regular deben provenir de una elección conjunta de los equipos de desarrollo, control de
calidad y administración. Un ejemplo de mala elección para automatizar, sería escoger componentes
cuyas características son inestables o su proceso de desarrollo implica cambios continuos.
Pruebas manejadas por el código
Es muy útil para un tester comprender qué es la automatización y tener claridad de cuando
algo es automatizable. Asimismo, debe tener en cuenta cómo pueden optimizar su trabajo, ya
sea colaborando con otros colegas, otros desarrolladores o animándose a probar una
herramienta de automatización.
Abordaremos algunos conceptos que son fundamentales cuando aún no tiene experiencia con
la automatización. También evaluaremos su importancia y beneficios, en relación con las
pruebas manuales.
¿Por qué automatizar pruebas de software?
De esta manera, es posible ahorrar energía, tiempo y costos, al tiempo que libera a las personas
para que se concentren en otras tareas
Automatización de esfuerzos manuales
En algunos casos, la automatización nos permite realizar pruebas que un humano no podría,
especialmente teniendo en cuenta la limitación del número de ejecuciones que podemos hacer
en un determinado período de tiempo.
¿Cuándo algo se considera automatizable?
Esta suele ser una de las preguntas más comunes entre los testers. Y es que saber cuándo
automatizar pruebas de software implica evaluar la inversión potencial, el enfoque, los
beneficios y lo que es más importante, el conocimiento actual del proceso manual.
El conocimiento completo del proceso manual es el pilar para saber cuándo algo es
automatizable, lo que implica que las pruebas manuales no son completamente sustituibles.
(Frecuentemente hay un debate sobre la muerte inminente de las pruebas manuales,
¡simplemente no pueden desaparecer!)
Mitos de la automatización
Automatizar pruebas de software tiene sus ventajas y desventajas. Depende del proyecto,
el tiempo, el costo, la calidad y la metodología.
Además, hay que considerar que todo lo que hace se basa en cumplir los objetivos de la
mejor manera posible, seleccionando y aplicando los métodos, herramientas y habilidades
apropiadas.
Entre los mitos comunes sobre la
automatización de pruebas encontramos
Es posible automatizar todo.
La automatización siempre conduce a una mejor calidad de software.
Las pruebas automatizadas son mejores que las manuales.
La automatización trae un rápido retorno de la inversión.
Desde luego, pueden haber ocasiones en que uno de estos mitos sea realmente cierto, pero eso
sería una excepción a la regla.
Según Context-Driven Testing School, los siguientes siete principios ayudan a comprender el objetivo del
testing, ya sea manual o automatizado:
Cuando un proyecto apuesta por automatizar pruebas de software, idealmente debería tener
una base sólida comenzando con los casos de prueba unitarios, evitando tantos errores como
sea posible.
Primero, las herramientas que tenemos a nuestro alcance varían en sus limitaciones y
posibilidades. Por lo que para seleccionar la herramienta correcta para automatizar una
prueba, hay que tener claridad de los requisitos que deben cumplirse para continuar el
análisis de costo-beneficio de su uso.
Herramientas open source comerciales y
personalizadas
Selenium
Es una herramienta de código abierto, ampliamente aceptada en todo el mundo para probar
aplicaciones web en diferentes navegadores y plataformas.
Appium
Es otra herramienta open source basada en Selenium que se puede emplear para
automatizar las pruebas, principalmente en dispositivos móviles para iOS y Android.
Cucumber
Cucumber es parte del enfoque BDD (Behavior Driven Development) y su principal
ventaja es la facilidad de uso, ya que es muy intuitiva.
Ghost Inspector
Lo más interesante de Ghost Inspector es que nos permite automatizar sin saber codificar,
lo que la convierte en una herramienta ideal para principiantes. Esta herramienta solo
permite 100 ejecuciones gratuitas por mes.
GXtest
En Abstracta desarrollamos GXtest para permitir la automatización de aplicaciones
desarrolladas con Genexus de una manera simple (la única de su tipo). Y eso no es todo,
también permite integrar pruebas en un modelo CI / CD.