liquid day - capitalizando la automatizacion sin programar

30
Capitalizando la automatización de la prueba sin programar AARÓN MORENO MONROY LUIS ALONSO GÓMEZ GAMBOA #sgnext

Upload: software-guru

Post on 15-Apr-2017

109 views

Category:

Software


2 download

TRANSCRIPT

Capitalizandolaautomatizacióndelapruebasinprogramar

AARÓNMORENOMONROYLUISALONSOGÓMEZGAMBOA

#sgnext

PRUEBADESOFTWAREYAUTOMATIZACIÓN

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)

ENFOQUESPARALAAUTOMATIZACIÓN

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

TestSuite

TestCase Procedimientos

TestSteps

Sistema Keyword DrivenEjemploReal#1:Aplicación Desktop

Sistema Keyword DrivenEjemploReal#1:Logderesultados

Sistema Keyword DrivenEjemploReal#2:Aplicación Web

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?

¿PREGUNTAS?

AARÓNMORENOMONROY.www.linkedin.com/in/aaron-moreno-eQLUISALONSOGÓMEZGAMBOA.www.linkedin.com/in/luisalonsogg