vv&t and qa software departments in a medical company

30
VV&T and QA software departments in a medical company Antonio Robres – Diagnostic Grifols, S.A. 28-10-2010

Upload: vangie

Post on 25-Feb-2016

43 views

Category:

Documents


1 download

DESCRIPTION

VV&T and QA software departments in a medical company. Antonio Robres – Diagnostic Grifols, S.A. 28-10-2010. Presentación Introducción Departamento de VV&T Departamento de gestión de la calidad de software Resultados Acciones futuras. Indice. Empresa dentro del holding Grifols S.A. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: VV&T and QA software departments in a medical company

VV&T and QA software departments in a medical company

Antonio Robres – Diagnostic Grifols, S.A.

28-10-2010

Page 2: VV&T and QA software departments in a medical company

Indice

• Presentación• Introducción• Departamento de VV&T• Departamento de gestión de la calidad de

software• Resultados• Acciones futuras

Page 3: VV&T and QA software departments in a medical company

Actividad de Diagnostic Grifols S.A.

• Empresa dentro del holding Grifols S.A.• Sector farmacéutico.• Principal actividad: Diseño, fabricación y

comercialización de instrumentos y reactivos para diagnóstico in-vitro.

• 250 trabajadores (100 en departamentos de I+D)

• Presente en los 5 continentes.

Page 4: VV&T and QA software departments in a medical company

Introducción

• Porque crear un departamento de calidad?– Sector en pleno crecimiento– Fuertes marcos regulatorios

• USA: 21 CFR 820, 21 C. FR 11, FDA Guidances• Europa, Japón, Canadá, etc.: ISO 13485:2003 + requisitos

locales• Normas GMP

– Utilización de nuevas tecnologías para los nuevos productos.

– Necesidad de disminuir el tiempo de desarrollo.– Necesidad de disminuir los errores en producción

• Mucho más costosos de arreglar.• Dañan la imagen de la empresa

Page 5: VV&T and QA software departments in a medical company

Introducción

• Conclusión– Calidad y eficacia en I+D

• Creación de dos departamentos independientes del departamento de desarrollo

– Departamento de Calidad de Software– Departamento de Validación y Verificación de Software

(VV&T)

• Inversión en herramientas para la gestión de la calidad durante todo el ciclo de vida del desarrollo del producto.

Page 6: VV&T and QA software departments in a medical company

Departamento de VV&T

• Grupo independiente del desarrollo de software.• Integrado por 5/7 personas

– Jefe del departamento– 2 Analistas de test– 2 Ingenieros de test– 2 becarios a tiempo parcial (ocasionalmente)

• Presentes en todo el ciclo de vida del proyecto– Especificaciones– Diseño– Implementación

Especificaciones Implementación Verificación y Validación ProducciónDiseño

Page 7: VV&T and QA software departments in a medical company

Funciones departamento de VV&T

• Revisión de especificaciones / requisitos.

• Validación de test unitario y estudio de coberturas de código.

• Test de integración.• Diseño y ejecución Test de

sistema.• Diseño y ejecución del test de

regresión y Smoke test.• Test exploratorio.• Registro de incidencias

detectadas durante las actividades de test.

• Verificación de las incidencias resueltas.

• Automatización de pruebas.

Page 8: VV&T and QA software departments in a medical company

Unit & Integration Test

• Unit Test– Validación de los Unit Test

realizados por los departamentos de desarrollo.

– Realización de Unit Test independientemente del equipo de desarrollo.

• Integration Test:– Diseñados para probar la

integración entre dos o más componentes del sistema.

– Pruebas realizadas mediante JUnit a partir de las los tests unitarios realizados anteriormente.

– Utilización de Drivers y Stubs para su implementación.

Driver

Unit Test

DataManagementScheduler

Unit TestUnit Test

Integration Test

Integration Test

Page 9: VV&T and QA software departments in a medical company

Coberturas

• Se realiza el cálculo de las coberturas de código mediante dos métodos:– Test unitarios o de integración realizados por desarrollo.– Ejecución de los tests de sistema y/o Smoke Test mediante

módulos instrumentalizados.• Se realizan para los módulos realizados en Java o C.

– Java: Cobertura y/o EclEmma– C: Bullseye

