240 likes | 374 Views
Desarrollo Con CALIDAD, con Visual Studio 2008. Aurelio Porras Development Tools Advisor Aurelio.Porras@microsoft.com. Agenda. Visual Studio Team System ¿Porqué calidad del software? Calidad de software con Team System Construir correctamente Build it right – make sure that works
E N D
Desarrollo Con CALIDAD,con Visual Studio 2008 Aurelio PorrasDevelopment Tools AdvisorAurelio.Porras@microsoft.com
Agenda • Visual Studio TeamSystem • ¿Porqué calidad del software? • Calidad de software con TeamSystem • Construir correctamente • Builditright – makesurethatworks • Construir lo correcto • Buildtherightthing • Calidad en global • Calidad del proceso de desarrollo
Visual Studio TeamSystem Desarrollador Profesional de Base de Datos Diseñador Arquitecto Probador Analista de Negocio Jefe de Proyectos Incrementar la Transparecia en Proyectos Facilitar la Colaboración en Equipo Mejorar la Calidad del Software
¿Porquécalidad de software? • El defecto es más costoso cuanto más cerca estemos de liberar versión • Proceso en cascada vs. Proceso iterativo-evolutivo $1,000+ $100 $10 $1 Coste / $ AnálisisDiseñoCodificaciónPruebasVersión Tiempo en el que se encuentra el defecto
Calidad de softwareAsegurarlatemprano y a menudo • Herramientascentradas en la calidad • Para reducir el coste global del proyecto • Integradas en todo el ciclo de vida
Calidad de softwareIntegrada en todo el ciclo de vida Ciclo de Vida Análisis Diseño Desarrollo Pruebas • Seguimiento • Requisitos • Escenarios • CalidadesServicio • Modelo de Despliegue • Métricas de Código • AnálisisEstático • PruebasRendimiento • PruebasUnitarias • Control Código • Integración (Continua) • PruebasAutomatizada • Pruebas Web • Pruebas de Carga • PruebasManuales • Integración (Planificada) • SeguimientoDefectos
Calidad de softwareIntegrar frecuentemente el trabajo • Control de versiones y sistema de integración • Directivas de protección de código(check-in policies) • Integración continua • Integracionesplanificadas
Calidad de software • Construir correctamente • Builditright & makesurethatworks • Herramientas que ayudan a escribir código correctamente y a comprobar que funciona correctamente • Construir lo correcto • Buildtherightthing • Herramientas que ayudan a comprobar que el código escrito hace lo que tiene que hacer • Calidad en global • Seguimiento de defectos • Trazabilidad de requisitos • Transparencia del proceso
Construir correctamente • No sólo código que compile • Código que cumpla normativa • Análisis de Código [TeamDev, TeamDB, TeamSuite] • Código mantenible • Métricas de Código[TeamDev, TeamSuite] • Código respetuoso con los recursos • Pruebas de Rendimiento[TeamDev, Team Suite] • Código verificable, hace lo que se esperaba • Pruebas Unitarias[Pro, TeamDev, TeamDB, TeamSuite] • Cobertura de Código[TeamDev, TeamTest, TeamSuite] • MI = 171 - 5.2 * log2(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * log2(Lines of Code)
Construir correctamente • ¿Puedo obligar ayudar a los miembros de mi equipo en el uso de estas herramientas? • “A bote pronto”, utilizando directivas de protección de código en Control de Código [TFSCodeControl] • “A toro pasao”, utilizando tareas en el Proceso de Integración,integración continua[TFSTeamBuild] • “Con burocracia”, utilizando técnicas concretas asociadas a la metodología que se quiera seguir durante el proceso de construcción de software • Ej. Desarrollo Dirigido por Pruebas (Test DrivenDevelopment), para asegurar que se escriben pruebas unitarias
Construir lo correcto • Comprobar que lo construido cumple con las especificaciones • Que cumpla con los requisitos funcionales • Pruebas Automatizadas[TeamDev, TeamTest, TeamSuite] • Pruebas Manuales [TeamTest, TeamSuite] • Pruebas Web [TeamTest, TeamSuite] • Que cumpla con los requisitos operacionales • Pruebas Web [TeamTest, TeamSuite] • Pruebas de Carga [TeamTest, TeamSuite]
Construir lo correcto • ¿Puedo obligar ayudar a los miembros de mi equipo en el uso de estas herramientas? • “A toro pasao”, utilizando tareas en el Proceso de Integración, integraciones planificadas[TFSTeamBuild] • “Con burocracia”, utilizando técnicas concretas asociadas a la metodología que se quiera seguir durante el proceso de construcción de software • Ej. Auditoría de calidad llevado a cabo por el equipo de Calidad: paso de pruebas, cumplimiento de especificaciones y notificación de defectos
Calidad en global • Trazabilidad • Requisitos, Defectos y otros artefactos [TFSWorkitems] • Transparencia del proceso • Estado de proyecto “online” [TFSDatawarehouse y TFSReports]
Trazabilidad Típica en un proyecto Agile Escenario Tests / Tested By Parent / Child Parent / Child Prueba Defecto Tarea Change Sets Change Sets Code Coverage Código
TrazabilidadSólo con control de código Escenario Tests / Tested By Parent / Child Parent / Child Prueba Defecto Tarea Code Coverage Change Sets Change Sets Código
TrazabilidadSeguimiento de defectos ycontrol de código Story Tests / Tested By Parent / Child Parent / Child Test Bug Task Code Coverage Change Sets Change Sets Code
Transparencia del procesoInformes Frente a cobertura de código, … Ratios de pruebas(pass, inconclusive, fail) mostrado en barras code churn, … y bugs activos
Para llevar … Calidad de softwareIntegrada en todo el ciclo de vida Ciclo de Vida Análisis Diseño Desarrollo Pruebas • Seguimiento • Requisitos • Escenarios • CalidadesServicio • Modelo de Despliegue • Métricas de Código • AnálisisEstático • PruebasRendimiento • PruebasUnitarias • Control Código • Integración (Continua) • PruebasAutomatizada • Pruebas Web • Pruebas de Carga • PruebasManuales • Integración (Planificada) • SeguimientoDefectos
Recursos • Team System Developer Center http://msdn2.microsoft.com/en-us/teamsystem/aa718755.aspx • Microsoft Tester Center http://www.msdn.com/testercenter • “How Do I” Video Series http://msdn2.microsoft.com/en-us/teamsystem/bb507749.aspx