¿porqué son importantes las pruebas de software?

37
Pruebas del Sistema Pruebas del Sistema JOEDAYZ, Noviembre 2013 JOEDAYZ, Noviembre 2013

Upload: jose-diaz

Post on 03-Jul-2015

502 views

Category:

Technology


0 download

DESCRIPTION

Esta presentación la comparto porque muy pocas organizaciones toman en cuenta la importancia de las pruebas de software.

TRANSCRIPT

Page 1: ¿Porqué son importantes las Pruebas de Software?

Pruebas del SistemaPruebas del SistemaJOEDAYZ, Noviembre 2013JOEDAYZ, Noviembre 2013

Page 2: ¿Porqué son importantes las Pruebas de Software?

Acerca deAcerca de

Ing. José Amadeo Martin Díaz DíazIng. José Amadeo Martin Díaz Díaz

CEO JoeDayz.pe & Docente en EPE UPCCEO JoeDayz.pe & Docente en EPE UPC

Formación Formación

BlueStar Energy (2007)BlueStar Energy (2007)

Bristol Myers Squibb (2006)Bristol Myers Squibb (2006)

Trans Solutions Systems (2003 - 2005)Trans Solutions Systems (2003 - 2005)

Telefonica Servicios Internet (2000 - 2002)Telefonica Servicios Internet (2000 - 2002)

Egresado de la Pontificia Universidad Católica del Perú (1994 - 2000)Egresado de la Pontificia Universidad Católica del Perú (1994 - 2000)

@jamdiazdiaz@jamdiazdiaz

Page 3: ¿Porqué son importantes las Pruebas de Software?

¿Por que son ¿Por que son importantes las importantes las pruebas?pruebas?

Page 4: ¿Porqué son importantes las Pruebas de Software?

Usuarios contentos con nuestro trabajoUsuarios contentos con nuestro trabajo

Page 5: ¿Porqué son importantes las Pruebas de Software?

¿Por que son ¿Por que son importantes las importantes las pruebas?pruebas?

Page 6: ¿Porqué son importantes las Pruebas de Software?

Usuarios insatisfechosUsuarios insatisfechos

Page 7: ¿Porqué son importantes las Pruebas de Software?

¿Cual debe ser nuestra ¿Cual debe ser nuestra preocupación?preocupación?

Page 8: ¿Porqué son importantes las Pruebas de Software?

Que el software funcione Que el software funcione o tendremos este tipo de o tendremos este tipo de

respuestarespuesta

Page 9: ¿Porqué son importantes las Pruebas de Software?

El tiempo La calidad vale mas que el dinero El tiempo La calidad vale mas que el dinero

Page 10: ¿Porqué son importantes las Pruebas de Software?

Tiempo de Respuesta adecuadoTiempo de Respuesta adecuado

Page 11: ¿Porqué son importantes las Pruebas de Software?

¿Y que pruebas debo ¿Y que pruebas debo hacer?hacer?

Page 12: ¿Porqué son importantes las Pruebas de Software?

Mínimo XP-PruebasMínimo XP-PruebasXP: Extreme ProgrammingXP: Extreme Programming

Pruebas de unidad para todoPruebas de unidad para todo

Pruebas de integraciónPruebas de integración

Deben funcionar todas las pruebas antes de Deben funcionar todas las pruebas antes de liberarliberar

Si surge un error (bug), deben escribirse las Si surge un error (bug), deben escribirse las pruebas para replicarlo. pruebas para replicarlo. Un bug es una prueba Un bug es una prueba que olvidamos escribirque olvidamos escribir

Page 13: ¿Porqué son importantes las Pruebas de Software?

Pruebas unitariasPruebas unitarias

Se prueban los componentes aisladosSe prueban los componentes aislados

Generalmente se usan Mocks o StubsGeneralmente se usan Mocks o Stubs

Se usan verificaciones “asserts” para probarSe usan verificaciones “asserts” para probar

Son confundidas con Pruebas de IntegraciónSon confundidas con Pruebas de Integración

