Este documento describe los conceptos y enfoques de la automatización de pruebas de software, incluyendo las pruebas progresivas y regresivas, los costos y beneficios de la automatización, y los enfoques como Data Driven Testing y Keyword Driven Testing. Explica que la automatización reduce el trabajo repetitivo y mejora la consistencia, pero requiere inversión inicial, y que el enfoque de Keyword Driven Testing facilita el desarrollo de pruebas para los equipos de prueba.
15. Data Driven Testing
• Desventajas
• Requiere habilidades más altas
– Habilidades para programar los scripts
– Habilidades para el manejo de datos
• Los archivos de datos pueden llegar a crecer demasiado con
ciertas aplicaciones
16. Que es Keyword Driven Testing?
• Los casos de prueba hechos en keyword driven consisten en un
conjunto de keywords (comandos) que definen la secuencia de
acciones que se deben simular en la aplicación (SUT).
• Cada keyword (o comando) corresponde a una acción
individual como un Click, Doble Click, Cerrar Ventana,
Seleccionar una opción de menú, etc.
17. Keyword Driven Testing
• Ventajas
– No requiere conocimientos avanzados de programación. Por tanto no
se requiere un ingeniero de automatización que implemente la
manipulación de los controles del GUI
– Se facilita el desarrollo de los casos de prueba debido a que las
instrucciones ocultan la complejidad de la implementación
– Los casos de prueba son fáciles de leer y comprender por todos los
miembros del equipo
18. Keyword Driven Testing
• Ventajas
– Fácil de aprender. (Se agiliza la capacitación del personal de QA)
– No requiere que el GUI este terminado, por tanto se pueden
automatizar las pruebas desde las fases tempranas del desarrollo
19. Keyword Driven Testing
• Desventajas
– Difícil de implementarlo uno mismo. (la implementación requiere
técnicas para interpretar un lenguaje entre muchas otras cosas)
– Es fácil hacerlo mal sin los conocimientos y experiencia necesario
20. Keyword Driven Testing
Command Target Parameter
START_BROWSER Chrome www.google.com
TYPE SearchTextBox Google
PRESS Enter
CLICK link=Google Maps
IF Page.Title*=Google Maps
LOG Message Test passed :)
ELSE
LOG Error Test failed :(
END_IF
SLEEP 2000
CLOSE_BROWSER
Ejemplo #1: Búsqueda en Google
21. Keyword Driven Testing
Command Target Parameter
START_BROWSER Firefox www.google.com
CLICK link=Gmail
CLICK link=Sign in
TYPE PasswordTextBox password
CLICK Button(Sign in)
EXPORT_TO_TEXT InboxTable C:actualcorreos.csv
COMPARE_FILES C:actualcorreos.csv C:esperadocorreos.csv
VERIFY_TEXT EmailCountLabel 1-50 of 152
CLICK_CELL InboxTable 0,3
EXPORT_TO_TEXT EmailContentPanel C:actualcorreo1.txt
COMPARE_FILES C:actualcorreo1.txt C:esperadocorreo1.txt
CLOSE_BROWSER
Ejemplo #2: Extraer y comparar datos de una página web
22. Keyword Driven Testing
Command Target Parameter
READ_CSV C:test_datamy_parameters.csv
STORE rows ${LAST_RESULT}
FOR_EACH row rows
IF row[Included] == “N”
CONTINUE
END_IF
GET_WINDOW MainWindow.Id
CLICK MainWindow.MenuBar File|Open Project|row[“Project Name”]
CALL MainWindow.WaitTillProgressBarFinish
END_FOR
Id, Included, Project Name
ProjData_001, N, 1KTasks
ProjData_002, Y, 1MTasks
ProjData_003, N, 3KTasks
my_parameters
Ejemplo #3: Leer de un archivo CSV
23. Camino recorrido hasta llegar a
Keyword Driven
- Debíamos probar un producto que implicó aproximadamente 500
meses hombre de desarrollo (300,000 líneas de código)
(equivalente a 40 desarrolladores durante 1 año)
- Iniciamos con un sistema de regresiones basado en scripts y
archivos MS Excel
- Con el tiempo, los scripts crecieron hasta llegar a ser más de
50,000 líneas de código.
- El mantenimiento a los scripts era muy difícil para alguien sin
experiencia
- Dicho sistema estuvo en uso por 5 años
24. Camino recorrido hasta llegar a
Keyword Driven
- Hubo una oportunidad y la aprovechamos para re-diseñar el
sistema de regresiones
- Después de mucho investigar nos encontramos con el enfoque
Keyword Driven
- Ahora el mantenimiento a los scripts es fácil y rápido
- Los ingenieros de pruebas trabajan con mas gusto y hacen
carrera en la empresa
29. Conclusiones Finales
• Los testers tienen habilidades particulares
• Los buenos testers no siempre tienen buenas habilidades de
programación
• Un desarrollador con conocimientos de prueba es un buen
candidato a programar los scripts (asociados a los Keywords)
• Los testers pueden seguir haciendo lo que mejor saben
• Si buscamos mejorar el desempeño, preguntémonos: ¿Los
testers son las personas ideales para programar?