¿porqué son importantes las pruebas de software?

Post on 03-Jul-2015

505 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

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

Usuarios contentos con nuestro trabajoUsuarios contentos con nuestro trabajo

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

Usuarios insatisfechosUsuarios insatisfechos

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

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

respuestarespuesta

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

Tiempo de Respuesta adecuadoTiempo de Respuesta adecuado

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

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

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

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

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

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.

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.

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.

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

Diseño de ClasesDiseño de Clases

Violaciones de CalidadViolaciones de Calidad

SonarSonar

CheckstyCheckstylele

FindBuFindBugsgs

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

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

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

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

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

by by @domix@domix

Visual ManagementVisual Management

Visual ManagementVisual Management

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…

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

www.joedayz.pewww.joedayz.pe

Noviembre 2013Noviembre 2013

GraciasGracias

top related