Pruebas de caja blancaPruebas de caja blanca

Page 14: ¿Porqué son importantes las Pruebas de Software?
Page 15: ¿Porqué son importantes las Pruebas de Software?

Pruebas de integraciónPruebas de integración

Sirven para probar los componentes Sirven para probar los componentes involucrados en un flujoinvolucrados en un flujo

Validan el trabajo de varios desarrolladoresValidan el trabajo de varios desarrolladores

Pruebas de caja negraPruebas de caja negra

Puede ser automatizados, simulan la Puede ser automatizados, simulan la interacción con el usuario interacción con el usuario

Page 16: ¿Porqué son importantes las Pruebas de Software?
Page 17: ¿Porqué son importantes las Pruebas de Software?

Pruebas de RendimientoPruebas de RendimientoSirven para verificar el comportamiento de una Sirven para verificar el comportamiento de una aplicación baja una demanda excesivaaplicación baja una demanda excesiva

Se genera una gran cantidad de peticiones a la Se genera una gran cantidad de peticiones a la aplicación y verificar su comportamiento.aplicación y verificar su comportamiento.

De esta manera podemos garantizar el numero de De esta manera podemos garantizar el numero de peticiones peticiones aproximadoaproximado bajo las cuales la bajo las cuales la aplicación, servidor, interacción con otros aplicación, servidor, interacción con otros aplicativos, etc. aplicativos, etc. es normales normal

Sugerencia: Sugerencia: Entorno similar a ProducciónEntorno similar a Producción

Page 18: ¿Porqué son importantes las Pruebas de Software?
Page 19: ¿Porqué son importantes las Pruebas de Software?

Pruebas FuncionalesPruebas Funcionales

Prueba basada en la ejecución, revisión y Prueba basada en la ejecución, revisión y retroalimentación de las funcionalidades retroalimentación de las funcionalidades previamente diseñadas para el softwarepreviamente diseñadas para el software

Se hacen mediante modelos de prueba que Se hacen mediante modelos de prueba que buscan evaluar cada una de las opciones con las buscan evaluar cada una de las opciones con las que cuenta el softwareque cuenta el software

Son concretas, especificas y exhaustivas para Son concretas, especificas y exhaustivas para probar y validar que el software hace lo que debe probar y validar que el software hace lo que debe y sobretodo, lo que se ha especificado.y sobretodo, lo que se ha especificado.

Page 20: ¿Porqué son importantes las Pruebas de Software?

Prueba de aceptaciónPrueba de aceptación

Es un escenario de utilización del sistema y el Es un escenario de utilización del sistema y el comportamiento que de él se esperacomportamiento que de él se espera

Visto desde la perspectiva del cliente, usuario o Visto desde la perspectiva del cliente, usuario o sistema externo que interactúa con el sistema externo que interactúa con el programa. programa.

Estas pruebas permiten Validar el ProductoEstas pruebas permiten Validar el Producto. . Mientras que las pruebas unitarias y de Mientras que las pruebas unitarias y de integración permiten Verificar el Producto.integración permiten Verificar el Producto.

Page 21: ¿Porqué son importantes las Pruebas de Software?
Page 22: ¿Porqué son importantes las Pruebas de Software?

Pruebas de calidad de Pruebas de calidad de códigocódigo

Para garantizar que la calidad del código es realmente Para garantizar que la calidad del código es realmente óptima y que la probabilidad de tener errores o bugs en la óptima y que la probabilidad de tener errores o bugs en la codificación es mínima (nunca dejaran de existir pero se codificación es mínima (nunca dejaran de existir pero se busca disminuir la probabilidad)busca disminuir la probabilidad)

Cobertura: % de código desarrollado y probado por Cobertura: % de código desarrollado y probado por pruebas unitariaspruebas unitarias

Análisis de lineas de código: evitar código repetido, que % Análisis de lineas de código: evitar código repetido, que % esta documentado, comentadoesta documentado, comentado

Complejidad: acorde a la implementación ciclomática de Complejidad: acorde a la implementación ciclomática de McCabe.McCabe.

