37
Building Success Together ® 2017 Automatización: Hacia el Software de Calidad

Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

Building

Success

Together®2017

Automatización:

Hacia el Software

de Calidad

Page 2: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 2

▪ Conceptos Básicos

▪ Automatización

▪ Desarrollo Guiado por Pruebas (TDD)

▪ Integracion Continua

▪ Entrega Continua

▪ Virtualización y la Nube

▪ DevOps

Contenido

Page 3: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

Building

Success

Together®

Conceptos Básicos

Page 4: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 4

▪ Algunos Tipos Básicos de pruebas

○ Unitarias

○ Integración

○ Funcionales

○ Rendimiento

Conceptos Básicos

Page 5: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 5

▪ Repositorios / Control de Versiones

○ Organización

○ Confiabilidad

○ Reducción de riesgo y costo

○ Acceso distribuído

○ Ejemplos SVN, CVS, GIT

Conceptos Básicos

Page 6: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

Building

Success

Together®

Automatización

Page 7: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 7

Primeros pasos: Scripts de pruebas

▪ Mas confiabilidad

▪ Menos costo

▪ Mayor productividad

▪ Un proceso más robusto y predecible

Automatización

Page 8: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 8

Análisis estático de código

▪ Forzar adherencia a estilos

▪ Descubrir errores de diseño de código

▪ Código más ordenado y legible

▪ Ejemplos: Rubocop, Sonar

Automatización

Page 9: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 9

Pruebas de API

▪ Facil de desarrollar

▪ SOAP, RESTful

▪ Ejemplos: SoapUI, Postman

Automatización

Page 10: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 10

Tests de sitios Web

▪ Grabadores

▪ Desarrollo manual

▪ Ejemplos: Selenium, QTP

Automatización

Page 11: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

Building

Success

Together®

Diseño Guiado por Pruebas (TDD)

Page 12: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 12

Test Driven Development

▪ Escribir tests antes del código

▪ Asegurar que el test falle

▪ Escribir el código para que el test pase

Desarrollo Guiado por Pruebas (TDD)

Page 13: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 13

Test Driven Development

▪ Documentación como parte del código

▪ Facilidad de refactoring

▪ Reutilización

▪ Mejor cobertura

Desarrollo Guiado por Pruebas (TDD)

Page 14: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

Building

Success

Together®

Integración Continua

Page 15: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 15

Práctica de desarrollo

▪ Integrar temprano y a menudo

▪ Ramas de pequeñas

▪ Realizar pruebas varias veces al dia

▪ Compilar y crear los entregables varias veces al dia

▪ Mantener el repositorio siempre en un estado entregable

Integración Continua

Page 16: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 16

Servidores de CI

▪ Extraen el código desde un repositorio

▪ Ejecutan pasos configurables

○ Analisis estatico

○ Compilación

○ Tests

▪ Ejemplos: Jenkins, EC, Travis

Integración Continua

Page 17: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 17

Ventajas

▪ Mejoras en productividad

▪ Mayor confiabilidad

▪ Repositorio siempre listo para Producción

▪ Un buen complemento para Agile

Integración Continua

Page 18: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 18

Por qué GIT es el repositorio más usado con CI?

▪ Conveniente para Merge

▪ Organizaciones de trabajo específicas

▪ Facilidad de mantener múltiples repositorios

▪ Rápido y eficiente

Integracion Continua

Page 19: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

Building

Success

Together®

Entrega Continua

Page 20: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 20

Si el repositorio siempre está listo para producción…

… por qué no pasamos a producción mas a menudo?

Entrega Continua

Page 21: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 21

Riesgos del deployment manual

▪ Lentitud

▪ Errores de provisionamiento se detectan tarde

▪ Problemas de versiones

▪ Problemas de permisos

Entrega Continua

Page 22: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 22

Y si automatizamos el paso a producción?

▪ Reducción de riesgo y costos

▪ Fácil vuelta atrás

▪ Entrega mas rapida de features

Entrega Continua

Page 23: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 23

Herramientas de Configuración Automática

▪ Rapidez

▪ Confiabilidad

▪ Repetibilidad

▪ Ejemplos: Puppet, Chef

▪ Configuración es Codigo

Entrega Continua

Page 24: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 24

Pipeline

▪ Concepción clásica

▪ Línea de ensamblaje

Entrega Continua

Developers ArtifactCode Build

Page 25: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 25

Pipeline Tradicional

Entrega Continua

Developers

Artifact

Code

Build

Validation

SCMS

Operator

(Operations

Team)Deployment

Page 26: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 26

Pipeline Automatizado

Entrega Continua

DevelopersArtifact

Code

Build

DeploymentValidation

commit

C.I. Software

(Continuous

Integration)

SCMS

Page 27: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 27

Build Automatizado:

▪ Resolución de Dependencias

▪ Compila/Empaqueta

▪ Organiza el código fuente

▪ Publica artefactos

▪ Proceso de Build es Código

Entrega Continua

Page 28: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 28

Software de Automatización de Build

Entrega Continua

Page 29: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

Building

Success

Together®

Virtualización y la Nube

Page 30: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 30

Máquinas Virtuales + Cloud = Infraestructura como Servicio

Virtualización y la Nube

Page 31: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 31

Infraestructura como servicio:

▪ Escalamiento Horizontal

▪ Infraestructura física innecesaria

▪ Optimización de Recursos

▪ Infraestructura como Código

Virtualización y la Nube

Page 32: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 32

Si la infraestructura es código,

y los procesos de deployment son Código,

el rol de Operaciones cambia profundamente.

Virtualización y la Nube

Page 33: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

Building

Success

Together®

DevOps

Page 34: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 34

Roles de desarrollo?

DevOps

Developers (Codigo de Aplicación)

CI Engineers (Código de Pipeline/ Infraestructura)

QA Engineers(Código de Pruebas)

Page 35: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 35

Tareas Automatizadas

▪ Provisión de Infraestructura

▪ Configuración Plataformas

▪ Procesos de Compilación y Ensamblaje

▪ Deployment

▪ Monitoreo y Tests

Devops

Page 36: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 36

DevOps

Page 37: Automatización: Hacia el Software de Calidadelais.inf.utfsm.cl/wp-content/uploads/2017/08/t-cs... · 2017-08-08 · UNITED STATES CHILE INDIA NISUM.COM P. 2 Conceptos Básicos Automatización

UNITED STATES CHILE INDIA NISUM.COM P. 37

Development + Operations

▪ Entrega rapida de productos

▪ Menores tasa de errores

▪ Correcciones rápidas

▪ Monitoreo

DevOps