Cochabamba – Bolivia
2018
1
Agradezco a Dios y a mis seres queridos,
que fueron el faro que me guio hacia mis
metas y sueños, en especial a mis padres
que me demostraron que con esfuerzo y
perseverancia todo es posible.
“Solo una cosa convierte en imposible un
sueño: El miedo a fracasar.”
Paulo Coelho
Índice de Contenido
ÍNDICE DE CUADROS, GRAFICOS Y FIGURAS................................................................ 4
Resumen ................................................................................................................................... 5
Introducción .............................................................................................................................. 6
1 Generalidades................................................................................................................... 6
1.1 Antecedentes Generales ..................................................................................................... 6
1.2 Antecedentes Específicos ................................................................................................... 6
2 Metodología ...................................................................................................................... 7
3 Herramientas de automatización .................................................................................... 7
4 Cómo funcionan las Herramientas de automatización ................................................. 7
5 Ventajas y Desventajas de Automatizar casos de prueba ........................................... 7
5.1 Cuando es mejor usar Manual Testing .......................................................................... 8
5.2 Cuando es mejor Automatizar los casos de prueba ..................................................... 9
6 BDD para automatizar casos de prueba ........................................................................ 9
6.1 Gherkin ............................................................................................................................ 10
7 Herramientas de Automatización basadas en BDD .................................................... 13
7.1 Cucumber ........................................................................................................................ 13
7.2 TestLeft............................................................................................................................ 13
7.3 Easy B ............................................................................................................................. 15
7.4 JDave ............................................................................................................................... 16
7.5 Concordion ...................................................................................................................... 16
7.6 Jbehave ........................................................................................................................... 19
7.7 FitNesse .......................................................................................................................... 19
7.8 SpecFlow ......................................................................................................................... 21
7.9 Cypress............................................................................................................................ 22
7.10 Ranorex ........................................................................................................................... 23
7.11 Sahi Pro ........................................................................................................................... 24
7.12 WatiN ............................................................................................................................... 26
7.13 TestingWhiz .................................................................................................................... 27
2
3
7.14 Selenium.......................................................................................................................... 28
7.15 Telerik Test Studio.......................................................................................................... 30
8 Jenkins............................................................................................................................. 31
9 JMeter .............................................................................................................................. 32
10 PostMan .......................................................................................................................... 33
11 Tabla Comparativa ......................................................................................................... 35
12 Conclusiones................................................................................................................... 37
13 Bibliografía ...................................................................................................................... 37
3
4
ÍNDICE DE CUADROS, GRAFICOS Y FIGURAS
Ilustración 1: Comparación BDD y TDD .............................................................................. 10
Ilustración 2: Logo de Cucumber .......................................................................................... 13
Ilustración 3: Herramientas para TestLeft ............................................................................ 14
Ilustración 4: Integración Continua con TestLeft ................................................................. 14
Ilustración 5: Ejemplo BDD easy B....................................................................................... 15
Ilustración 6: EasyB prueba de integración ......................................................................... 15
Ilustración 7: EasyB prueba unitaria..................................................................................... 16
Ilustración 8: Ejemplo BDD en EasyB 2 ............................................................................... 16
Ilustración 9: Concordion estructura..................................................................................... 17
Ilustración 10: Concordion Ejemplo dividir Nombres .......................................................... 17
Ilustración 11: Concordion instrumentos.............................................................................. 18
Ilustración 12: Concordion sintaxis Markdown .................................................................... 18
Ilustración 13: Concordion Ejemplo dividir nombres........................................................... 18
Ilustración 14: Comandos Concordion ................................................................................. 19
Ilustración 15: FitNesse Ejemplo 1 ....................................................................................... 20
Ilustración 16: FitNesse Ejemplo SLIM ................................................................................ 20
Ilustración 17: Cypress Ejemplo ........................................................................................... 23
Ilustración 18: Ranorex Ejemplo ........................................................................................... 24
Ilustración 19: Sahi Pro Ejemplo........................................................................................... 25
Ilustración 20: WatiN Ejemplo ............................................................................................... 27
Ilustración 21: Testing Whiz Navegadores .......................................................................... 28
Ilustración 22: Selenium IDE ................................................................................................. 29
Ilustración 23: Selenium ejecución de pruebas ................................................................... 30
Ilustración 24: Telerik Test Studio IDE ................................................................................. 31
Ilustración 25: Integración continua con Jenkins ................................................................ 31
Ilustración 26: Herramientas que pueden trabajar con Jenkins ........................................ 32
Ilustración 27: Características de Jenkins ........................................................................... 33
Ilustración 28: Ejemplo Postman .......................................................................................... 34
4
5
Resumen
Las herramientas de automatización de pruebas tienen como objetivo el simplificar el trabajo del
equipo de QA, ejecutando de manera automática ciertas pruebas que ya fueron ejecutadas por
el QA manual previamente, sin embargo implementar la automatización de casos de prueba tiene
ciertos puntos negativos: automatizar casos de prueba requiere una gran inversión inicial,
requiere tiempo de entrenamiento con las herramientas; puntos positivos: reducir el tiempo que
necesita un QA en verificar la calidad del proyecto, ya que con automatización será más rápido
encontrar fallas.
Varias herramientas de automatización utilizan Behavior-Driven Development (BDD) o en español
Desarrollo guiado por comportamiento, que es una técnica ágil de desarrollo de software, el cual
consiste en hacer uso de un vocabulario que sea accesible para personas con o sin conocimiento
técnico. Junto con BDD se utiliza Gherkin que es una estructura para documentar ejemplos de
los casos de prueba que se deben realizar en la aplicación, usando la estructura de Given, When,
Then puede llegar a describir cualquier caso de prueba como una funcionalidad que cualquier
persona seria capaz de entender. Existen varios tipos de herramientas de automatización de
casos de pruebas y del control de calidad: Herramientas de diseño de pruebas, de interfaz de
usuario, de carga y rendimiento, de gestión de pruebas y de análisis estático.
Algunas de las herramientas más importantes son: Cucumber, TestLeft, Easy B, JDave,
Concordion, JBehave, FitNesse, SpecFlow, Cypress, Ranorex, Sahi Pro, WatiN, TestingWhiz,
Selenium, Telerik Test Studio, Jenkins, Jmeter y Postman.
5
6
Introducción
En el desarrollo de aplicaciones empresariales un factor importante es el control de calidad del
producto, que se encarga el equipo de QA (Que es Quality Assurance?, 2018) realizando una
verificación de las características de la aplicación y verificando que la cantidad de bugs (errores)
sea la mínima posible.
Es imposible que una aplicación no tenga ni un solo bug o que de vez en cuando los
requerimientos no sean cumplidos como se los esperaba, el equipo de QA (Que es Quality
Assurance?, 2018) tiene que estar pendiente de que los nuevos cambios no rompan las antiguas
funcionalidades y dado que no es posible llevar un control de calidad al 100%, se buscaron formas
de reducir el tiempo y esfuerzo en el control de la calidad, de ahí surgen las herramientas para
automatización del control de calidad.
La automatización del control de calidad se lleva acabo usando herramientas que hacen posible
la ejecución automática de pasos necesarios para la verificación de un caso de prueba,
actualmente existen varias herramientas para automatización de casos de prueba con distintos
enfoques al proceso de desarrollo de software, sin embargo el proceso que más se utiliza es el
Behavior Drive Development (BDD) (AgileAlliance, 2018), siendo un proceso que mejora la
comunicación entre equipos técnicos y no técnicos, y está más enfocado y basado en el
comportamiento del sistema, por éstas razones las herramientas para automatización que usan
BDD (AgileAlliance, 2018) son las más usadas actualmente en el desarrollo de aplicaciones.
1 Generalidades
1.1 Antecedentes Generales
A medida que una aplicación va creciendo, adquiriendo nuevas características se hace más difícil
el poder controlar la calidad de la aplicación, de ahí surgen las herramientas para automatizar el
proceso de control de calidad. Un gran apoyo para realizar esta investigación fue el internet donde
en general se encontró la mayor parte de la información, los tipos de herramientas y hacía que
tipo de pruebas están enfocados.
1.2 Antecedentes Específicos
Actualmente existen demasiadas herramientas para automatizar el control de calidad, el presente
documento servirá como una guía para conocer las herramientas que utilizan BDD (Behavior-
Data Driven) (AgileAlliance, 2018), que pertenezcan a cualquiera de los tipos de herramientas de
automatización:
Herramientas de diseño de pruebas (Test Desing tools)
Interfaz Gráfica de usuario (GUI Test Drivers)
Herramientas de Carga y Rendimiento (Load and Performance Tools)
Herramientas de Gestión de pruebas (Test Management Tools)
Herramientas de evaluación de test (Test Evaluation Tools)
Herramientas de análisis estático (Static Analysis tools)
6
7
2 Metodología
Para el presente trabajo se utilizarán los siguientes métodos de investigación:
Método Bibliográfico, debido a que se realizará la lectura y compilación de libros
relacionados al tema de estudio.
Método Analítico, debido a que se procederá a revisar y analizar ordenadamente
documentos relacionados al tema de estudio, para la redacción del Plan de
Emergencia.
3 Herramientas de automatización
El objetivo de las herramientas de automatización de pruebas, es el de simplificar lo más posible
el esfuerzo dedicado a realizar pruebas. Estas herramientas son capaces de ejecutar de manera
automática las pruebas realizadas por un QA (Que es Quality Assurance?, 2018), generar
reportes y comparar resultados con antiguas ejecuciones de pruebas. El método o proceso usado
para implementar este tipo de automatización es llamado marco de automatización de pruebas
(test automation framework).
La demanda por la automatización en la industria del software se fue incrementado a lo largo de
los años y existen muchas herramientas para automatizar el control de la calidad, pero en este
documento se hablará de solo unas cuantas de ellas.
4 Cómo funcionan las Herramientas de automatización
Las herramientas de automatización ejecutan una serie de pasos para verificar un caso de
prueba, pero a diferencia de las pruebas unitarias y las pruebas de integración, estas se usan
para automatizar pruebas más complejas, el caso más claro siendo las pruebas de la interfaz
gráfica de una aplicación. Ejemplo para probar: un usuario puede ingresar correctamente a la
aplicación:
Ingresar Usuario
Ingresar Contraseña
Hacer clic en ingresar
Verificar que el usuario pudo ingresar al sistema
Estos son los pasos que un QA (Que es Quality Assurance?, 2018) tiene que realizar
manualmente para verificar que un usuario puede ingresar a la aplicación.
Cuando se termina una nueva versión del proyecto, el equipo de QA (Que es Quality Assurance?,
2018) tiene que verificar el funcionamiento correctamente y para optimizar el tiempo del equipo,
se decide automatizar algunos casos de prueba, no solo se utilizan para la interfaz gráfica, se
puede automatizar pruebas a la base de datos a las API (¿Qué es una API y para que sirve?,
2018) del proyecto, etc.
5 Ventajas y Desventajas de Automatizar casos de prueba
La mayoría de las personas piensan que automatizar los casos de prueba solo puede traer
beneficios, pero no siempre es así, es necesario saber qué ventajas y desventajas tiene, para
conocer cuándo debería ser usado. (When to Automated your testing (and When Not), 2018)
Los mitos de la automatización de pruebas son:
7
8
8
9
9
10
10
11
real del sistema a desarrollar, utilizando un lenguaje que cualquier persona pueda entender. Para
comprender a cabalidad mejor esta parte, es mejor utilizar un ejemplo:
Si un cliente ingresa el número de una tarjeta de crédito, que no sea de 16 dígitos,
al enviar un formulario, un mensaje deberá ser mostrado explicando que el campo no
contiene el número de dígitos necesario. (The cucumber book, 2012)
Si vemos el ejemplo, se puede notar que el comportamiento está bastante definido, lo suficiente
como para que un desarrollador empiece a trabajar en él, y es entendible tanto para un
desarrollador como para cualquier otra persona, como un cliente, ahora la pregunta es, como
escribir buenos casos de prueba (Test cases) para este o cualquier otro requerimiento del
sistema, se debe lograr que los casos de prueba sean entendibles para cualquier persona del
equipo, incluso para el cliente, ahí es donde nace Gherkin. (The cucumber book, 2012)
Gherkin es una estructura para documentar ejemplos de lo que se espera que pueda realizar la
aplicación, siendo su principal meta la legibilidad, logrando que la forma en que está escrito un
caso de prueba se pueda leer como si fuera parte de la documentación. (The cucumber book,
2012)
Por ejemplo, tomamos el caso del número valido de una tarjeta de crédito, al realizar alguna
compra por internet, al usar Gherkin el lenguaje por defecto es el inglés, aunque existen maneras
de sobrescribir las palabras importantes de Gherkin para que se soporte otros lenguajes:
Al momento de que un usuario usa una aplicación, puede cometer varios errores
al ingresar el número de su tarjeta de crédito. Nosotros debemos ayudar en lo posible
a evitar perder usuarios en una parte importante de la transacción. (The cucumber
book, 2012)
Background:
Given I have choosen some items to buy
And I am about to enter my credit card details
Scenario: Credit Card number too short
When I enter a card number that’s only 15 digits long
And all the other details are correct
And I submit the form
Then The form should be redisplayed
And I should see a message advising me of the correct number of digits
Scenario: Expiry date invalid
When I enter a card expiry date that’s in the past
And all the other details are correct
And I submit the form
Then the form should be redisplayed
And I should see a message telling me the expiry date must be wrong
11
12
Los archivos Gherkin deben tener una extensión .feature, y son guardados en texto plano, eso
quiere decir que pueden ser leídos y editados por herramientas de edición simples. (The
cucumber book, 2012)
Como se puede ver en ejemplo hay palabras que están en negrilla, debido a que esas palabras
forman parte de la nomenclatura especial (Palabras reservadas) que deben usarse para describir
el caso de prueba, la siguiente lista contiene todas las palabras reservadas de Gherkin en inglés:
Feature
Background
Scenario
Given
When
Then
And
But
*
Scenario Outline
Examples (The cucumber book, 2012)
Todo archivo Gherkin empieza con la palabra clave Feature, donde se describe la historia de
usuario de la que se realizara un caso de prueba, después viene la palabra clave Scenario donde
se describe la situación planteada, un solo Feature suele tener varias situaciones posibles, un
Scenario se puede describir como el caso de prueba en sí, la estructura del caso de prueba debe
seguir la misma que del ejemplo. Given, When, Then son las palabras claves para seguir los
pasos del caso de prueba, describen exactamente el escenario que se está realizando, también
se usan las palabras clave And y But para describir mejor las condiciones del escenario. (The
cucumber book, 2012)
12
13
13
14
14
15
7.3 Easy B
EasyB fue creado por Andrew Glover y en sus palabras es un framework para la verificación de
historias de usuario construido en el espíritu de BDD (AgileAlliance, 2018), “easyb is story
verification framework built in the spirit of behavior driven development”, fue desarrollado en su
mayoría usando Groovy y echo para funcionar con Groovy y Java (Java, 2018). Un ejemplo de
un caso de prueba en easyB es:
16
17
Cuando se trata de escribir un caso de prueba en Concordion, se debe describir el
comportamiento deseado en términos generales y sus criterios de aceptación, junto con varios
ejemplos específicos para cada caso. (“Concordion”, 2018)
Por ejemplo, tomemos una tienda por internet y creemos los casos de pruebas, definimos como
un criterio de aceptación “Todas las compras de 50$ o menos tendrán envió gratis”, ejemplo para
el caso de prueba seria “Una compra de 49.99$ tiene que pagar por él envió” y otro seria “Una
compra de 50.00$ tiene envió gratis”. Es muy importante que para cada criterio de aceptación se
definan todos los ejemplos posibles. (“Concordion”, 2018)
Este caso de prueba se usa el formato llamado Mark Down, en un archivo con extensión .md:
17
18
19
20
En la primera línea dice a FitNesse que se usara el sistema SLIM (Simple List Invocation Method),
SLIM tiene su SLIM Runner y un SLIM Executer, lo que hace es convertir los casos de prueba en
simples instrucciones y esas instrucciones se pasan a SLIM Executer el cual redirecciona el
código a llamar al sistema que se está probando. (“Getting Started with FitNesse”, 2018)
En la segunda línea se define la dirección de la aplicación que se ira a probar. (“Getting Started
with FitNesse”, 2018)
En la tercera línea se encuentra el nombre de la clase, en este caso “Calculadora”. (“Getting
Started with FitNesse”, 2018)
En la cuarta línea:
20
21
Las primeras dos columnas son los parámetros de entrada al método que se está
probando.
Las ultimas 4 columnas que tienen “?”, son los métodos de la clase, en este caso,
suma, resta, multiplicación, y división, y contienen sus resultados esperados
respectivamente. (“Getting Started with FitNesse”, 2018)
Se puede ver como en FitNesse se ejecutan test basados en las filas de una tabla, se usan
distintos tipos de tablas para distintos tipos de casos de prueba:
Column Fixture: es el método más usado y del que se hizo un ejemplo
previamente, donde las filas representan los datos de entrada y salida para los
distintos métodos.
Row Fixture: se utilizan para probar consultas que devuelven un conjunto de
valores.
Action Fixture: se utilizan para ejecutar casos de pruebas donde se necesita una
secuencia de eventos, como hacer clic en un botón, verificar datos, etc. (“Getting
Started with FitNesse”, 2018)
7.8 SpecFlow
SpecFlow es una herramienta Open Source, es conocido como el Cucumber para .NET, debido
a la similitud que tienen en varios aspectos, de hecho, SpecFlow se desarrolló tomando como
inspiración a Cucumber. (“Specflow”, 2018)
Utiliza el formato Gherkin en inglés para describir las historias de usuario. SpecFlow es basado
en .NET, por lo que se puede integrar con Visual Studio, sin embargo también es posible usarse
desde la línea de comandos. (“Specflow”, 2018)
21
22
SpecFlow soporta varios frameworks para realizar pruebas como: MSTest, NUnit2 y NUnit3, xUnit
2 y MbUnit, tiene una extensión llamada SpecFlow+ que añade funcionalidades, como la
integración con Visual Studio Test Explorer, que es un ejecutor de casos de pruebas con
opciones avanzadas en ejecución de pruebas, crea reportes en HTML, XML y JSON. (“Specflow”,
2018).
7.9 Cypress
Cypress es un framework para realizar casos de pruebas que está basado en JavaScript, que no
utiliza Selenium. Fue construido usando Mocha, que es también un framework basado en
JavaScript (Javascript, 2018) que se ejecuta en los navegadores, realizando pruebas de marea
asíncrona. Cypress también puede soportar BDD (AgileAlliance, 2018) o TDD (Test Driven
Development) (Que es TDD, 2017). (“DZone: Why should you switch to Cypress for Modern Web
Testing.”, 2018)
Cypress fue desarrollado por Brian Mann, esta herramienta cuenta con algunas características
especiales:
Espera Automática: Cypress automáticamente espera hasta que el DOM se
cargue, que todos los elementos sean visibles, que las animaciones sean
completadas, y que todas las llamadas con XHR y AJAX hayan terminado, ahorrando
el trabajo de definir esperas explícitas o implícitas.
Recargas en tiempo real: Cypress es lo suficientemente inteligente como para
saber que después de guardar el archivo donde se tiene los casos de pruebas
(test_spex.js), estos lo más seguro es que serán ejecutados, entonces Cypress los
ejecuta automáticamente después de que los guardes.
Su arquitectura: La mayoría de las herramientas para realizar casos de pruebas
funcionan ejecutándose fuera del browser y ejecutando por vía remota comandos a
través de la red. Cypress en cambio hace lo opuesto, ejecuta los casos de prueba en
el mismo ciclo que la ejecución de la aplicación.
Trabaja en la capa de la red: Cypress también opera al nivel de la red, leyendo y
alternando el tráfico de red en el camino, esto no solo hace que Cypress pueda
modificar todo lo que entra y sale del navegador, sino que también puede cambiar el
código que pueda interferir con las funciones de automatización.
Una nueva forma de realizar control de calidad: Teniendo todo el control sobre tu
aplicación, el tráfico de red, y acceso nativo a cualquier host, Cypress puede usarse
para probar todos los aspectos posibles de la aplicación. (“DZone: Why should you
switch to Cypress for Modern Web Testing.”, 2018)
22
23
23
24
24
25
Tiene un editor de texto basado en web, que ayuda a crear y organizar scripts,
escenarios y pruebas fácilmente, este editor es lo suficientemente inteligente que
provee al usuario sugerencias de cómo mejorar su código (Refactoring).
Puede ejecutar pruebas y scripts de forma paralela.
Los errores que se encuentran al realizar pruebas se guardan automáticamente
junto con una captura de pantalla.
Genera reportes de las pruebas en formatos como HTML, XML, Junit, Excel y
otros, estos reportes son guardados en una base de datos para análisis históricos.
Se puede integrar fácilmente con herramientas para integración continua, por
ejemplo para Jenkins Sahi no necesita estar instalada en el mismo lugar que Jenkins,
Jenkins puede ejecutar las pruebas en Sahi de manera remota, y enviar los reportes
a Jenkins. (SahiPro, 2018)
25
26
7.12 WatiN
WatiN es una abreviación para “Web Application Testing in .NET”, que se deriva de WaTiR que
es “Web Application Testing in Ruby”. WatiN soporta solamente dos navegadores, Internet
Explorer y Mozilla Firefox. Es una herramienta open source conocida por que es fácil de usar y
por qué su sintaxis es muy sencilla, está desarrollada en C# (C# Guide, 2018). (“WatiN”, 2018)
La manera en que interactúa con Internet Explorer es utilizando COM (Component Object Model),
mientras que con Firefox la interacción se realiza usando JSSH (JavaScript Shell Server), que es
una extensión de Firefox, JSSH es un plug-in que permite usar comandos de automatización.
(“WatiN”, 2018)
Al ser WatiN una herramienta que fue desarrollada a base de C# (C# Guide, 2018) puede trabajar
en conjunto con Visual Studio, NUnit o Gallio. WatiN se puede usar para pruebas de interfaz
gráfica, pruebas funcionales y pruebas de regresión. (“WatiN”, 2018)
Algunas de sus características son:
Automatización a través de todos los elementos HTML.
Puede encontrar varios elementos a través de sus atributos.
Soporta Ajax.
Puede ser usado con cualquier lenguaje .NET (“WatiN”, 2018)
Algunas de sus limitaciones son:
Una limitación de WatiN es que los códigos de estado de HTTP no son mostrados
lo cual en realidad es una limitación del COM en la automatización en Internet
Explorer.
Las versiones de Internet Explorer desde el 7 para adelante incluyen la capacidad
de usar un modo protegido, Protected Mode, este modo ocasiona problemas a WatiN
cuando trata de acceder a una página web, cuando se use en este tipo de versiones
de internet Explorer lo mejor es desactivar la opción de Protected Mode. (“WatiN”,
2018)
26
27
29
30
30
31
31
32
Algunas de sus ventajas son:
Jenkins es una herramienta open source.
Cuenta con más de 1000 plug-ins para realizar distintas tareas.
Es fácil crear plug-ins para Jenkins (What is Jenkins?, 2018)
El siguiente diagrama describe como Jenkins puede ser integrado con varias herramientas
DevOps:
32
33
33
34
34
35
11 Tabla Comparativa
A continuación, se presentan tablas para comparar las herramientas presentes en el
documento.
Tabla 1: Tabla comparativa de herramientas de automatización
Cucumber No Si No Si Si
TestLeft Si Si No Si Si
Easy B No Si No Si Si
JDave No Si No Si Si
Concordion No Si No Si Si
Jbehave No Si No Si Si
FitNesse No Si No Si Si
SpecFlow No Si No Si Si
Cypress No Si No Si Si
Ranorex Si Si Si Si Si
Sahi Pro Si Si Si Si Si
WatiN No Si No Si Si
TestingWhiz No Si Si Si Si
Selenium No Si No Si Si
Telerik Test Si Si Si Si Si
Studio
35
36
Cucumber No Si No Si Si
TestLeft No Si No Si No
Easy B No Si No Si No
JDave No Si No Si Si
Concordion No Si No Si No
Jbehave No Si No Si Si
FitNesse No Si No Si Si
SpecFlow No Si No Si No
Cypress No Si Si Si No
Ranorex No Si No Si No
Sahi Pro Si Si Si Si No
WatiN No No Si Si Si
TestingWhiz Si Si No Si No
Selenium No Si No Si Si
Telerik Test Si Si No Si No
Studio
Elaboración Propia
La herramienta más utilizada actualmente es Cucumber, debido a su fácil integración con distintos
IDEs, así como con herramientas de integración continúa como Jenkins, soporta Gherkin de
manera nativa sin necesidad de usar algún plugin o herramienta extra.
36
37
12 Conclusiones
Behavior-Driven Development y Gherkin son lo más utilizado actualmente en el desarrollo de
software, debido a las ventajas que provee al proyecto:
Los casos de prueba que usan BDD y Gherkin pueden ser entendidos por todo el
equipo, incluso por los que no tienen conocimientos técnicos.
Son sencillos de aprender.
Existe una gran variedad de herramientas que soportan BDD y Gherkin.
El hecho de usar Gherkin y BDD facilita la mantenibilidad y creación de casos de
prueba, optimizando el tiempo que se utiliza en el control de calidad.
Las herramientas de automatización son muy útiles para optimizar el proceso de control de
calidad y obtener beneficios rápidamente, las herramientas más utilizadas actualmente son:
Cucumber: Herramienta de automatización de casos de pruebas que es open
source, soporta todos los browsers, y se integra fácilmente con otras herramientas.
Jenkins: Herramienta de integración continua, que cuenta con varios plug-in para
trabajar con múltiples herramientas, puede ser configurado para trabajar con cualquier
proyecto.
JMeter: Herramienta para realizar pruebas de carga y estrés en aplicaciones web.
Sahi Pro: Herramienta de gestión de pruebas, que permite al equipo gestión sus
casos de pruebas manuales y automatizadas.
Estas herramientas cumplen con los estándares de calidad para proveer una buena optimización
en el control de calidad.
13 Bibliografía
Libros consultados:
Amodeo, E., (2015). Learning Behavior-driven Development with JavaSript,
Mumbai, India: Packt Publishing.
Carter, J. (Ed), (2012). The cucumber book, United States of America: Pragmatic
Bookshelf.
Páginas web consultadas:
Arturo L. (2018) Que es Quality Assurance? Recuperado de
https://www.analiticaweb.es/que-es-quality-assurance/
AgileAlliance (2018) Recuperado de https://www.agilealliance.org/glossary/bdd
¿Qué es una API y para que sirve? (2018) Recuperado de
https://www.abc.es/tecnologia/consultorio/20150216/abci--201502132105.html
Joe F. Alex D. (2018) When to Automated your testing (and When Not) Recuperado
de https://www.oracle.com/technetwork/cn/articles/when-to-automate-testing-1-
130330.pdf
Carlos H (2017) Que es TDD. Recuperado de https://openwebinars.net/blog/que-
es-tdd-test-driven-development/
37
38
Gamage T. A. (2018) Medium: Cucumber BDD (Part 1): Starting with Feature
Mapping. Recuperado de: https://medium.com/agile-vision/starting-with-bdd-for-
collaborative-development-in-agile-environments-5fb034078b3c
What is Cucumber Testing Tool? (2018, Octubre 31). Recuperado de
https://www.guru99.com/introduction-to-cucumber.html
C# Guide (2018) Recuperado de https://docs.microsoft.com/en-us/dotnet/csharp/
Introduccion a Visual Basic (2018) Recuperado de https://docs.microsoft.com/es-
es/sql/database-engine/dev-guide/getting-started-in-visual-basic-net?view=sql-
server-2014
Java (2018) Recuperado de https://www.java.com/
Javascript (2018) Recuperado de https://www.javascript.com/
¿Qué es PHP? (2018) Recuperado de http://php.net/manual/es/intro-whatis.php
Perl (2018) Recuperado de https://www.perl.org/
Python (2018) Recuperado de https://www.python.org/
Ruby (2018) Recuperado de https://www.ruby-lang.org/es/
Visual Studio (2018) Recuperado de https://visualstudio.microsoft.com/es/vso/
Eclipse (2018) Recuperado de https://www.eclipse.org/
IntelliJ (2018) Recuperado de https://www.jetbrains.com/idea/
SmartBear-TestLeft (2018, Octubre 31). Recuperado de
https://smartbear.com/product/testleft/overview/
Steven D. D. (2018) DZone: Introducing Conversational Unit Test for Java.
Recuperado de https://dzone.com/articles/easyb-introducing-conversation
JDave (2017, Julio 2). Recuperado de http://jdave.org/
Concordion (2018, Octubre 31) Recuperado de
https://concordion.org/discussing/java/markdown/
JBehave (2017, Mayo 5). Recuperado de https://jbehave.org/
Getting Started with FitNesse (2018). Recuperado de
https://www.softwaretestinghelp.com/getting-started-with-fitnesse-a-collaboration-
tool-for-testers-and-developers/
FitNesse (2018). Recuperado de http://www.fitnesse.org/
Specflow (2018). Recuperado de https://specflow.org/
Shivam B. (2018) DZone: Why should you switch to Cypress for Modern Web
Testing. Recuperado de: https://dzone.com/articles/why-should-you-switch-to-
cypress-for-modern-web-te
Ranorex (2018). Recuperado de https://www.ranorex.com/
SahiPro (2018) Recuperado de http://sahipro.com/
38
39
39