CONCEPTOSBÁSICOS• PruebadeSoftware– Procesoparaleloaldedesarrolloparadeterminarsielproductoalcanzaelniveldecalidadacordado
• CasodePrueba– Informaciónnecesariaparaaplicarunapruebamuyespecíficaalsistemaconelqueseestátrabajando
• Pruebasprogresivas– Primeraaplicacióndelapruebadiseñada
• Pruebasregresivas– Pruebasrealizadasalsistemaparaverificarquenoaparecennuevosdefectoscomoconsecuenciadeunamodificaciónalsistema
Automatización• Herramientasparalaprueba• Lapruebadesoftwareesunadisciplinaqueimplicalarealizacióndemuchasactividades
• Loquebuscamosautomatizaresloqueconsumemástiempoyesrepetitivo
• Laejecucióndelapruebaconsumeunporcentajemuyaltodelaspruebasenunproyecto
Costosdelaautomatización
• Laautomatizacióntienecostosimportantesasociadosalapreparacióndelaprueba
• Lafasedeejecuciónesdondeseobtieneelretornodelainversión
• Lamadurezdelcódigoesmuyimportanteyaquecadaqueuncasodepruebarequieremantenimientosereducesubeneficio
• Entremásvecesseejecuteuncasodepruebaautomatizadoelvalorganadocrece
Costo-Beneficiodeautomatizar
• AutomatizacióndecasosdepruebaDiagramasdeKiviat
Casodepruebamanual Casodepruebaautomatizado Casodepruebaautomatizadore-usado
UsoEfectivodeHerramientas
• Potencialesbeneficiosdelusodeherramientas.– Trabajorepetitivosereduce.– Laconsistenciayrepetibilidad esmayor.– Evaluaciónobjetiva.– Incrementodelacoberturaenlasregresiones
• Riesgosdelusodeherramientas.– Expectativasnorealistasdelaherramienta.– Subestimartiempo,costoyesfuerzodesuintroducción.– Subestimartiempo,costoyesfuerzoparaalcanzarusoóptimo.
UsoEfectivodeHerramientas
• Riesgos– Subestimarelesfuerzodemantenerloproductosgeneradosporyparalaherramienta.
– Sobrevalorarlaherramienta.– Malcontroldeversionesdelosproductos.– Adquirirherramientasincompatibles.– Perdersoporteparalaherramienta.– Quelaherramientatengamalsoporte.– Silaherramientaesopen-source ogratuitaquesesuspendaestacondición.– Problemasconactualizaciones(nuevasplataformas)
Principalesenfoques.
• Captureandreplay.Sóloparaefectosdidácticos.• Sóloconscripts.Cadacasodepruebaesunscript.• DataDriven Testing.Scriptsgenéricos,losdatosdepruebaenarchivosseparados.
• Keyword Driven Testing.Scripts todavíamásgenéricos,combinadoconDataDriven supotencialesmuchomayor.
Script paracadaCasodePrueba
• Cadacasodepruebaseconvierteenunscript,losdatosdepruebaestáninmersosenelscript
• Ventajas.– Sereduceeltrabajorepetitivo– Laconsistenciayrepetibilidad esalta– Sepuedeejecutarlapruebamientraseltester haceotracosa
• Desventajas– Serequierehabilidadesdeprogramaciónparatodoelequipodeprueba– Elmantenimientosuelesermuycaro,sobretodosielsistemaaprobaresinmaduro
ROIdelaautomatizaciónCaso de Estudio*:
Valor de la automatización de la prueba
*Linz,T.,Daigl,M.GUITestingMadePainless.ImplementationandResultsoftheESSIProjectNumber24306.1998
Preparación EjecuciónN
GastodespuésdenejecucionesPrueba Manual Automatizada Manual Automatizada 1 5 10 20
Test1 16.00 56.00 24.00 1.00 1.74 143% 45% 26% 15%Test2 10.00 14.00 2.00 0.10 2.11 118% 73% 50% 32%Test3 10.00 16.00 4.50 0.20 1.40 112% 52% 33% 20%Test4 20.00 28.00 1.50 0.20 6.15 131% 105% 86% 64%Test5 10.00 15.00 1.00 0.10 5.56 137% 103% 80% 57%Test6 10.00 15.00 1.50 0.10 3.57 131% 89% 64% 43%Test7 10.00 11.50 0.75 0.10 2.31 108% 87% 71% 54%Test8 10.00 11.50 0.50 0.10 3.75 110% 96% 83% 68%Test9 10.00 14.00 3.00 0.10 1.38 108% 58% 38% 23%Test10 10.00 10.60 0.50 0.10 1.50 102% 89% 77% 63%Total 116 191.6 39.25 2.1 2.03 125% 65% 42% 26%
RiesgodelaAutomatización
0
5
10
15
20
25
Preparación Ejecución Mantenimiento
Manual
Automatizado
0
5
10
15
20
25
Manual Automatizada
Ejecución
Ejecución
Preparación
0
5
10
15
20
25
30
Manual Automatizada
Ejecución
Ejecución
Ejecución
Preparación
0
5
10
15
20
25
30
Manual Automatizada
Mantenimeinto
Ejecución
Ejecución
Preparación
DataDriven Testing
Losdatosdeentradasemantienenenarchivosseparados,así,losscripts depruebatomanlosdatosdeentradadeéstosarchivosylosintroducenalsistemaaprobar
Ventajas• Reducenelmantenimientoysevuelvenevolutivos• Proveenciertaestructuraalcódigodeautomatización• Mayoreficiencia.Testers definenlosdatosdeprueba,expertosenautomatizaciónprogramanlosscripts
DataDriven Testing
• Desventajas• Requierehabilidadesmásaltas– Habilidadesparaprogramarlosscripts– Habilidadesparaelmanejodedatos
• Losarchivosdedatospuedenllegaracrecerdemasiadoconciertasaplicaciones
QueesKeyword Driven Testing?
• Loscasosdepruebahechosenkeyword driven consistenenunconjuntodekeywords (comandos)quedefinenlasecuenciadeaccionesquesedebensimularenlaaplicación(SUT).
• Cadakeyword (ocomando)correspondeaunaacciónindividualcomounClick,DobleClick,CerrarVentana,Seleccionarunaopcióndemenú,etc.
Keyword Driven Testing
• Ventajas– Norequiereconocimientosavanzadosdeprogramación.PortantonoserequiereuningenierodeautomatizaciónqueimplementelamanipulacióndeloscontrolesdelGUI
– Sefacilitaeldesarrollodeloscasosdepruebadebidoaquelasinstruccionesocultanlacomplejidaddelaimplementación
– Loscasosdepruebasonfácilesdeleerycomprenderportodoslosmiembrosdelequipo
Keyword Driven Testing
• Ventajas– Fácildeaprender.(SeagilizalacapacitacióndelpersonaldeQA)– NorequierequeelGUIesteterminado,portantosepuedenautomatizarlaspruebasdesdelasfasestempranasdeldesarrollo
Keyword Driven Testing
• Desventajas– Difícildeimplementarlounomismo.(laimplementaciónrequieretécnicasparainterpretarunlenguajeentremuchasotrascosas)
– Esfácilhacerlomalsinlosconocimientosyexperiencianecesario
Keyword Driven Testing
Command Target ParameterSTART_BROWSER Chrome www.google.com
TYPE SearchTextBox Google
PRESS Enter
CLICK link=GoogleMaps
IF Page.Title*=GoogleMaps
LOG Message Testpassed :)
ELSE
LOG Error Testfailed :(
END_IF
SLEEP 2000
CLOSE_BROWSER
Ejemplo#1:BúsquedaenGoogle
Keyword Driven Testing
Command Target ParameterSTART_BROWSER Firefox www.google.com
CLICK link=Gmail
CLICK link=Sign in
TYPE PasswordTextBox password
CLICK Button(Signin)
EXPORT_TO_TEXT InboxTable C:\actual\correos.csv
COMPARE_FILES C:\actual\correos.csv C:\esperado\correos.csv
VERIFY_TEXT EmailCountLabel 1-50of152
CLICK_CELL InboxTable 0,3
EXPORT_TO_TEXT EmailContentPanel C:\actual\correo1.txt
COMPARE_FILES C:\actual\correo1.txt C:\esperado\correo1.txt
CLOSE_BROWSER
Ejemplo#2:Extraerycomparardatosdeunapáginaweb
Keyword Driven Testing
Command Target ParameterREAD_CSV C:\test_data\my_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[“ProjectName”]
CALL MainWindow.WaitTillProgressBarFinish
END_FOR
Id, Included, Project NameProjData_001, N, 1KTasksProjData_002, Y, 1MTasksProjData_003, N, 3KTasks
my_parameters
Ejemplo#3:LeerdeunarchivoCSV
Caminorecorrido hastallegar aKeyword Driven
- Debíamosprobarunproductoqueimplicóaproximadamente500meseshombrededesarrollo(300,000líneasdecódigo)(equivalentea40desarrolladoresdurante1año)
- Iniciamosconunsistemaderegresionesbasadoenscripts yarchivosMSExcel
- Coneltiempo,losscriptscrecieronhastallegarasermás de50,000líneasdecódigo.
- Elmantenimientoalosscripts eramuydifícilparaalguiensinexperiencia
- Dichosistemaestuvoenusopor5años
Caminorecorrido hastallegar aKeyword Driven
- Hubounaoportunidadylaaprovechamosparare-diseñarelsistemaderegresiones
- DespuésdemuchoinvestigarnosencontramosconelenfoqueKeyword Driven
- Ahoraelmantenimientoalosscriptsesfácilyrápido- Losingenierosdepruebastrabajanconmasgustoyhacen
carreraenlaempresa
KeywordDriven:Conclusiones
• Sepotencializalaeficienciadelostesters• Segenerancasosdepruebamásrobustosporquesonmenossensiblesaloscambiosenlaaplicación
• Lacreaciónymantenimientodeloscasosdepruebaesmasrápida
• Loscasosdepruebasonfácilesdeleer.Así,almismotiempoquedan“documentados”
• LaautomatizaciónpuedeiniciarantesdequeelGUIestéterminado
ConclusionesFinales
• Lostesters tienenhabilidadesparticulares• Losbuenostesters nosiempretienenbuenashabilidadesdeprogramación
• Undesarrolladorconconocimientosdepruebaesunbuencandidatoaprogramarlosscripts(asociadosalosKeywords)
• Lostesters puedenseguirhaciendoloquemejorsaben• Sibuscamosmejorareldesempeño,preguntémonos:¿Lostesters sonlaspersonasidealesparaprogramar?