Patricia Coronel ISTQB Certified Software Tester Huddle Group SA - SQC Manager
Agenda Calidad de Producto Atributos de Calidad. Control de Calidad. Validación y Verificación. Administración de la Calidad Testing automatizado. Calidad del producto con Metodologías Agiles. Estándares/Normas para Calidad de Producto ISO-IEC 9126 e ISO 14598 Experiencia profesional
Calidad del software Definición:
“El conjunto de características de una entidad que le confieren su aptitud para satisfacer las necesidades expresadas y las implícitas” ISO 8402 (UNE 66-001-92).
Atributos de Calidad • Interna: medible a partir de las características
intrínsecas, como el código fuente
• Externa: medible en el comportamiento del
producto, como en una prueba
• En uso: durante la utilización efectiva por parte del
usuario
Atributos de Calidad Modelo de calidad para calidad interna y externa Calidad externa e interna
Funcionalidad
Fiabilidad
Adecuaci贸n Exactitud Interoperabilidad Seguridad de Acceso
Madurez Tolerancia a fallos Capacidad de Recuperaci贸n
Cumplimiento de la Funcionalidad
Cumplimiento de la Fiabilidad
Usabilidad
Eficiencia
Aprendizaje Comprensi贸n Operatividad Atractividad
Comportamiento temporal Utilizaci贸n de Recursos
Cumplimiento de la Usabilidad
Cumplimiento de la Eficiencia
Mantenibilidad
Capacidad para ser analizado Capacidad para ser cambiado estabilidad capacidad para ser probado Cumplimiento de la Mantenibilidad
Portabilidad
Adaptabilidad Instalabilidad Coexistencia Capacidad para ser reemplazado Cumplimiento de la portabilidad
Atributos de Calidad Funcionalidad “Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen las necesidades implícitas o explícitas.” Idoneidad Exactitud Interoperabilidad Seguridad de Acceso Cumplimiento de la Funcionalidad
Atributos de Calidad Fiabilidad “Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período establecido.” Madurez Tolerancia a fallos Capacidad de Recuperación Cumplimiento de la Fiabilidad
Atributos de Calidad Usabilidad “Un conjuntos de atributos relacionados con el esfuerzo necesitado para el uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios.” Aprendizaje Comprensión Operatividad Atractividad
Atributos de Calidad Eficiencia “Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas.” Comportamiento en el tiempo Comportamiento de recursos
Atributos de Calidad Mantenibilidad “Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software.” Estabilidad Facilidad de análisis Facilidad de cambio Facilidad de pruebas
Atributos de Calidad Portabilidad “Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra.” Adaptabilidad Co-Existencia Capacidad de instalación Capacidad de reemplazamiento
Atributos de Calidad Modelo de Calidad en Uso
calidad en uso
efectividad
productividad
seguridad de acceso
satisfacci贸n
Atributos de Calidad Efectividad
Permitir a los usuarios alcanzar objetivos especificados con exactitud y completitud, en un contexto de uso especificado. Productividad
Permitir a los usuarios gastar una cantidad adecuada de recursos con relación a la efectividad alcanzada, en un contexto de uso especificado. Seguridad física
Alcanzar niveles aceptables del riesgo de hacer daño a personas, al negocio, al software, a las propiedades o al medio ambiente en un contexto de uso especificado. Satisfacción
Satisfacer a los usuarios en un contexto de uso especificado.
Control de Calidad Son las técnicas y actividades utilizadas para satisfacer los requisitos relativos a la calidad, centradas en dos objetivos fundamentales: mantener bajo control un proceso eliminar las causas de los defectos en las diferentes fases del ciclo de vida En general son las actividades para evaluar la calidad de los productos desarrollados. Son las actividades que conocemos como “Testing”
Validaci贸n y Verificaci贸n
Ciclo de vida del Testing Test Planning Test Analysis Test Design Ciclo de Testing Reporting Post Implementación.
Fases del Testing Fase
Actividad
Entrada
Salida
Test Planning
•Planificación del Testing. •Diseño del Plan de Test
• Requerimientos Plan de Test a verificar. • Tipos de prueba a ejecutar
Test Analysis
• Verificación de los requerimientos. • Evaluación de los escenarios de prueba. • Evaluación de escenarios a automatizar.
• Plan de test
• Lista de escenarios a verificar. • Escenarios a automatizar.
Test Design
Diseño de los casos de prueba, incluyendo los casos automatizados.
• Lista de escenarios a verificar • Escenarios a automatizar
• Casos de prueba • Scripts
Fases del Testing Fase
Actividad
Entrada
Salida
Ciclo de testing
Ejecución de: •Testing Manual. •Testing automatizado •Pruebas de carga •Pruebas de performance. •Etc.
• Build disponible para Testing • Entorno disponible • Casos de prueba diseñados
• Casos de prueba ejecutados con sus respectivos resultados de ejecución. • Bugs
Reporting
Comunicación de los resultados de las pruebas.
• Fin de Ejecución de las pruebas
• Resultados de las pruebas publicados. • Bugs reportados para su resolución. • Informe de Métricas si lo hubiere.
Fases del Testing Fase Post Implementación
Actividad Evaluación de la efectividad del Testing.
Entrada • Fin del ciclo de testing. • Reportes
Salida Plan de mejoras.
Tipos de Pruebas Test Unitario Test Funcional Test de Integración Test de Regresión Test de Carga Test de Performance Test de Seguridad Test de Aceptación
Testing Automatizado ¿Qué es? “Es el uso de software para el control de ejecución de las pruebas, la comparación de las salidas actuales con las esperadas”
Testing Automatizado ¿Por qué automatizar? La automatización es una práctica clave para las metodologías
ágiles La Automatización de las pruebas de software puede reducir significativamente el esfuerzo requerido para el mismo test pero en forma manual, o aumentar significativamente las pruebas que se pueden ejecutar en un tiempo limitado. Permite a la gente hacer su mejor trabajo. La regresión automatizada permite el cambio de código con menor preocupación. Provee feedback en forma temprana y frecuente. Puede ser un buen retorno de inversión
Premisas del Testing Automatizado Ejecución de la Regresión en cada nueva versión del
software Ejecución de más pruebas en forma más frecuente y en menor tiempo. Ejecutar pruebas que serían difíciles o imposibles de hacerlo en forma manual Mejor uso de los recursos Coherencia y Repetibilidad de las pruebas Re utilización de las pruebas Salida al mercado en forma mas temprana. Aumento de la confianza.
Problemas comunes de la Automatización Expectativas irreales Prácticas de Testing pobres. Expectativa de que las pruebas automatizadas
encontraran un montón de defectos nuevos. Falsa sensación de seguridad. Mantenimiento de las pruebas automatizadas
Automatización - Tools
Selenium IDE/RC http://seleniumhq.org Jmeter http://jakarta.apache.org/jmeter/ BadBoy http://www.badboy.com.au/ Fitnesse http://fitnesse.org/ HP Quick Test Pro, HP LoadRunner, HP Performance Center, HP Visual Studio 2010 http://www.microsoft.com/visualstudio/en-us/
Calidad de software con metodologías ágiles Metodologías Agiles Agile Modeling Agile Unified Process (AUP) DSDM Essential Unified Process (EssUP) Extreme Programming (XP) Feature Driven Development (FDD) Open Unified Process (OpenUP) Scrum
Calidad de software con metodologías ágiles Prácticas Agiles Test Driven Development (TDD) Behavior Driven Development (BDD) Code refactoring Continuous Integration Pair Programming Planning poker RITE Method
Automatización en proyectos ágiles Es esencial para asegurar la constante comunicación
entre Testing y Desarrollo Rápida visibilidad de la calidad del código Desarrolladores y testers pueden tener scripts en forma conjunta, y de esa forma los problemas relacionados con la automatización se resuelven en equipo. La automatización es con frecuencia la única forma de darle al testing la velocidad que se necesita para pasar un producto completamente testeado a release o en iteraciones cortas.
Calidad de software con metodologĂas ĂĄgiles Scrum
Calidad de software con metodologĂas ĂĄgiles Extreme Programming
ISO-IEC 9126
ISO-IEC 14598 “Proporciona un marco de trabajo para evaluar la calidad de todos los tipos de productos de software e indica los requisitos para los métodos de medición y para el proceso de evaluación.” Parte 1: Descripción general. Parte 2: Planificación y gestión. Parte 3: Proceso para desarrolladores. Parte 4: Proceso para compradores Parte 5: Proceso para evaluadores Parte 6: Documentación de los módulos de evaluación
Gesti贸n del proceso de evaluaci贸n de calidad de producto: ISO/IEC 14598-1
Proceso de Evaluación Fases o etapas fundamentales del Proceso Evaluación definido en el Estándar ISO 14598 Establecimiento de los Requerimientos de Evaluación Especificación de la Evaluación Diseño de la Evaluación Ejecución de la Evaluación, y Conclusión de la Evaluación
de
Proceso de Evaluación Establecimiento de los Requerimientos de Evaluación. Objetivo: el propósito de este proceso es describir las
metas de la evaluación. Tales metas se relacionan con el uso del artefacto en consideración de uno o varios puntos de vista de usuario y los riesgos asociados El dominio de la aplicación del producto a evaluar debe ser considerado; aspectos críticos como seguridad, económicos, legales o de contexto deben ser tomados en cuenta.
Proceso de Evaluación Especificación de la Evaluación. Objetivo: este proceso consiste en definir el alcance de
la evaluación y las mediciones a realizarse en los atributos del artefacto a evaluar y sus componentes. El nivel de detalle de la salida (el documento de especificación de la evaluación) debe ser tal de modo que se asegure la repetitividad y reproducibilidad del proceso
Proceso de Evaluación Diseño de la Evaluación. Objetivo: consiste en documentar los métodos y procedimientos a utilizar por el evaluador para realizar las mediciones y verificaciones contenidas en el documento de especificación de la evaluación. El evaluador producirá como resultado de este proceso el plan de la evaluación que describe los recursos necesarios (humanos, materiales, tecnológicos, etc.) y la distribución y asignación de los mismos a las actividades.
Proceso de Evaluación Ejecución de la Evaluación. Objetivo: el objetivo de este proceso consiste en
obtener los resultados al realizar todas las acciones para medir y verificar el producto conforme a los requerimientos de evaluación, según lo especificado y planeado. Al final del proceso se completan los registros de evaluación y el borrador del informe de evaluación.
Proceso de Evaluación Conclusión de la Evaluación. Objetivo: este proceso consiste en la revisión del
borrador entre las partes (solicitante y evaluador) y en poner a disponibilidad los documentos finales.
Preguntas
Bibliografía ISO 9126 ISO 14598 “Agile Testing, A practical guide for Testers and Agile
Teams” by Lisa Crispin & Janet Gregory “Software Test Automation – Effective Use of Test Execution Tools” by Mark Fewster & Dorothy Graham