SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Estrategias de QA en un
entorno DevOps
JOSÉ CASTILLO VELÁSQUEZ
D e v O p s E n g i n e e r , M B A C a n d i d a t e , I n g . d e S i s t e m a s , I S T Q B C T A L T e s t M a n a g e r
E m a i l : p e p e _ c a s t 2 @ h o t m a i l . c o m
S e t i e m b r e , 2 0 1 7
Agenda
- ¿Qué es DevOps?
- Etapas, pilares y fases de DevOps
- TDD, BDD y ATDD
- Tipos de pruebas en DevOps
- La pirámide de testing
- Tipos de prueba vs Niveles de Prueba
- Reducir el tiempo de pruebas en DevOps – Docker y Niveles de pruebas
- Métricas de testing en DevOps
- Tableros de desempeño
- Conclusiones
Ing. José Castillo Velásquez, #HablemosDeTesting
¿Qué es DevOps?
DevOps es un enfoque de desarrollo de software que implica el desarrollo continuo, pruebas
continuas, integración continua, despliegue continuo y supervisión continua del software a lo
largo de su ciclo de vida de desarrollo.
Estas actividades son posibles sólo en DevOps, no Agile o cascada, y es por eso que las empresas
de primera han elegido DevOps como el camino a seguir para sus objetivos de negocio.
DevOps es el enfoque preferido para desarrollar software de alta calidad en ciclos de desarrollo
más cortos, lo que resulta en una mayor satisfacción del cliente.
Modelo Tradicional
Cascada
•Los requisitos
completos son
claros y fijos.
•La definición del
producto es
estable
Modelo Ágil
•Requerimientos
cambian
constantemente.
•Desarrollo
necesita ser más
rápido.
Reto DevOps
•Requerimientos
cambian
constantemente.
•Desarrollo
necesita ser ágil.
•Operaciones
necesita ser ágil.
Ing. José Castillo Velásquez, #HablemosDeTesting
Etapas de DevOps
Desarrollo continuo:
Esta es la etapa en el ciclo de vida de DevOps donde el Software se desarrolla continuamente. Esta etapa involucra las fases de Codificación y Construcción y utiliza herramientas como Git y SVN
para mantener las diferentes versiones del código, y herramientas como Ant, Maven, Gradle para construir / empaquetar el código en un archivo ejecutable que puede ser enviado a Los QA
para las pruebas.
Pruebas continuas:
Es la etapa donde el software desarrollado se prueba continuamente para los errores. Para la prueba continua se usan herramientas de automatización como Selenium, JUnit, etc. Además tipos
de desarrollo de prueba como TDD y BDD. En esta fase, el uso de contenedores Docker para simular el entorno de pruebas sobre la marcha, también es una opción preferida. Una vez que el
código se prueba, se integra continuamente con el código existente.
Integración continua:
Esta es la etapa en la que el código que soporta nueva funcionalidad está integrado con el código existente. Dado que hay un desarrollo continuo de software, el código actualizado necesita ser
integrado continuamente, así como suavemente con los sistemas para reflejar los cambios a los usuarios finales. Jenkins es una herramienta muy popular utilizada para la integración continua.
Despliegue continuo:
Es la etapa en la que el código se despliega en el entorno de producción. Aquí nos aseguramos de que el código se despliegue correctamente en todos los servidores. Si hay alguna adición de
funcionalidad o una nueva característica se introduce entonces uno debe estar listo para recibir mayor tráfico del sitio web. Por lo tanto, también es responsabilidad de SysAdmin escalar los
servidores para alojar más usuarios. Dado que el nuevo código se implementa de forma continua, las herramientas de automatización desempeñan un papel importante para ejecutar las tareas
de forma rápida y frecuente.
Monitoreo continuo:
Esta es una etapa muy crucial en el ciclo de vida de DevOps que tiene como objetivo mejorar la calidad del software mediante el seguimiento de su rendimiento. Esta práctica involucra la
participación del equipo de Operaciones que monitoreará la actividad del usuario por errores o cualquier comportamiento incorrecto del sistema. Esto también se puede lograr haciendo uso de
herramientas de monitoreo dedicadas que monitorearán continuamente el desempeño de la aplicación y resaltarán los problemas.
Ing. José Castillo Velásquez, #HablemosDeTesting
Pilares de DevOps
Ing. José Castillo Velásquez, #HablemosDeTesting
Fases de DevOps
Ing. José Castillo Velásquez, #HablemosDeTesting
TDD, BDD y ATDD
Desarrollo guiado por pruebas o TDD es una técnica de programación que se centra en el hecho de
que las pruebas las escribes antes de programar la funcionalidad, siguiendo el ciclo falla, pasa,
refactoriza [ red, green, refactor ] intentando así mejorar la calidad del software que producimos.
En BDD no se prueba solo unidades o clases, se prueban escenarios y el comportamiento de las
clases a la hora de cumplir dichos escenarios. Los test de aceptación son aquellos destinados a
determinar si los requisitos de cierta funcionalidad han sido cumplidos, como usuarios finales.
Ing. José Castillo Velásquez, #HablemosDeTesting
Tipos de testing en DevOps
Cuadrante Q1 - A nivel de unidad contiene unidades de pruebas, tecnología de
cara, pruebas sujetas a la automatización completa y la integración continua.
Cuadrante Q2 - A nivel de sistema, frente a negocios, se trata de pruebas
funcionales, ejemplos, pruebas de historias, prototipos de experiencias de
usuario y simulaciones basadas en los criterios de aceptación, sean manuales o
automatizadas. Creado como parte de la definición de hecho para una historia
Cuadrante Q3 - En el nivel de aceptación del sistema o del usuario, frente a los
negocios, contiene pruebas de pruebas exploratorias, escenarios, flujos de
proceso, pruebas de usabilidad, pruebas de aceptación del usuario, pruebas
alfa y pruebas beta. Estas pruebas suelen ser manuales y orientadas al usuario.
Cuadrante Q4 - En el nivel de aceptación del sistema o operacional, la
tecnología se enfrenta a pruebas de rendimiento, carga, estrés y escalabilidad,
pruebas de seguridad, mantenimiento, administración de memoria,
compatibilidad e interoperabilidad, migración de datos, infraestructura y
pruebas de recuperación. Estas pruebas suelen ser automatizadas.
Ing. José Castillo Velásquez, #HablemosDeTesting
Pirámide de testing
Ing. José Castillo Velásquez, #HablemosDeTesting
Reducir el tiempo de pruebas - Docker
Ing. José Castillo Velásquez, #HablemosDeTesting
Reducir el tiempo de pruebas - Niveles
L4
(1xd)
L3
(4h)
L2
(2h)
Test
failure
Submit
defect
Resolve
defect
Re-run
tests
Commits
L1
(20m-30m)
Davo
Piero
Pepo
Meme
Chino
L0
Ing. José Castillo Velásquez, #HablemosDeTesting
Métricas de QA en DevOps
Métricas de QA en DevOps
Ing. José Castillo Velásquez, #HablemosDeTesting
Tableros de desempeño
Conclusiones
•QA tiene que asegurarse de que todos sus casos de prueba son automatizados y lograr cerca del
100% de cobertura de código.
•QA necesita asegurarse de que sus entornos estén estandarizados y el despliegue en sus cajas
de control de calidad esté automatizado.
•Todas sus tareas de pre-prueba, clean, tareas de post-prueba, etc. son automatizadas y
alineadas con el ciclo de Integración Continua.
•En un entorno DevOps, el papel de QA es alimentar el nuevo código de desarrollo al entorno de
producción.
•Tradicionalmente, el papel del control de calidad es detectar bugs. Pero en la era DevOps, la
responsabilidad principal de QA es evitar que los errores ocurran en el primer lugar. Este
enfoque ayuda a ganar velocidad al mercado y ayuda a reducir los ciclos de prueba.
•La automatización de las pruebas es vital en el entorno DevOps.
Ing. José Castillo Velásquez, #HablemosDeTesting
Ing. José Castillo Velásquez, #HablemosDeTesting
Ing. José Castillo Velásquez, #HablemosDeTesting

