herramientas para sqa en un ambiente de desarrollo ágil con scrum

19
Herramientas de QA en un entorno de desarrollo ágil con SCRUM

Upload: intellego

Post on 20-Dec-2014

985 views

Category:

Technology


3 download

DESCRIPTION

Scrum es una metodología ágil que se basa en un método holístico de aproximación a la solución mediante entregas parciales, totalmente funcionales y que dotan al proceso de una mayor flexibilidad permitiendo al cliente un mejor control sobre el resultado final. La integración continua es una metodología informática que consiste en realizar de forma automatizada (sin mayor intervención humana) distintas pruebas, ya sean unitarias o funcionales, lo antes posible y lo más seguido posible, con el fin de detectar fallos o bugs cuanto antes. La automatización de pruebas de QA consiste en el uso de software especial (casi siempre separado del software que se prueba) para controlar la ejecución de pruebas y la comparación entre los resultados obtenidos y los resultados esperados. Más información en: http://pages.grupointellego.com/SoftwareFactory.html

TRANSCRIPT

Herramientas de QA en un entorno de desarrollo ágil

con SCRUM

Scrum es una metodología ágil que se basa en un método holístico de aproximación a la solución mediante entregas parciales, totalmente funcionales y que dotan al proceso de una mayor flexibilidad permitiendo al cliente un mejor control sobre el resultado final. La integración continua es una metodología informática que consiste en realizar de forma automatizada (sin mayor intervención humana) distintas pruebas, ya sean unitarias o funcionales, lo antes posible y lo más seguido posible, con el fin de detectar fallos o bugs cuanto antes.

La automatización de pruebas de QA consiste en el uso de software especial (casi siempre separado del software que se prueba) para controlar la ejecución de pruebas y la comparación entre los resultados obtenidos y los resultados esperados.

SCRUM: QA e Integración Continua

SCRUM: Herramientas Integración Continua

ProductBacklog

Sprint Backlog Backlog 30 Days

24 hours

New Functionality

Gestión de la demanda y requerimientos

• Control de Versiones • Subversion (SVN) • GIT

• Servidor de IC • Jenkins • Hudson

• Bug Tracker • Mantis BT • Bugzilla • Jira

• Pruebas Unitarias • JUnit

• Construcción de Proyectos • Maven • Ant

• Repositorio de Librerías • Nexus

• Métricas de Calidad • Sonar

Preparation Release

SCRUM: Herramientas QA

SCRUM Process

Sprint Planning Meeting

Sprint Review

Sprint Retrospective

Update Product Backlog

Daily Cycle

Product Increment

Product Owner

SCRUM Roles

Scrum Master Product Owner

Team Members

User Stake- holder

SCRUM Artefact

Product Backlog Burndown

Sprint Backlog

Product Backlog delta report

Impediment List

• Daily scrum • Daily work

Pruebas Unitarias • Junit

Pruebas Funcionales • Selenium • TestBech • SoapUI

Pruebas de Carga • JMeter

Otras • TestLink

SCRUM: Roles

1 2 3 4 5

SCRUM MASTER TEAM USER STAKE-HOLDER

Representante de los accionistas y clientes que usan el software. Se focaliza en la parte de negocio y el es responsable del ROI del proyecto (entregar un valor superior al dinero invertido). Traslada la visión del proyecto al equipo, formaliza las prestaciones en historias a incorporar en el Product Backlog y las reprioriza de forma regular.

Persona que lidera al equipo guiándolo para que cumpla las reglas y procesos de la metodología. Gestiona la reducción de impedimentos del proyecto y trabaja con el Product Owner para maximizar el ROI.

Grupo de profesionales con los conocimientos técnicos necesarios y que desarrollan el proyecto de manera conjunta llevando a cabo las historias a las que se comprometen al inicio de cada sprint.

Destinatario final del producto. Como bien lo dice la paradoja, El árbol cae en el bosque cuando no hay nadie ¿Hace ruido? Aquí la definición sería Si el software no es usado ¿fue alguna vez escrito?.

Grupo de gente que hace posible el proyecto y para quienes el proyecto producirá el beneficio acordado que justifica su producción. Sólo participan directamente durante las revisiones del sprint.

PRODUCT OWNER (PO)

• Maven es una herramienta de software para la gestión y construcción de

proyectos Java creada por Jason van Zyl, de Sonatype, en 2002. Es similar en

funcionalidad a Apache Ant, pero tiene un modelo de configuración de

construcción más simple, basado en un formato XML.

• Maven utiliza un Project Object Model (POM) para describir el proyecto de

software a construir, sus dependencias de otros módulos y componentes

externos, y el orden de construcción de los elementos. Viene con objetivos

predefinidos para realizar ciertas tareas claramente definidas, como la

compilación del código y su empaquetado.

Herramientas: Maven

• Nexus es una herramienta de software para la gestión de repositorios

empresariales, es un producto de la misma firma que produce Maven.

• Almacenará las librerías propias de la organización, de manera que se puedan

crear fácilmente dependencias a otros proyectos internos.

• Almacenará las librerías que necesitemos y que hayamos descargado de manera

manual.

• Servirá de proxy a otros repositorios.

• Proporciona herramientas de control de acceso, gestión de usuarios, envío de

correos, etc, que ayudan a definir y coordinar los equipos de desarrollo.

Herramientas: Nexus

• Jenkins es un software de Integración continua open source escrito en Java.

• Jenkins proporciona integración continua para el desarrollo de software. Es un

sistema corriendo en un servidor que es un contenedor de servlets,

como Apache Tomcat. Soporta herramientas de control de

versiones como CVS, Subversion, Git, Mercurial, Perforce y Clearcase y puede

