AUTOMATIZACIÓN TCS VERSIÓN : 1 AUTOMATIZACIÓN DE PRUEBAS FUNCIONALES Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 Contenido Que es la Automatización .......................................................3 Como iniciar una automatización de pruebas funcionales sobre una aplicación? .............................................................3 Niveles de automatización ......................................................6 Beneficios de la automatización .............................................6 Cuando realizar automatización de pruebas de software? ....8 Herramientas de automatización de pruebas.........................9 Serenity + cucumber ...............................................................9 Características de una historia de usuario escrita en Gherkin ..............................................................................................11 Configuración de entorno de automatización ......................12 Enlaces ..................................................................................18 Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 Que es la Automatización La automatización es la forma de evaluar un sistema para validar que satisface los requisitos esperados, o para identificar diferencias entre los resultados esperados y los reales. La automatización supone realizar tareas de pruebas desatendidamente, esto permite al analista realizar actividades adicionales durante las etapas de pruebas de software y aumentar el tiempo de eficiencia y respuesta en la entrega de resultados utilizando herramientas de software que reproduzcan los script con las instrucciones dadas Como iniciar una automatización de pruebas funcionales sobre una aplicación? 1. Analizar las necesidades y el proceso de prueba: Identificar si existe pruebas funcionales, la necesidad de automatización 2. Analizar la vialidad técnica: Disponibilidad de ambientes, entornos de espacio para analista de automatización, infraestructura Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 3. Adherencia: Proceso que permite indicar la viabilidad de automatizar una aplicación o funcionalidad teniendo encuenta el tipo, ambientes y demás características (front-end, back-end), objetos de la interface gráfica de usuario (front-end), propiedades de los objetos, acciones etc. 4. Selección de la herramienta de automatización: Utilizar la mejor herramienta de automatización es el principal objetivo en las tareas de inicio de proyecto, teniendo en cuenta herramientas open source o licenciadas. 5. Documento de visión: Este documento indicara con detalle la necesidad de la prueba en un alto nivel, dando detalles del proceso automatizado, alcance, restricciones, riesgos, 6. Estimación de automatización: se deben tener en cuenta interface gráfica, objetos de la interface (radiobutton, checkbox, iframe, textbox, listbox, combobox, contenedores (div), dataPicker 7. Diseño de casos de prueba: Diseñar los casos de prueba de acuerdo al modelo planteado Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 8. Indicadores de eficiencia: Mostrar la eficiencia del pruebas automatizadas vs pruebas manuales 9. Hardware : Se recomienda utilizar procesadores CoreI 5 o CoreI7 desde la 6th generación, memoria ram minimo 8 gb, programas ofimáticos, ide(visual studio, eclipse oxigen 4.7, soapUI, silktest 18.1, UFT) Automatización de pruebas funcionales Automatización Automatización bajo Framework de trabajo Alta automatización Conocimiento en desarrollo de software, sentencias de control, bases de datos (crud) Conocimientos básicos de pruebas de software (ISTQB fundation level) Eficiencia en automatización de pruebas Cobertura Selección de pruebas Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 Niveles de automatización Esta pirámide propuesta por Mike Cohn, sirve para explicar las diferencias del Software Testing trabajando con metodologías convencionales y trabajando con metodologías ágiles o de forma iterativa Beneficios de la automatización La automatización de pruebas puede traer consigo una serie de beneficios que podrían ayudar a elevar el nivel de calidad del producto software y también a disminuir su coste. Los más destacados podrían ser: Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 Se pueden ejecutar un número mayor de pruebas. Una vez que se ha automatizado un determinado caso de prueba, es fácil ejecutarlo sucesivas veces variando solo sus datos de entrada. Consecuencia: la cobertura aumenta, se prueban muchas mas combinaciones, aumentando el nivel de confiabilidad del producto software. Se puede ejecutar pruebas de forma desatendida. Las ejecución se puede lanzar a cualquier hora del día, durante la noche, en periodos no laborales, etc. Consecuencia: Se reduce considerablemente el tiempo de ejecución pruebas. Menor coste. Reducción de costes durante la ejecución de pruebas Una prueba automatizada se ejecuta siempre de una misma manera, mientras que una ejecución manual se puede cometer errores, sobre todo, dependiendo del nivel del tester que realice dicha ejecución y de la complejidad de la prueba. Consecuencias: Aumenta la calidad de las pruebas. Posible aumento de la calidad general del producto software. Facilita las pruebas de regresión Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 La automatización de pruebas favorece aque las pruebas de regresión se realicen reutilizando casos ya diseñados y que fueron probados previamente esto ayuda a identificar si se han introducidos errores Aprovechamiento de RRHH Mayor cobertura en los casos de prueba Apoyo en la estrategia del cliente, cumpliendo con sus compromisos Reutilización de casos de prueba Cuando realizar automatización de pruebas de software? Casos de prueba que se deban ejecutar en cada nueva versión de la aplicación. Casos de prueba que utilicen distintos datos de prueba para las mismas acciones - Data Driven Testing. Funcionalidades que no cambiaran en un periodo de tiempo relativamente corto Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 Herramientas de automatización de pruebas Selenium webDriver Serenity+ cucumber Silktest 18.0 Ranorex SoapUI Testcomplete UFT –HP Katalon Studio Serenity + cucumber Gherkin, es un lenguaje comprensible por humanos y por ordenadores, con el que vamos a describir las funcionalidades, definiendo el comportamiento del software, sin entrar en su implementación. Se trata de un lenguaje fácil de leer, fácil de entender y fácil de escribir. Es un lenguaje de los que Martin Fowler llama 'Business Readable DSL', es decir, 'Lenguaje Específico de Dominio legible por Negocio'. Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 Características de una historia de usuario escrita en Gherkin Independientes: Deben ser atómicas en su definición. Es decir, se debe intentar que no dependa de otras historias para poder completarla. Valoradas: Deben ser valoradas por el cliente. Para poder saber cuánto aporta al valor de la aplicación y junto con la estimación convertirse en un criterio de prioridad. Estimables: Tener su alcance lo suficientemente definido como para poder suponer una medida de trabajo en la que pueda ser completada. Pequeñas: Para poder realizar una estimación con cierta validez y no perder la visión de la Historia de Usuario, se recomienda que sean mayores de dos días y menores de dos semanas. Verificables: Este es el gran avance de las Historias de Usuario. Que, junto con el cliente, se acuerdan unos Criterios Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 de Aceptación que verifican si se ha cumplido con las funcionalidades descritas y esperadas. Configuración de entorno de automatización Verifique la versión de Eclipse que tenga instalada, si aún no la ha instalado descarguela de la siguiente página : http://www.eclipse.org/downloads/eclipse-packages/ Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 1. JAVA Verifique la versión de Java que tenga instalada, se recomienda la versión 1.8, página de Oracle: http://www.oracle.com/technetwork/java/javase/downlo ads/jre8-downloads-2133155.html Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 2. Instalación de MAVEN Descargue Maven desde http://maven.apache.org/index.html, y descomprimir en una ruta C\: o D:\ Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 3. Crear o actualizar las siguientes variables de entorno, debemos ingresar a la maquina con privilegios de administrador: Tutorial: https://medium.com/@01luisrene/comoagregar-variables-de-entorno-s-o-windows-10e7f38851f11f MAVEN_HOME D:\Maven\apache-maven-3.5.0 MAVEN %MAVEN_HOME%\bin JAVA_HOME C:\Program Files\Java\jdk1.8.0_144 ‘Ruta del JDK Agregar al path lo siguiente: Path %JAVA_HOME%\bin;%MAVEN% Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 4. Verificar la instalación de Maven: ingresa al cmd y escribe “mvn -version” Si quedó bien instalada debe mostrarse el siguiente resultado, de lo contrario reinicia la máquina y repite esta instrucción. Consultar las variables de entorno registradas en el sistema Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 5. Instalar plugin Cucumber Utilizar el siguiente tutorial como guía de instalación: https://www.toolsqa.com/cucumber/install-cucumbereclipse-plugin/ Automatización de pruebas funcionales V 1 AUTOMATIZACIÓN TCS VERSIÓN : 1 Enlaces Automatización de pruebas funcionales basadas en BDD, url: https://johnfergusonsmart.com/ Automatización scripting estructurado licenciado, Silktest , url: https://www.microfocus.com/eses/products/silk-test/overview Automatización con JavaScript, url: https://nightwatchjs.org/ Pruebas funcionales bajo el estándar internacional ITQB, url: http://www.sstqb.es/recursos/descargas.html Automatización de pruebas funcionales V 1