XII Encuentro Danysoft en Microsoft Abril 2015
Ciclo de calidad continuaXII Encuentro Danysoft en Microsoft | Directos al código
Jose García | Servicios [email protected] | 916 638683 | www.danysoft.com Abril 2015
Sala 2 Team Foundation Server
Segunda SesiónPrimera Sesión
Tercera Sesión Cuarta Sesión
Automatización de casos de pruebas con Code UI
Integración continua con Release Manager
Pruebas de desarrolloCiclo de calidadcontinua
Sala 2 | Team Foundation ServerAgenda
XII Encuentro Danysoft en Microsoft Abril 2015
Y cuando todo se ha probado se firma la entrega
Clic aquíEscribe aquíVerificar el valor
Los analistas con el cliente crean el documento con requisitos
Los requisitos van a los desarrolladores
Y al Jefe de Calidad, que escribe los Casos de prueba par cada requisito
Cuando hay una Build disponible
Algunos tester hacer pruebas exploratorias
Y otros siguen los scripts
Cuando se encuentra un error, se envía un informe a los desarrolladores
Ciclo de QA Convencional
Gráfico de Microsoft Patterns & Practices
Ciclo de Vida de Aplicaciones Modernas
DefiniciónIdeación
DesarrolloDesde la Idea al software funcionando
MonitorizarImplementaciónTIEMPOS DE CICLOS
ORDENADOS
XII Encuentro Danysoft en Microsoft Abril 2015
De las Pruebas al Ciclo de Calidad Continua
Qué ofrece Visual Studio para el ciclo de calidad
XII Encuentro Danysoft en Microsoft Abril 2015
Feedback Manager • Feedback• Pruebas
exploratorias
FeedBack Client:• Herramienta para
recoger feedback del cliente, mediante un asistente que permite grabar que se incorporan como Work Items.
Pruebas exploratorias• Feedback• Pruebas
exploratorias Prueba exploratoria:• Es una prueba manual. • Las pruebas manuales son las que se han hecho
desde siempre, aunque son una disciplina dentro de ingeniería de software.
• Ejecutas el sistema a ver qué encuentras.
XII Encuentro Danysoft en Microsoft Abril 2015
Pruebas exploratorias• Feedback• Pruebas
exploratorias
Automatización de Prueba exploratoria:• Microsoft Test Manager (MTM) te
permite grabar lo que estás haciendo. Deberías seleccionar o crear un plan de pruebas y dentro de Testing Center eliges hacer Pruebas exploratorias.
• Si se encuentra un error se crea un Elemento de Trabajo tipo Bug
• También se puede crear un Caso de prueba que muestra los pasos dados.
Ejecutas tu aplicación
MTM graba tus acciones, pantallazos, comentarios y otros datos
La grabación facilita reproducir los errores
Y cuando hay actualizaciones en la aplicación, es más fácil volver a ejecutar la prueba
Trazabilidad de requisitos• Gestión de
requisitos• Definición criterios
de aceptación
Elementos de trabajo de TFS:• Trazabilidad de requisitos,
mediante Elementos de Trabajo como Productbacklog, Historias de Usuario, Tareas, Errores, etc.
• Los elementos de trabajo dependerán de la plantilla de procesos
XII Encuentro Danysoft en Microsoft Abril 2015
Definición de criterios de aceptación• Gestión de
requisitos• Definición criterios
de aceptación
Casos de prueba:• Es una prueba manual.• Es un elemento de trabajo que permite saber
cuándo hemos completado un requisito y por tanto está vinculado a la historia de usuario, producto backlog, etc.
• Es una instancia específica de un requisito.• Se genera un script con los pasos en que se hace la
prueba.
Definición de criterios de aceptación• Gestión de
requisitos• Definición criterios
de aceptación
Automatización de Casos de prueba:• Normalmente no se pueden crear todos
los casos posibles – Se crean los que razonablemente hacen que se cumpla el criterio de aceptación.
• Con Microsoft Test Manager, se pueden automatizar y también crear conjuntos de pruebas y configuraciones de prueba que permitan probar el proyecto.
• Se crean antes de codificar como requisitos y después para documentar errores.
XII Encuentro Danysoft en Microsoft Abril 2015
Definición de criterios de aceptación• Gestión de
requisitos• Definición criterios
de aceptación
Stroryboard:• El Storyboard puede ser la base para un
Caso de prueba.• Reduce el tiempo de los ciclos y evita el re-
trabajo mediantes definiciones claras, requisitos de software procesables.
• Enlazar los requisitos a las historias de usuario y a los elementos de trabajo en TFS
• Generar criterios de aceptación y casos de prueba desde los requisitos
Herramientas de calidad de código• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Herramientas de calidad de código:• Workflow de colaboración.
Peticiones de revisión de código
• Métricas• Análisis de código para
refactorizar
XII Encuentro Danysoft en Microsoft Abril 2015
Control de código fuente• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Directivas de Protección:• Configurar las directivas para
recordar que hay que hacer varias tareas antes de proteger el código. Por ejemplo, Builds policy – si se intenta hacer check-in de código que no ha pasado la integración, avisa.
Pruebas Unitarias• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Pruebas unitarias:• Una prueba unitaria es un
método que invoca métodos y verifica su resultado. Normalmente la escribe el desarrollador, poco antes o después de escribir el código a probar
C#[TestClass]public class RooterTests{[TestMethod] // This attribute identifies the method as a unit test.
public void SignatureTest(){
// Arrange: Create an instance to test:var rooter = new Rooter();// Act: Run the method under test:double result = rooter.SquareRoot(0.0);// Assert: Verify the result:Assert.AreEqual(0.0, result);
}}
XII Encuentro Danysoft en Microsoft Abril 2015
Pruebas Unitarias• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Pruebas unitarias:• Las Pruebas Unitarias son muy efectivas
contra la regresión: funciones que solían funcionar, pero que han sido dañadas por alguna actualización
• Las convenciones de las pruebas unitarias están definidas por la plataforma que se utilice para hacerlas
Pruebas Unitarias• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Pruebas unitarias:• Se puede pensar en la prueba unitaria
como ejemplos de cómo se utilizará el método que se está escribiendo
• Hay diferentes estrategias. Recomendada: Test First Development
Ciclo de prueba dentro del desarrollo:• Bajarse el código del control de fuentes• Ejecutar las pruebas existentes• Si algún requisito está obsoleto pero tiene
pruebas, borrar las pruebas• Para cada prueba:
• ROJO – escribir una prueba unitaria y asegurarnos de que falla
• VERDE – escribir el código para que la pase
• Refactorizar• Probar la cobertura de código
• La herramienta de cobertura de código te da una medida del porcentaje de código que ha sido cubierto por la prueba. Hay que intentar llegar a un 80%.
XII Encuentro Danysoft en Microsoft Abril 2015
Pruebas Unitarias - Fakes• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Implementaciones Fakes:• Esta implementación se utiliza para aislar las pruebas. • Si el componente que se está desarrollando depende de otro
componente, que por ejemplo está desarrollando otra persona al mismo tiempo, o que tenga un comportamiento variable según la situación. Entonces hay un problema para ejecutarlo.
• La solución es aislar el componente y reemplazar la dependencia por una implementación fake, que simule lo suficiente de su comportamiento.
Pruebas Unitarias - IntelliTrace• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
IntelliTrace:• Mantiene un log de los eventos clave
de la ejecución del código en modo depuración.
• Está en la versión Ultimate.
XII Encuentro Danysoft en Microsoft Abril 2015
Pruebas Unitarias - IntelliTrace• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Coded UI Test:• Son para probar interfaces gráficos, que
además de las pruebas unitarias, debe incluir temas como presionar un botón o verificar que aparecen las ventanas y contenedores apropiados.
• CUITs son pruebas automatizadas que ejercitan el interfaz de usuario.
Al comenzar a grabar las acciones Visual Studio se minimiza y aparece el Coded UITest Builder en la parte inferior de la pantalla
Pruebas de desarrollo por capa• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Pruebas por capas:• Habría otras pruebas sobre las BBDD.• Hay herramientas en TFS que generan
datos de pruebas. • Hay herramientas en TFS para
comparar antes de distribuir, etc.
XII Encuentro Danysoft en Microsoft Abril 2015
Automatización de Builds• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Integración Continua:• Las Builds de equipo pueden incluir las pruebas para la verificación de la integración de código. • Recomendaciones:
• Proteger todo el código al menos una vez por semana• Antes de proteger el código, bajarse la última versión por si hubiera cambios• Ejecutar el comando Run All Impacted Test, para saber qué pruebas están afectadas por los
cambios (hay que hacer una línea base cuando bajas el código).• Comprobar la cobertura de código (80% como meta)• Lanzar la Build nocturna o rolling build.
Automatización de Builds• Herramientas de calidad de código• Buenas prácticas en el control de
código fuente• Pruebas de desarrollador: pruebas
unitarias y Coded UI• Automatización de Builds
Tipos de Builds:• Manual• Integración continua – Hace una build
en cada check-in• Rolling Build – requiere menos recursos
porque solo tira un build cada vez.• Gated check-in: cada check-in es build y
probado aisladamente y solo si pasa pruebas se funde con el resto del código
• Agendados – para los más grandes normalmente
XII Encuentro Danysoft en Microsoft Abril 2015
Planificación y gestión de pruebas• Planificación y gestión de pruebas• Ejecución de pruebas e informes
ejecución• Lab management
Creación del plan de pruebas:• Se crean tantos planes de prueba como
necesitemos. • Los planes de pruebas permiten la creación
fácil de casos de prueba manuales y de conjuntos de pruebas, y su gestión.
Ejecución de pruebas e informes• Planificación y gestión de pruebas• Ejecución de pruebas e informes
ejecución• Lab management
Ejecución de pruebas e informes de ejecución:• Además hay que ejecutar y hacer seguimiento de
los planes de pruebas, conjuntos de pruebas, y casos de pruebas a través de los criterios de aceptación.
• Los esfuerzos de pruebas son seguidos con facilidad y las pruebas ejecutan análisis que muestran el estado de cada caso de prueba y un resumen visual de los resultados de un conjunto de pruebas.
• Otros informes pre construidos proporcionan soporte para el seguimiento del progreso del plan de pruebas, análisis de fallos en pruebas, casos de pruebas y reactivación de errores
XII Encuentro Danysoft en Microsoft Abril 2015
Entorno de laboratorio – Lab Enviroment• Planificación y gestión de pruebas• Ejecución de pruebas e informes
ejecución• Lab management
Lab Management (MTM):• Un entorno de laboratorio es un grupo de
ordenadores gestionados como una sola unidad, en el cual se despliega el sistema bajo pruebas.
• Evitar tener que estar configurando máquinas y entornos de pruebas.
• No solo asigna máquinas a los entornos de prueba, también ayuda a crear nuevos entornos, los configura para pruebas, despliega el software y configura pruebas.
Un entorno de laboratorio permite:
‐ Configurar un flujo de trabajo build‐
despliegue‐prueba
‐ Mostrar los resultados de las pruebas en un
gráfico, relacionados con los requisitos
‐ Instala automáticamente agentes de prueba
en cada máquina, permitiendo recoger los
datos de las pruebas
‐ Tiene una consola para monitorizar todas las
máquinas
Monitorización en pre-producción• Monitorización en entornos de
pre-producción y producción• Gestión integrada de incidentes
Pruebas de Carga y Rendimiento:• En Visual Studio Ultimate se incluyen pruebas
de carga y pruebas de rendimiento para web y servicios.
• Configuraciones de pruebas flexibles (mix de navegadores, patrones de carga, red, etc.)
• Gráficos en tiempo real y gráficas de datos para análisis.
• Capacidad de reutilizar las pruebas para comprobar la capacidad en producción.
• Tipos de Pruebas de carga: Smoke, cargas bajas y tiempos cortos. Stress, cargas altas y duración alta. Rendimiento. Planificación de capacidades.
XII Encuentro Danysoft en Microsoft Abril 2015
Más InformaciónInformación ampliada sobre licencias, qué incluye cada edición, y utilida-des software en:
shop.danysoft.com
Información ampliada sobre formación, consultoría y cesión profesionales en:
www.danysoft.com/servicios
Valor añadido a la comunidad en forma de eventos como este, artículos técnicos o revistas… en:
www.danysoft.com/comunidad
+50 vídeos en castellano sobre Visual Studio, SQL Server, TFS y soluciones Microsoft en:
www.youtube/danysoftech
GraciasPara más información contacta con Danysoft [email protected] | www.danysoft.com | 916 638683