ejecutar proyectos basados en Apache Ant y Apache Maven, así como scripts de

shell y programas batch de Windows.

Herramientas: Jenkins

• SonarQube (conocido anteriormente como "Sonar") es una plataforma para

evaluar código fuente.

• Es software libre y usa diversas herramientas de análisis estático de código

fuente como Checkstyle, PMD o FindBugs para obtener métricas que pueden

ayudar a mejorar la calidad del código de un programa.

Herramientas: Sonar

• Mantis Bug Tracker es un software que constituye una solución muy completa

para gestionar tareas en un equipo de trabajo.

• Esta aplicación se utiliza para testear soluciones, hacer un registro histórico de

alteraciones y gestionar equipos remotamente.

• Permitir configurar la transición de estados (abierto, encaminado, testeado,

devuelto, cerrado, reabierto).

• Puede especificar un número indeterminado de estados para cada tarea

(abierta, encaminada, testeada, devuelta, cerrada, reabierta).

• Permite introducir diferentes perfiles (programador, tester, coordinador,

visualizador).

Herramientas: MantisBT

• JUnit es un conjunto de bibliotecas que son utilizadas en programación para

hacer pruebas unitarias de aplicaciones Java.

• JUnit es un conjunto de clases (framework) que permite realizar la ejecución

de clases Java de manera controlada, para poder evaluar si el funcionamiento

de cada uno de los métodos de la clase se comporta como se espera.

• JUnit es también un medio de controlar las pruebas de regresión, necesarias

cuando una parte del código ha sido modificado y se desea ver que el nuevo

código cumple con los requerimientos anteriores y que no se ha alterado su

funcionalidad después de la nueva modificación.

Herramientas: JUnit

• JMeter es un proyecto de Apache que puede ser utilizado como una

herramienta de prueba de carga para analizar y medir el desempeño de una

variedad de servicios, con énfasis en aplicaciones web.

• JMeter puede ser usado como una herramienta de pruebas unitarias

para conexiones de bases de datos con JDBC , FTP , LDAP , Servicios

web , JMS , HTTP y conexiones TCP genéricas. JMeter puede también ser

configurado como un monitor , aunque es comúnmente considerado una

solución ad-hoc respecto de soluciones avanzadas de monitoreo.

• Mientras que JMeter es clasificado como una herramienta de "generación de

carga", no es una descripción completa de la herramienta. JMeter soporta

aserciones para asegurarse que los datos recibidos son correctos, por cookies de

hilos, configuración de variables y una variedad de reportes.

Herramientas: JMeter

• Selenium es un entorno de pruebas de software para aplicaciones basadas en la

web. Selenium provee una herramienta de grabar/reproducir para crear

pruebas sin usar un lenguaje de scripting para pruebas (Selenium IDE).

• Incluye también un lenguaje específico de dominio para pruebas (Selanese)

para escribir pruebas en un amplio número de lenguajes de programación

populares incluyendo Java, C#, Ruby, Groovy, Perl, Php yPython.

• Las pruebas pueden ejecutarse entonces usando la mayoría de los navegadores

web modernos en diferentes sistemas operativos como Windows, Linux y OSX.

Herramientas: Selenium

• TestBench es un entorno de pruebas de software para aplicaciones basadas en

vaadin. Se fundamenta en el framework Selenium provee una herramienta de

grabar/reproducir para crear pruebas sin usar un lenguaje de scripting para

pruebas.

• Las pruebas pueden ejecutarse entonces usando la mayoría de los navegadores

web modernos en diferentes sistemas operativos comoWindows, Linux y OSX.

Herramientas: TestBench - Vaadin

• TestLink es una herramienta gratuita que permite crear y gestionar casos de

pruebas y organizarlos en planes de prueba.

• Estos planes permiten a los miembros del equipo ejecutar casos de test y registrar los resultados dinámicamente, generar informes, mantener la trazabilidad con los requerimientos, así como priorizar y asignar tareas.

• En el área de Verificación de Entrega Software, esta herramienta nos va a permitir desarrollar las siguientes actividades:

• Hacer el seguimiento y la traza al conjunto de planes de pruebas y casos de pruebas definidos sobre los proyectos.

• Publicar el estado de la ejecución de los planes de prueba, del plan de testing aplicado en cada entrega, y los resultados que se están obteniendo.

Herramientas: TestLink

• SoapUI es una aplicación muy versátil que nos permite probar, simular y

generar código de servicios web de forma ágil, partiendo del contrato de los

mismos en formato WSDL y con vínculo SOAP sobre HTTP.

• soapUI tiene dos distribuciones: soapUI freeware (GNU LGPL y opensource java)

y soapUIPro (comercial), en versión de escritorio, online y plugin para varios

IDE.

• Esta es una de las mejores maneras de probar nuestro WebService antes de

pasar a la producción o liberación.

Herramientas: SoapUI

Acerca de INTELLEGO

MISIÓN

Potenciar las capacidades de ejecución de nuestros clientes a través de la correcta aplicación de la tecnología.

HISTORIA

Somos una empresa de origen mexicano con 11 años de exitosa trayectoria y presencia en 7 países.

CAPACIDAD

Más de 1.800 consultores capacitados en diversas metodologías y tecnologías líderes en el mercado

LIDERAZGO

Número 1 en servicios de Information Management y Business Intelligence en México - IDC. México IT Services Tracker, Intellego Markets 2009 y 2010.

OBJETIVIDAD

Intellego es agnóstico a la tecnología. Ayudamos las empresas a obtener el mejor retorno de sus inversiones en Tecnologías de la Información.

EXPERIENCIA

Hemos trabajado en más de 400 proyectos con más de 200 clientes.