Más contenido relacionado

La actualidad más candente

DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation JourneyDevOps Indonesia
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentJoseph Beale
 
Continuous Testing.pptx
Continuous Testing.pptxContinuous Testing.pptx
Continuous Testing.pptxShripadH1
 
The What, Why, and How of DevSecOps
The What, Why, and How of DevSecOpsThe What, Why, and How of DevSecOps
The What, Why, and How of DevSecOpsCprime
 
How To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | EdurekaHow To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | EdurekaEdureka!
 
Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentationCarl Bruiners
 
Basic Guide to Manual Testing
Basic Guide to Manual TestingBasic Guide to Manual Testing
Basic Guide to Manual TestingHiral Gosani
 
Specification by Example
Specification by ExampleSpecification by Example
Specification by ExampleDeclan Whelan
 
Manual Testing Interview Questions | Edureka
Manual Testing Interview Questions | EdurekaManual Testing Interview Questions | Edureka
Manual Testing Interview Questions | EdurekaEdureka!
 
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | EdurekaSoftware Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | EdurekaEdureka!
 
Bridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD PipelineBridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD PipelineDevOps.com
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CDCprime
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software DevelopmentTathagat Varma
 
Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1Mohammed A. Imran
 

La actualidad más candente (20)

DevSecOps - The big picture
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big picture
 
