Issuu on Google+

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


Calidad de Software