Page 23: ¿Porqué son importantes las Pruebas de Software?

Pruebas de calidad de Pruebas de calidad de códigocódigo

Diseño de ClasesDiseño de Clases

Violaciones de CalidadViolaciones de Calidad

SonarSonar

Page 24: ¿Porqué son importantes las Pruebas de Software?

CheckstyCheckstylele

FindBuFindBugsgs

Page 25: ¿Porqué son importantes las Pruebas de Software?

Impacto de las pruebasImpacto de las pruebas

El tener una buena batería de pruebas nos El tener una buena batería de pruebas nos permite entre otras cosas:permite entre otras cosas:

Validar nuestros requerimientosValidar nuestros requerimientos

Medir el impacto de los refactoringsMedir el impacto de los refactorings

Documenta el proyectoDocumenta el proyecto

Permite mejorar el diseñoPermite mejorar el diseño

Page 26: ¿Porqué son importantes las Pruebas de Software?

Faltan mas pruebasFaltan mas pruebas

Pruebas de SistemaPruebas de Sistema

Pruebas de Integración de SistemaPruebas de Integración de Sistema

Pruebas no funcionalesPruebas no funcionales

Entre otrasEntre otras

Page 27: ¿Porqué son importantes las Pruebas de Software?

Automatización de Automatización de pruebaspruebas

Usamos JENKIS para el build del proyectoUsamos JENKIS para el build del proyecto

Las pruebas deben ser Las pruebas deben ser

RepetiblesRepetibles

AutónomasAutónomas

De ejecución rápidaDe ejecución rápida

Page 28: ¿Porqué son importantes las Pruebas de Software?

Integración continuaIntegración continua

Es el proceso de que cada cierto tiempo o cambio en el Es el proceso de que cada cierto tiempo o cambio en el código (commit en el repositorio), se construye el código (commit en el repositorio), se construye el proyecto automáticamenteproyecto automáticamente

Este proceso realiza:Este proceso realiza:

CompilaciónCompilación

Ejecución de pruebasEjecución de pruebas

Generación de ReportesGeneración de Reportes

Notificación de erroresNotificación de errores

Page 29: ¿Porqué son importantes las Pruebas de Software?
Page 30: ¿Porqué son importantes las Pruebas de Software?
Page 31: ¿Porqué son importantes las Pruebas de Software?

¿Sólo las pruebas ¿Sólo las pruebas ayudan?ayudan?

Page 32: ¿Porqué son importantes las Pruebas de Software?

by by @domix@domix

Page 33: ¿Porqué son importantes las Pruebas de Software?

Visual ManagementVisual Management

Page 34: ¿Porqué son importantes las Pruebas de Software?

Visual ManagementVisual Management

Page 35: ¿Porqué son importantes las Pruebas de Software?

ConclusionesConclusionesLas pruebas son parte del proceso que garantiza el éxito Las pruebas son parte del proceso que garantiza el éxito del producto. Son como los brazos del cuerpo humano. del producto. Son como los brazos del cuerpo humano. Pueden no estar, pero, son importantes para el todo.Pueden no estar, pero, son importantes para el todo.

La clave esta en la comunicación temprana de lo bueno y La clave esta en la comunicación temprana de lo bueno y lo malo o el efecto “bola de nieve” puede causar que el lo malo o el efecto “bola de nieve” puede causar que el proyecto fracaseproyecto fracase

Busque mantener a sus usuarios/clientes satisfechos con Busque mantener a sus usuarios/clientes satisfechos con su trabajosu trabajo

No se ponga en situaciones como la que viene a No se ponga en situaciones como la que viene a continuación…continuación…

Page 36: ¿Porqué son importantes las Pruebas de Software?
Page 37: ¿Porqué son importantes las Pruebas de Software?

Ing. Jose Diaz Ing. Jose Diaz @jamdiazdiaz@jamdiazdiaz

www.joedayz.pewww.joedayz.pe

Noviembre 2013Noviembre 2013

GraciasGracias