The State of DevSecOps
The State of DevSecOpsThe State of DevSecOps
The State of DevSecOps
 
DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation Journey
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile Environment
 
Continuous Testing.pptx
Continuous Testing.pptxContinuous Testing.pptx
Continuous Testing.pptx
 
The What, Why, and How of DevSecOps
The What, Why, and How of DevSecOpsThe What, Why, and How of DevSecOps
The What, Why, and How of DevSecOps
 
How To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | EdurekaHow To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | Edureka
 
Pruebas fundamentos
Pruebas fundamentosPruebas fundamentos
Pruebas fundamentos
 
Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentation
 
Basic Guide to Manual Testing
Basic Guide to Manual TestingBasic Guide to Manual Testing
Basic Guide to Manual Testing
 
Specification by Example
Specification by ExampleSpecification by Example
Specification by Example
 
Manual Testing Interview Questions | Edureka
Manual Testing Interview Questions | EdurekaManual Testing Interview Questions | Edureka
Manual Testing Interview Questions | Edureka
 
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | EdurekaSoftware Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
 
TDD and BDD and ATDD
TDD and BDD and ATDDTDD and BDD and ATDD
TDD and BDD and ATDD
 
Bridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD PipelineBridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD Pipeline
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software Development
 
5. Métodos de Prueba de Software
5. Métodos de Prueba de Software5. Métodos de Prueba de Software
5. Métodos de Prueba de Software
 
Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1
 
DEVSECOPS.pptx
DEVSECOPS.pptxDEVSECOPS.pptx
DEVSECOPS.pptx
 

Similar a #HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps

Similar a #HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps (20)

Calidad de software y TDD
Calidad de software y TDDCalidad de software y TDD
Calidad de software y TDD
 
Ra.1..
Ra.1..Ra.1..
Ra.1..
 
Material trainer-depc-v1-parte2
Material trainer-depc-v1-parte2Material trainer-depc-v1-parte2
Material trainer-depc-v1-parte2
 
Curso Basico-Testing-03r003.pdf
Curso Basico-Testing-03r003.pdfCurso Basico-Testing-03r003.pdf
Curso Basico-Testing-03r003.pdf
 
Sqm
SqmSqm
Sqm
 
Metodologia clasica en cascada
Metodologia clasica en cascadaMetodologia clasica en cascada
Metodologia clasica en cascada
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Shift Left: En busca del éxito del software
Shift Left: En busca del éxito del softwareShift Left: En busca del éxito del software
Shift Left: En busca del éxito del software
 
metodologia
metodologiametodologia
metodologia
 
Pruebas - Fundamentos
Pruebas - FundamentosPruebas - Fundamentos
Pruebas - Fundamentos
 
Metodologías Aágiles: TDD (Test Driven development)
Metodologías Aágiles: TDD (Test Driven development)Metodologías Aágiles: TDD (Test Driven development)
Metodologías Aágiles: TDD (Test Driven development)
 
Pruebas funcionales
Pruebas funcionalesPruebas funcionales
Pruebas funcionales
 
RA.1.pdf
RA.1.pdfRA.1.pdf
RA.1.pdf
 
