Desarrollando Software de
         Calidad

                               Ernesto Quiñones A.
                           ernestoq@apesol.org.pe



http://www.apesol.org.pe
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
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
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
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
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
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
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
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
Calidad del Producto Software




http://www.apesol.org.pe
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
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
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
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
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

Desarrollando software de calidad

  • 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 Pruebasde 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 Pruebasde 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 Pruebasde 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 ProductoSoftware ¿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
  • 10.
    Calidad del ProductoSoftware http://www.apesol.org.pe
  • 11.
    Calidad del ProductoSoftware 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 losProcesos 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 losProcesos 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 losProcesos 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