TestingAR V - Una Nueva Visión - Nicolas Arkhipenko - Estrategias y Controversias de Test...

Preview:

Citation preview

Estrategias y controversiasde Test AutomationNICOLÁS ARKHIPENKO

Agenda

→Lapirámide ysus capas.

→Que testean los desarrolladores.

→End-to-endsí,End-to-End no.

→Comoencaja en unmodelo deCD.

→Coberturadetests.

Preconditions(deTestAutomation)

⌦Automatizamos elchecking,noeltesting.

⌦Eltestingmanualnoes reemplazable.

⌦Automationes unconjunto deherramientas.

⌦Etc.

MikeCohn2009

UI

Service

Unit

Alister Scott2012

UI

API

Integration

Component

Unit

ExploratoryTesting

Unit Test• Parte“maspequeña”asertesteada

• Unaclase,unmétodo,unafunción,etc.

• Completoaislamiento(mocks,stubs)

• Tests determinísticos

• Feedback másrápido

UI

API

Integration

Component

Unit

ExploratoryTesting

Component Tests

UI

API

Integration

Component

Unit

ExploratoryTesting

Integration Tests

UI

API

Integration

Component

Unit

ExploratoryTesting

A BUnit Tests Unit Tests

SinMocks

APITests

UI

API

Integration

Component

Unit

ExploratoryTesting

• RESTful APIs automation dondeestaelfocohoy

• Multiples frameworks ytools paraautomatizar

• Rest-assured (java),supert-test(JS),Postman (tool)

UITests

UI

API

Integration

Component

Unit

ExploratoryTesting

• Webdriver comoW3Cstandard

• End-to-end =UItesty/oAPItest

End toEnd automation

CDyEnd-to-end tests

• ContinuosDelivery =principiosypracticasparareducireltiempoparallegara

produción,quedependedetestautomatizadosrapidos yconfiables.

• End-to-end notienenqueserejecutadoscuandosehaceelbuild

• Soloparasmoke testdespues dedeployar paraasegurarsecaminosbasicos del

usuario

• Falsasensacióndecobertura,ypocainversióneninfraestructura

Alister Scott2012

UIAPI

Integration

Component

Unit

ExploratoryTesting

Antipatrón

• Tiempoejecución

• Indeterminismo

RichardBradshaw2016

Tools

IcecreamPyramid

ExploratoryTesting

Ejemplo1– Client side Logic

Cliente(browser) Servidor Basede

datos

Lógicadenegocio

Ejemplo2- Serverside logic

Cliente(browser) Servidor Basede

datos

• Autenticación• Navegación• Buscador• Transacciones

Lógicadenegocio

Ejemplo3– Serverless Architecture

MartinFowler

Cobertura(proporción)

50%

20%

20%

10% UI

API

Integration

Component

Unit

Manual

Cobertura

UI

API

Integration

Component

Unit

ExploratoryTesting

• Code Coverage• Mayorcoverage nosignificamayorcalidad

• 85%“magic number”

• Mutation testing

Cobertura

UI

API

Integration

Component

Unit

ExploratoryTesting

• RAMLoSwagger

• 80%criteriosdeaceptación

Cobertura

UI

API

Integration

Component

Unit

ExploratoryTesting

• 80%criteriosdeaceptación

• %TestCases

• Métricascuantitativasycualitativas

Conclusiones• Unaestrategiarequieredeautomatizartodas lascapas(posibles),sindescuidarlaproporcióndelapiramide.

• Automatizarlascapasdeabajo,esmasimportantequeautomatizarlascapasdearriba(Testunidadnosepuedetestearmanualmente,integraciónyUIsi).

• ContinuosDelivery sepuedeverperjudicadoportests End-to-end automatizados.

• Muchacoberturanoimplicabuenacalidad.

• Comotesters nopodemosignorarunaindustriaquenecesitaalgocompletamentedistintoaloquetradicionalmentehacíamos.

Driver.quit()

Q&A