Date post: | 14-Apr-2017 |
Category: |
Technology |
Upload: | testingar-meetup |
View: | 195 times |
Download: | 0 times |
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