Una presentación de como aplicar dentro de proyectos de desarrollo o implantación de software los criterios de calidad esperados en este tipo de situaciones.
1. Desarrollando Software de
Calidad
Ernesto Quiñones A.
ernestoq@apesol.org.pe
http://www.apesol.org.pe
2. De que hablaremos
● Aseguramiento de la Calidad y Pruebas de
Software
● Procesos de Pruebas de Software y de
Sistema.
● Calidad del Producto Software.
● La seguridad en los procesos de desarrollo.
http://www.apesol.org.pe
3. QA y Testing
● Aseguramiento de la Calidad <> Pruebas
● Se suele confundir mucho el tema de
aseguramiento de calidad con solo ejecutar
pruebas de software.
● Según NTP ISO/IEC 12207 (Procesos de Ciclo de
vida de Software): “proporciona la seguridad
apropiada de que los productos y procesos
software del ciclo de vida del proyecto son
conforme con sus requerimientos especificados
y se adhieren a los planes establecidos”.
http://www.apesol.org.pe
4. QA y Testing
Verificación : Verificar si el producto software cumplió con los Contratos
requerimientos y condiciones de las actividades.
Procesos Requerimientos Diseño Código Integración Documentación
Debemos responder esto:
¿En que parte de la ejecución de los procesos se esta llevando a cabo la
verificación? ¿hay un plan?
Proceso ¿Cual es el nivel de independencia de la verificación?
de
QA
Validación : Validar si el software con los requerimientos que implementa
cumple con el uso previsto, esto se acerca más a una auditoría
porque debemos reunir evidencia objetiva.
Pruebas: Las convencionales y adicionalmente estrés, sobrecarga, capacidad
ó habilidad de respuesta ante problemas, etc.
Debemos responder esto:
¿El proyecto requiere un esfuerzo de validación?
http://www.apesol.org.pe
5. QA y Testing
Proceso de QA
Aseguramiento del Producto Verificación
¿Como definimos la calidad del producto?
NTP ISO/IEC 9126-1
Aseguramiento del Proceso
Validación
Cumplimos con los contratos y planes,
seguimos prácticas de ingeniería de software,
personal, procesos y normas idóneos, etc.
Aseguramiento del Sistema de
Revisión
Calidad
Conjunta Auditoría
Contar con las actividades de gestión de
Proveedor-Cliente
la calidad de ISO 90003
http://www.apesol.org.pe
6. Procesos de Pruebas de Software y
de Sistema
¿Donde empiezan las pruebas?
Gerencia T.I. Y Gerencias
Involucradas
Área De Pruebas
Área de Desarrollo y Pruebas
Área de Desarrollo
http://www.apesol.org.pe
7. Procesos de Pruebas de Software y
de Sistema
TMMi http://www.tmmifoundation.org/html/tmmiorg.html
Framework
específico de un
Modelo de Procesos
de Pruebas de
acceso libre, sigue el
estilo de CMMi,
diseñado para medir
niveles de capacidad
de procesos.
http://www.apesol.org.pe
8. Procesos de Pruebas de Software y
de Sistema
ISO/IEC 29119 http://www.softwaretestingstandard.org/
Parte 1: Conceptos y Definiciones
Parte 2 Parte 3 Parte 4
Procesos de Pruebas Documentación Técnicas de Pruebas
De Pruebas
Pruebas en la Organización
Políticas Plan
Técnicas de Pruebas
Gestión de Pruebas
Estrategia Estado
Métricas de Pruebas
Pruebas Dinámicas Pruebas
Culminación
Dinámicas
http://www.apesol.org.pe
9. Calidad del Producto Software
¿Como saber si nuestro producto es de calidad?
Los criterios de calidad de un producto se fijan desde el
momento de la concepción del mismo, la calidad debe poder
ser medida objetivamente.
NTP ISO/IEC 9126 – Calidad del Producto Software
(actualmente en ISO se esta creando la ISO/IEC 25000 que es
mucho más ambiciosa)
http://www.apesol.org.pe
11. Calidad del Producto Software
Parte 1: Modelo de Calidad
Parte 3:
Parte 2:
Métricas Internas Parte 4:
Métricas Externas
Métricas de Calidad
En USO
(se validan)
(se verifican)
http://www.apesol.org.pe
12. Seguridad en los Procesos de
Desarrollo
● Un software seguro requiere que los procesos de
desarrollo sean seguros.
● Tanto en el software privativo como en el software
libre se han encontrado diversos casos de
infiltración de código malicioso no deseado por
falta de control.
● El oficial de seguridad de la institución cumple un
rol fundamental en la validación y generación de
practicas seguras de desarrollo.
http://www.apesol.org.pe
13. Seguridad en los Procesos de
Desarrollo
● NTP ISO/IEC 17799 Código de Buenas Prácticas
para la gestión de la información.
● Aplique los controles fundamentales:
● Activos identificados, asignados y bajo control con
responsabilidad (y penas) por su uso (o mal uso).
● Acceso controlado a las instalaciones de desarrollo,
físico y lógico, especialmente en entornos distribuidos
de desarrollo, quien entra, quien sale, que hace, es
fundamental para minimizar el riesgo de manipulaciones
no autorizadas de aplicaciones en desarrollo.
http://www.apesol.org.pe
14. Seguridad en los Procesos de
Desarrollo
● Aplique los controles fundamentales:
● Control y monitoreo de proveedores y empleados
● Acuerdos de Confidencialidad, firmados, responsabilidad
aceptada, asumida y sanciones claramente establecidas.
● Entrenamiento en las políticas de seguridad de la
información.
● Fin de contratos: retorno de activos asignados, revocación
de accesos.
● Aplicados directamente al desarrollo
● Políticas de gestión de cambios
● Segregación de tareas
● Planificación de infraestructura
● Aceptación de nuevos sistemas
● Documentación controlada, con accesos definidos
http://www.apesol.org.pe
15. En Resumen
● No es necesario acceder a grandes y complejas
herramientas para desarrollar software con calidad.
● No hay que reinventar la rueda, existen muchas normas,
guías y estándares a las cuales recurrir.
● Se requiere un nivel de autonomía y autoridad razonable
para ver que estos criterios se cumplan.
● Esto es igualmente válido tanto si adquirimos ó
desarrollamos in-house, si el desarrollo es aislado ó
colaboratívo, con herramientas libres ó privativas, bajo
métodologías convencionales ó ágiles, etc.
● ¿Formatos? En tiempos modernos hay herramientas como
wikis, gestión de código, gestión documental, etc. Que nos
pueden ayudar a no llenarnos de papeles.
http://www.apesol.org.pe