Revisiones Tecnicas Formales

Administración de calidad. 29/07/14

La administración de calidad define los procedimientos y estándares a utilizar en el desarrollo de software y a la vez comprobar que todos los involucrados se puedan regir por estos procedimientos.

Los buenos administradores tienen como propósito desarrollar una cultura de calidad, en donde cada integrante del grupo es motivado para que logre un alto nivel de calidad del producto a desarrollar.

La administración de calidad se estructura en 3 actividades principales:

  1. Aseguramiento de calidad:


    es el establecimiento de un marco de trabajo de procedimientos y estándares organizacionales que conduce a desarrollar un software de alta calidad.

Los procedimientos de aseguramiento de calidad se documentan en un manual de calidad que nos debe definir el proceso de desarrollo, existen 2 tipos de estándares:

  • Estándares del producto
  • Estándares del proceso
  • Planificación de la calidad:


    esto se inicia en las primeras etapas de desarrollo en forma independiente de la planificación del proyecto en general, define la calidad del producto deseado, define como valorar la calidad (porque para cada desarrollador son distintos los factores de calidad.

Estructura del plan de calidad

  • Introducción del producto:


    contiene la descripción del producto a desarrollar, el mercado al cual se dirige y las expectativas de calidad del producto
  • Planes del producto:


    esto debe contener la fecha de cuándo va a caducar el producto, los recursos necesarios, las responsabilidades junto con la distribución y el tipo de servicio que se le otorgará al cliente
  • Descripción del proceso:


    contiene los procesos de desarrollo y de servicios a utilizar para el desarrollo y la administración del producto a desarrollar.
  • Metas de calidad:


    contiene las metas y planes de calidad para el producto a desarrollar, incluye una identificación y una justificación de los atributos de calidad más importantes.
  • Riesgos y administración de riesgos:


    contiene los riesgos claves que pudieran afectar la calidad del producto de desarrollo y el plan de contingencias.
  • Control de calidad:


    implica vigilar el procedimiento de desarrollo para asegurar que se siguen los procedimientos de aseguramiento y los estándares de calidad. El proceso de control de calidad tiene su propio conjunto de procedimientos e informes a utilizar durante el desarrollo.

Existen varios métodos para validar la calidad de un proceso o producto, el más utilizado son las revisiones técnicas formales (RTF).


Revisiones técnicas formales (RTF):


Es una actividad que da garantía a la calidad del software, los objetivos de los RTF son:

  • Descubrir errores en la lógica o en la implementación de cualquier representación de software
  • Con los RTF debemos verificar que el software bajo una revisión alcanza los requisitos funcionales
  • Garantizar que el software ha sido desarrollado de acuerdo a los estándares predefinidos.
  • Con esto se consigue un software desarrollado en forma uniforme.
  • Con esto se consigue y se persigue que los proyectos sean más manejables.

Directrices de las RTF:


  • Debemos revisar el producto, no al productor.
  • Fijar una agenda y mantenerla en el tiempo, esto nos va a otorgar mayor profesionalismo y credibilidad al estar frente a un desarrollo de software (DS).
  • Debe tomar notas escritas.
  • Debe limitar el número  de participantes e insistir en la preparación anticipada.
  • Desarrollar una lista de comprobación para cada producto, para que estos sean revisados.
  • Debe repasar todas las revisiones anteriores.

Terminología de calidad de software

                Conjunto de actividades que en conjunto determinan las políticas de calidad, los objetivos, las responsabilidades, y la implantación de estos por medios tales como:

  • Planeación de la calidad
  • Control de calidad
  • Aseguramiento de la calidad
  • Mejoramiento de la calidad

Aseguramiento de calidad:


                Conjunto de actividades planeadas y sistemáticas implantadas dentro del sistema de calidad.

Control de calidad:


                Son técnicas y habilidades de carácter operacional, utilizadas para cumplir los requisitos solicitados por el cliente.

Estándares:


                Especificaciones técnicas u otros criterios precisos para ser utilizados por los integrantes de una organización tales como: normas, guías o definiciones de características.


Validación y verificación de software

                Conjunto de procesos de comprobación y análisis que aseguran que el software que se desarrolla esta acorde a su especificación y cumple las necesidades de los clientes.

Verificación: ¿estamos construyendo el producto correctamente?

                El papel de la verificación comprende comprobar que el software está de acuerdo con su especificación. Se comprueba que el sistema cumple con los requerimientos funcionales y no funcionales que se le han especificado.

Inspecciones del software:

  • Se analiza las diferentes representaciones del sistema (diagramas de requerimientos, de diseño y código fuente) en búsqueda de defectos.
  • Son técnicas de validación estática => no requieren que el código se ejecute
  • Debe realizarse durante todo el ciclo de desarrollo.

Consiste en revisiones sistemáticas tanto de los documentos generados como de los códigos fuentes con el único objetivo de detectar fallas.

  • Las inspecciones se pueden aplicar a la detección de fallos en cualquiera de los documentos generados.
  • Permite detectar un 60% y un 90% de los fallos a unos costos mucho más bajos que las pruebas dinámicas.
  • Permiten detectar multiples defectos en una simple inspección, mientras que las pruebas solo pueden detectar un fallo por prueba.
  • Permite utilizar el conocimiento del domino del lenguaje, que determinan los principales tipos de fallos que se suelen cometer.
  • Las inspecciones son útiles para detectar los fallos de los módulos, pero no detectan fallos a nivel de sistema, que ha de hacerse con pruebas.
  • Las inspecciones no son útiles para la detección de niveles de fiabilidad y evaluación de fallos no funcionales.

Pruebas de software:

  • Se contrasta dinámicamente la respuesta de prototipos ejecutables del sistema con el comportamiento operacional esperado.
  • Técnicas de validación dinámicas => el sistema se ejecuta.
  • Requiere disponer de prototipos ejecutables, por lo que solo pueden utilizarse en ciertas fases del proceso.

Las pruebas de software se realizan en cuatro etapas:

  • Pruebas de unidades (pruebas de métodos y clases)
    1. Se prueba cada método y clases de forma independiente.
  • Prueba de integración o de subsistemas
    1. Se prueban agrupaciones de clases relacionadas.
  • Prueba de sistemas
    1. Se prueba el sistema como un todo.
  • Prueba de validación (o de aceptación)
    1. Prueba del sistema en el entorno real de trabajo con intervención del usuario final.

Existen 2 tipos de pruebas:

                Las pruebas de defectos:

  • Buscan las inconsistencias entre un programa de su especificación.
  • Las pruebas se diseñan para buscar los errores del código.
  • Demuestran la presencia y no la ausencia, de defectos.

Las pruebas estáticas:

  • Buscan demostrar que satisface la especificación operacional y su fiabilidad.
  • Se diseñan para reflejar la carga de trabajo habitual.
  • Sus resultados se procesan estadísticamente para estimar su fiabilidad (contando el número de caídas del sistema) y sus tiempos de respuesta.

Validación y verificación (Roger Pressman)

                La verificación se refiere al conjunto de actividades que aseguran que el software implementa correctamente una función específica y la validación se refiere a un conjunto diferente de actividades que aseguran que el software construido se ajusta a los requisitos del cliente.

                La verificación y validación abarcan una amplia lista de actividades SQA (Aseguramiento de la calidad del software) que incluye:

  • Revisiones técnicas formales.
  • Auditorias de calidad.
  • Monitorización de rendimientos.
  • Simulación.
  • Estudios de factibilidad.
  • Revisión de la documentación.
  • Revisión de la BD.
  • Pruebas de desarrollo.
  • Prueba de validación.
  • Pruebas de instalación.

Las pruebas de sistema constituyen el último peldaño en el cual nosotros podemos evaluar la calidad del software y de forma más pragmática descubrir los errores, las pruebas no deben ser vistas como una red de seguridad, como se suele decir “no se puede probar la calidad”. La calidad se incorpora en el software durante el proceso de ingeniería de software (IS).


Objetivos de validación y verificación (V&V)

  1. Descubrir defectos para corregirlos:
  2. Debemos tratar de provocar fallas en el sistema, como a su vez revisar los productos o los procesos, es una forma de detectar defectos del sistema.
  3. Evaluar la calidad de los productos:

El probar o revisar el software nos dará una idea de la calidad de este.

Definiciones de V&V

  • Según Boehn la verificación ¿estamos construyendo el producto correctamente?
  • Según Ghezzi la verificación son todas las actividades que son llevadas a cabo para averiguar si el software cumple con sus objetivos.