• Se obtienen diversas métricas de cobertura– Line coverage– Branch coverage– Complexity

Page 10: VV&T and QA software departments in a medical company

System Test

• Test funcionales exhaustivos sobre una parte específica del software.

• Diseño– Se diseñan a partir de las especificaciones de software.– Se revisan cada vez que se cambian las especificaciones del

software.• Ejecución:

– Se ejecuta de forma periódica antes de la salida de una release “major” a producción.

– La ejecución se realiza por una persona diferente al que lo ha diseñado.

– Se realiza un registro de los resultados y se abren los “bugs” encontrados durante su ejecución.

Page 11: VV&T and QA software departments in a medical company

Smoke Test

• Test de funcionalidades básicas de la aplicación.

• Se realiza una revisión en cada “release” del software.

• Duración de un día (ejecución manual).• Se ejecuta antes de realizar los System test

para evitar un re-testing.• Verifica que no se hayan creado errores en los

componentes básicos del software durante las nuevas implementaciones.

Page 12: VV&T and QA software departments in a medical company

Test Exploratorio

• Realización de pruebas de forma aleatoria sin documentación (o documentación no finalizada) como primera toma de contacto con el software del sistema.

• Se realizan antes del System Test.• Primera toma de contacto con las nuevas

funcionalidades en las nuevas versiones.• Facilita el diseño de los casos de prueba y el

aprendizaje de las nuevas funcionalidades.• Pueden encontrarse fallos no contemplados

dentro de los System Test.

Page 13: VV&T and QA software departments in a medical company

Ciclo de vida de errores

• El equipo de test se encuentra dentro del ciclo de vida de los errores en varias fases:– Fase test: Registra en el

sistema los errores encontrados de la forma más específica y concreta posible.

• Se indica el procedimiento para reproducir el error

• Se indica el comportamiento esperado según las especificaciones

• Se adjuntan los logs y screenshots necesarios.

– Verificación: Se verifica cada uno de los errores resueltos en la versión.

Open

As Designed

Cannot Reproduce FixedDeferred

New

Duplicated

Verified cannot

reproduce

Verified Fixed

Verified As Designed

Verified Duplicated

Closed

Page 14: VV&T and QA software departments in a medical company

Departamento de SQA

• Grupo independiente del desarrollo de software.• Integrado por 4 personas

– Jefe del departamento– 3 Ingenieros de calidad

• Presentes en todo el ciclo de vida del proyecto– Especificaciones– Diseño– Implementación

Especificaciones Implementación Verificación y Validación ProducciónDiseño

SQA

Page 15: VV&T and QA software departments in a medical company

Funciones departamento de SQA

• Responsables de las herramientas de gestión de la configuración– Repositorio de código– Gestor de errores – Gestión de requisitos

• Diseño y despliegue de los entornos de desarrollo, test, y producción

• Auditorías de código• Gestión de versiones• Revisión de especificaciones y diseño• Sistema de integración Continua• Obtención de métricas de desarrollo• Release Notes

Page 16: VV&T and QA software departments in a medical company

Herramientas de Gestión

• Herramienta de gestión de código– Se encargan de la correcta utilización de la herramienta (repositorio de

software)– Gestión de etiquetas y versiones– Realizan training y soporte de las herramientas a los usuarios en caso

necesario.• Herramienta de gestión de errores

– Verifican el cumplimiento de las normas de introducción de errores por parte de los usuarios

– Seguimiento del ciclo de vida de los errores introducidos• Herramienta de gestión de requisitos

– Realización de plantillas de los documentos de requisitos.– Gestión de documentos

Page 17: VV&T and QA software departments in a medical company

Definición de entornos

• Definen los diferentes entornos de los proyectos:– Desarrollo– Test– Producción

• Mantienen y realizan un seguimiento de los diferentes entornos de los proyectos

• Se encargan de configurar los sistemas necesarios para el desarrollo y la ejecución del software– Herramientas de desarrollo de código (Java, C++, Flex…)– BBDD– SO

• Dan soporte a los entornos definidos

Page 18: VV&T and QA software departments in a medical company

Auditorias de código

• Periódicamente se realizan por el departamento de SQA auditorias/revisiones de código:– Se comprueba el cumplimiento de las diferentes normas