Rup disciplinas
Rup disciplinasRup disciplinas
Rup disciplinas
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas Prácticas
 
Trabajo de desarrollo desoftware
Trabajo de desarrollo desoftwareTrabajo de desarrollo desoftware
Trabajo de desarrollo desoftware
 
Rup
RupRup
Rup
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 

#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps

  • 1. Estrategias de QA en un entorno DevOps JOSÉ CASTILLO VELÁSQUEZ D e v O p s E n g i n e e r , M B A C a n d i d a t e , I n g . d e S i s t e m a s , I S T Q B C T A L T e s t M a n a g e r E m a i l : p e p e _ c a s t 2 @ h o t m a i l . c o m S e t i e m b r e , 2 0 1 7
  • 2. Agenda - ¿Qué es DevOps? - Etapas, pilares y fases de DevOps - TDD, BDD y ATDD - Tipos de pruebas en DevOps - La pirámide de testing - Tipos de prueba vs Niveles de Prueba - Reducir el tiempo de pruebas en DevOps – Docker y Niveles de pruebas - Métricas de testing en DevOps - Tableros de desempeño - Conclusiones Ing. José Castillo Velásquez, #HablemosDeTesting
  • 3. ¿Qué es DevOps? DevOps es un enfoque de desarrollo de software que implica el desarrollo continuo, pruebas continuas, integración continua, despliegue continuo y supervisión continua del software a lo largo de su ciclo de vida de desarrollo. Estas actividades son posibles sólo en DevOps, no Agile o cascada, y es por eso que las empresas de primera han elegido DevOps como el camino a seguir para sus objetivos de negocio. DevOps es el enfoque preferido para desarrollar software de alta calidad en ciclos de desarrollo más cortos, lo que resulta en una mayor satisfacción del cliente. Modelo Tradicional Cascada •Los requisitos completos son claros y fijos. •La definición del producto es estable Modelo Ágil •Requerimientos cambian constantemente. •Desarrollo necesita ser más rápido. Reto DevOps •Requerimientos cambian constantemente. •Desarrollo necesita ser ágil. •Operaciones necesita ser ágil. Ing. José Castillo Velásquez, #HablemosDeTesting
  • 4. Etapas de DevOps Desarrollo continuo: Esta es la etapa en el ciclo de vida de DevOps donde el Software se desarrolla continuamente. Esta etapa involucra las fases de Codificación y Construcción y utiliza herramientas como Git y SVN para mantener las diferentes versiones del código, y herramientas como Ant, Maven, Gradle para construir / empaquetar el código en un archivo ejecutable que puede ser enviado a Los QA para las pruebas. Pruebas continuas: Es la etapa donde el software desarrollado se prueba continuamente para los errores. Para la prueba continua se usan herramientas de automatización como Selenium, JUnit, etc. Además tipos de desarrollo de prueba como TDD y BDD. En esta fase, el uso de contenedores Docker para simular el entorno de pruebas sobre la marcha, también es una opción preferida. Una vez que el código se prueba, se integra continuamente con el código existente. Integración continua: Esta es la etapa en la que el código que soporta nueva funcionalidad está integrado con el código existente. Dado que hay un desarrollo continuo de software, el código actualizado necesita ser integrado continuamente, así como suavemente con los sistemas para reflejar los cambios a los usuarios finales. Jenkins es una herramienta muy popular utilizada para la integración continua. Despliegue continuo: Es la etapa en la que el código se despliega en el entorno de producción. Aquí nos aseguramos de que el código se despliegue correctamente en todos los servidores. Si hay alguna adición de funcionalidad o una nueva característica se introduce entonces uno debe estar listo para recibir mayor tráfico del sitio web. Por lo tanto, también es responsabilidad de SysAdmin escalar los servidores para alojar más usuarios. Dado que el nuevo código se implementa de forma continua, las herramientas de automatización desempeñan un papel importante para ejecutar las tareas de forma rápida y frecuente. Monitoreo continuo: Esta es una etapa muy crucial en el ciclo de vida de DevOps que tiene como objetivo mejorar la calidad del software mediante el seguimiento de su rendimiento. Esta práctica involucra la participación del equipo de Operaciones que monitoreará la actividad del usuario por errores o cualquier comportamiento incorrecto del sistema. Esto también se puede lograr haciendo uso de herramientas de monitoreo dedicadas que monitorearán continuamente el desempeño de la aplicación y resaltarán los problemas. Ing. José Castillo Velásquez, #HablemosDeTesting
  • 5. Pilares de DevOps Ing. José Castillo Velásquez, #HablemosDeTesting
  • 6. Fases de DevOps Ing. José Castillo Velásquez, #HablemosDeTesting
  • 7. TDD, BDD y ATDD Desarrollo guiado por pruebas o TDD es una técnica de programación que se centra en el hecho de que las pruebas las escribes antes de programar la funcionalidad, siguiendo el ciclo falla, pasa, refactoriza [ red, green, refactor ] intentando así mejorar la calidad del software que producimos. En BDD no se prueba solo unidades o clases, se prueban escenarios y el comportamiento de las clases a la hora de cumplir dichos escenarios. Los test de aceptación son aquellos destinados a determinar si los requisitos de cierta funcionalidad han sido cumplidos, como usuarios finales. Ing. José Castillo Velásquez, #HablemosDeTesting
  • 8. Tipos de testing en DevOps Cuadrante Q1 - A nivel de unidad contiene unidades de pruebas, tecnología de cara, pruebas sujetas a la automatización completa y la integración continua. Cuadrante Q2 - A nivel de sistema, frente a negocios, se trata de pruebas funcionales, ejemplos, pruebas de historias, prototipos de experiencias de usuario y simulaciones basadas en los criterios de aceptación, sean manuales o automatizadas. Creado como parte de la definición de hecho para una historia Cuadrante Q3 - En el nivel de aceptación del sistema o del usuario, frente a los negocios, contiene pruebas de pruebas exploratorias, escenarios, flujos de proceso, pruebas de usabilidad, pruebas de aceptación del usuario, pruebas alfa y pruebas beta. Estas pruebas suelen ser manuales y orientadas al usuario. Cuadrante Q4 - En el nivel de aceptación del sistema o operacional, la tecnología se enfrenta a pruebas de rendimiento, carga, estrés y escalabilidad, pruebas de seguridad, mantenimiento, administración de memoria, compatibilidad e interoperabilidad, migración de datos, infraestructura y pruebas de recuperación. Estas pruebas suelen ser automatizadas. Ing. José Castillo Velásquez, #HablemosDeTesting
  • 9. Pirámide de testing Ing. José Castillo Velásquez, #HablemosDeTesting
  • 10. Reducir el tiempo de pruebas - Docker Ing. José Castillo Velásquez, #HablemosDeTesting
  • 11. Reducir el tiempo de pruebas - Niveles L4 (1xd) L3 (4h) L2 (2h) Test failure Submit defect Resolve defect Re-run tests Commits L1 (20m-30m) Davo Piero Pepo Meme Chino L0 Ing. José Castillo Velásquez, #HablemosDeTesting
  • 12. Métricas de QA en DevOps
  • 13. Métricas de QA en DevOps Ing. José Castillo Velásquez, #HablemosDeTesting
  • 15. Conclusiones •QA tiene que asegurarse de que todos sus casos de prueba son automatizados y lograr cerca del 100% de cobertura de código. •QA necesita asegurarse de que sus entornos estén estandarizados y el despliegue en sus cajas de control de calidad esté automatizado. •Todas sus tareas de pre-prueba, clean, tareas de post-prueba, etc. son automatizadas y alineadas con el ciclo de Integración Continua. •En un entorno DevOps, el papel de QA es alimentar el nuevo código de desarrollo al entorno de producción. •Tradicionalmente, el papel del control de calidad es detectar bugs. Pero en la era DevOps, la responsabilidad principal de QA es evitar que los errores ocurran en el primer lugar. Este enfoque ayuda a ganar velocidad al mercado y ayuda a reducir los ciclos de prueba. •La automatización de las pruebas es vital en el entorno DevOps. Ing. José Castillo Velásquez, #HablemosDeTesting
  • 16. Ing. José Castillo Velásquez, #HablemosDeTesting
  • 17. Ing. José Castillo Velásquez, #HablemosDeTesting