establecidas para los lenguajes de programación utilizados• MISRA• Java Code Conventions

– Se validan varios factores del código realizado por desarrollo:• Sintaxis• Dead code• Compilaciones correctas• Código duplicado• Comentarios

– Utilización de herramientas para realizar las auditorias.

Page 19: VV&T and QA software departments in a medical company

Integración Continua

Page 20: VV&T and QA software departments in a medical company

Integración Continua

• Beneficios– Detección rápida de software no compilable.– Detección de fallos en los tests unitarios.– Comprobación de la integración de los módulos. – Detección de los fallos de los tests de integración.– Obtención de una versión estable cada día.– Análisis de código diario.

• Herramientas Open Source como servidor de integración continua.

Page 21: VV&T and QA software departments in a medical company

Metricas

• Obtenidas por sistema de integración continua (ver imagen).

• Métricas tests funcionales o de sistema:

– # CRs implementados– # CRs verificados– # New bugs– # Reopen CRs

Page 22: VV&T and QA software departments in a medical company

Resultados

• Diseño y ejecución de los tests de sistema de todos los módulos del proyecto.

• Más de 1200 errores encontrados mediante los tests de sistema y test exploratorio.

• Diseño y ejecución del smoke test en cada versión beta.• Estudio de coberturas mediante tests unitarios y ejecución de los

test de sistemas (instrumentalización de código).• Verificación de más de 1300 errores encontrados previamente• Verificación de nuevas funcionalidades implementadas.• Mejora de la calidad del código mediante la introducción de reglas

MISRA y Java code coventions.• Despliegue del servidor de integración continua• Framework completo desde requerimientos hasta la fase de test

con total trazabilidad.• Automatización de proyectos pequeños.

Page 23: VV&T and QA software departments in a medical company

Resultados

0

20

40

60

80

100

120

140

160

180

200

CRs

mar-09

may-09

jul-09sep-09

nov-09

ene-10

mar-10

may-10

jul-10sep-10

Incidencias abiertas / Verificadas

AbiertosVerificados

Page 24: VV&T and QA software departments in a medical company

Acciones Futuras

• Herramienta de gestión de test• Automatización de tests• Test no funcionales• Aplicación de metodologías ágiles

Page 25: VV&T and QA software departments in a medical company

Herramienta de gestión de Test

• Objetivos:– Gestión dinámica de los protocolos de los tests de sistema.– Plantillas de pruebas comunes para todos los proyectos– Histórico de ejecuciones para cada uno de los entornos.– Introducción de resultados de los tests ejecutados manualmente– Versionado de test cases– Integración con herramienta de requisitos para tener una

completa trazabilidad.– Ejecución programada de los tests automatizados.– Reporting.

Page 26: VV&T and QA software departments in a medical company

Automatización

• Despliegue de herramientas para la automatización de tests de sistema y de regresión.

• Varias tecnologías implicadas– Java– Flex– C++

• Integración:– Herramienta de gestión de test: obtención de trazabilidad – Entorno de desarrollo

• Propósito: Creación de una API común a todos los proyectos

• Posibilidad de ejecución sin intervención humana – Uso de simuladores

Page 27: VV&T and QA software departments in a medical company

Test no funcional

• Diseño y implementación de pruebas no funcionales– Seguridad– Rendimiento– Stress– Usabilidad– Recovery– Carga continua

Page 28: VV&T and QA software departments in a medical company

Metodologías ágiles

• Implementación de metodologías ágiles en el ciclo de vida del software: SCRUM– Equipo de test presente durante el planning de cada sprint y meeting diario.– Sprint cada 2 – 4 semanas.– Al finalizar un sprint se realizan las pruebas específicas y de regresión.– Los errores detectados se añaden a la lista de backlock y se priorizan

dentro del sprint correspondiente.

Page 29: VV&T and QA software departments in a medical company

Ventajas

• Obtención de un software operativo e incremental en cada versión

• Realización de los tests en cada sprint– Detección temprana de fallos– Errores críticos detectados antes.

• Los equipos de desarrollo y test saben la evolución de sus compañeros y de los dos departamentos– Mayor comunicación entre departamentos– Mayor implicación en el proyecto

Page 30: VV&T and QA software departments in a medical company

Preguntas

[email protected]