Tabla de Contenidos

Controlar la Calidad Interna

Objetivos

El objetivo de este proceso es el controlar la calidad interna del producto que se entregará en la release. Con la calidad interna entendemos aspectos que no son visibles/detectables por el usuario final (no afectan a la funcionalidad directamente), pero que pueden afectar en otros aspectos. Esos aspectos, los desglosamos a continuación:

En la disciplina de requistos, en el documento de requisitos no funcionales, se habrá especificado qué grado de calidad interna mínima debe de cumplir el código a entregar. Una vez pasado las plantillas se evaluará qué cambios, hay que realizar sobre el código antes de liberar la release y se pasará al proceso de control de cambios.

Roles

Los siguientes son los roles participantes en este proceso:

Rol Tareas que interviene
Tester
MDA-TR-1.0-QS-Pasar Plantilla de Seguridad
MDA-TR-1.0-QS-Pasar Plantilla de Accesibilidad
Gestor Calidad
MDA-TR-1.0-QS-Evaluar Resultados

Tareas

MDA-TR-1.0-QS-Implementar Timeout de Sesión

Comprueba que se ha implementado un tiempo máximo de inactividad de la sesión (timeout) en la aplicación (p.e. 30 minutos), de manera que, si un usuario que ha entrado en la aplicación supera el timeout de inactividad (p.e. está 30 minutos sin interactuar con ella), la aplicación debe cerrar automáticamente la sesión (haciendo un logout de la aplicación), de manera similar a si el usuario pincha directamente en la opción “Salir” de la aplicación).

Este mecanismo de seguridad mediante timeout de sesión es obligatorio de conformidad con el ENS.

Existe una guía técnica que explica cómo Implementar el Timeout de la Sesión Web

:?: Si no se indica timeout de sesión en el web.xml de la aplicación, automáticamente cogerá el que SISTEMAS tiene configurado en weblogics y tomcats, que actualmente (19-12-2018) es de 1h, siempre que esté activo. Confírmalo con SISTEMAS.

:?: Si la aplicación usa SSO/CAS, para la sesión del CAS también existe un timout, que actualmente (19-12-2018) es de 4h. Confírmalo con TELEMÁTICA.

MDA-TR-1.0-QS-Pasar Plantilla de Seguridad

En ATICA existe una Normativa de Desarrollo de Aplicaciones Web Seguras desde Julio del 2008. Esta normativa se basa en la Guía de Revisión de Código de la fundación OWASP, incluyendo una serie de puntos de verificación de la seguridad de la aplicación/módulo. Además, para cada punto de verificación de la seguridad de la aplicación/módulo, se incluyen anotaciones relativas a cómo FUNDEWEB puede ayudar a validar el citado punto de verificación.

Con el objetivo de verificar que se está cumpliendo dicha normativa, se debe de completar la plantilla de seguridad que se proporciona con MEDEA:

Plantilla del Artefacto SIGLAS Nomenclatura Ubicación
ControlRequisitosSeguridad QS XXX-QS-1.2.3-ControlRequisitosSeguridad /Proyecto/Documentacion/5.Calidad/5.4 CalidadInterna

1. Dar de alta la tarea en JIRA

Para esta tarea se deben de dar de alta un JIRA con los siguientes datos

Tipo Descripción Disciplina Proceso Labels/Etiquetas Version Fijada
Tarea Pasar Plantilla de Seguridad Calidad del SoftwareQS-Controlar la Calidad Interna sdaym_seguridad
mda-pps
[Versión del proyecto]

2. Rellenar la plantilla

Punto por punto, y marcando aquellos requisitos de seguridad que se haya verificado que se cumplen. En aquellos que no se pueda cumplir, indicar en las Observaciones el motivo del NO cumplimiento.

MDA-TR-1.0-QS-Pasar Plantilla de Accesibilidad

Las aplicaciones Web hechas en ATICA, deben cumplir la actual Normativa nacional y europea sobre Accesibilidad Web, para lo que los desarrolladores pueden usar la Guía de accesibilidad en aplicaciones FundeWeb.

:!: Cuando usamos componentes JSF esta tarea puede resultar difícil, pues existen componentes cuyo código HTML no cumple con el estándar HTML o XHTML del W3C (o los estilos asociados al componente no cumplen el estándar CSS). Esto NO debe ser una excusa para despreocuparnos de la accesibilidad, al contrario, debemos poner las peticiones de cambios que sean necesarias a los fabricantes de los componentes JSF que estemos usando en cada momento, y que no cumplan los estándares del W3C. Para ello debemos contactar con MNCS.

1. Crea las tareas en Jira

Para esta tarea se deben de dar de alta un JIRA con los siguientes datos

Tipo Descripción Disciplina Proceso Labels/Etiquetas Version Fijada
Tarea Pasar Plantilla de Accesibilidad Calidad del Software QS-Controlar la Calidad Interna sdaym_accesibilidad
mda-ppa
[Versión del proyecto]

2. Rellenar la plantilla con los resultados

Plantilla del Artefacto SIGLAS Nomenclatura Ubicación
ControlRequisitosAccesibilidad QS XXX-QS-1.2.3-ControlRequisitosAccesibilidad /Proyecto/Documentacion/5.Calidad/5.4 CalidadInterna

En la Guía de accesibilidad en aplicaciones FundeWeb te recomendamos herramientas para analizar la accesibilidad de cada pantalla de tu aplicación web. Algunas de estas herramientas te permitirán generar informes de accesibilidad que podrás adjuntar al artefacto “ControlRequisitosAccesibilidad”, o directamente a la tarea que hayas creado en Jira para testear la accesibilidad de tu aplicación.

También puedes consultar la Wiki de Accesibilidad, donde además de la guía del párrafo anterior, tienes la Guía de Validación de la Accesibilidad Web del Observatorio de Accesibilidad adaptada a WCAG 2.1, así como el Real Decreto de Accesibilidad Web.

Finalmente, puedes consultar la Lista Completa de Herramientas que propone el W3C.

Para completar el artefacto “ControlRequisitosAccesibilidad” tienes que rellenar los apartados que contiene:

2.1. Rellenar apartado “Estándar HTML de W3C, en caso de que las páginas estén escrita en HTML. Para ello disponemos de la barra de herramientas Web Developer Toolbar, para el Firefox. En esa barra, pulsar la opción:

Ojo 8-o : Para que funcione hay que trabajar con una dirección desde la que se tenga acceso desde el exterior (ya sea de producción o de un equipo local de desarrollo poniendo la ip local).

2.2. Rellenar apartado “Estándar XHTML de W3C, en caso de que las páginas estén escrita en XHTML. Usaremos la misma herramienta y opción que en el caso anterior.

2.3. Rellenar apartado “Estándar CSS de W3C.Para ello disponemos nuevamente de la barra de herramientas Web Developer Toolbar, la opción:

2.4. Rellenar apartado “Estándar WAI de W3C. Doble A”. Algunos puntos de esta lista de recomendaciones de accesibilidad serán automatizables otros habrá que pasarlos a mano. Podemos volver a hacer uso de la Web Developer Toolbar con la opcion

y para el punto de la normativa referido al contraste de color, tenemos la herramienta juicy-studio, que es un add-on del firefox. Para pasarla ejecutar la opción:

MDA-TR-1.0-QS-Evaluar Resultados

Un resultado del proceso de “Integrar Continuamente”, son los resultados del control de calidad del Jenkins. A parte tenemos los resultados del control de seguridad y de acesibilidad de las tareas anteriormente ejecutadas.

En esta tarea evaluaremos estos resultados para decidir si es necesario hacer cambios en el proyecto o no. En caso afirmativo usaremos el JIRA para gestionar estas incidencias.

1. Crea las tareas en Jira

Para esta tarea se deben de dar de alta un JIRA con los siguientes datos

Tipo Descripción Disciplina Proceso Label Version Fijada
Tarea Evaluar Resultados de Control de Calidad Calidad del SoftwareQS-Controlar la Calidad Interna ER [Versión del proyecto]

2. Evaluar resultados del Findbug

En Jenkins cogeremos la ultima ejecución

y comprobaremos los resultados del findbug.

De entre estos prestaremos especial atención a los de prioridad alta, ya que son errores potenciales de codigo. Para los que consideremos relevantes abriremos un JIRA con los cambios a realizar por los desarroladores o para que pasen a ser estudiados por el analista. De la siguiente forma:

Tipo Descripción Disciplina Proceso Label Version Fijada
Subtarea Evaluar Resultados de Control de Calidad DesarrolloDE-Crear componentes CI [Versión del proyecto]

3. Evaluar resultados del Checkstyle

En Jenkins cogeremos la ultima ejecución y comprobaremos los resultados de checkstyle.

De entre los resultados prestaremos especial atención a los de nivel alto, que tendrán que ver con la convención de código java, el número de comentarios realizados en las clases y la complejidad de las mismas.

Habrá que tener en cuenta que hay clases autogeneradas o de servicio, en las que se puede incumplir alguna de estas normas, ya que son meros contenedores de datos o interfaces para el acceso. Se intentará que estas clases no sean tratadas por el CheckStyle, dentro de lo posible.

Para los que consideremos relevantes abriremos un JIRA con los cambios a realizar por los desarroladores o para que pasen a ser estudiados por el analista. El JIRA tendrá a siguiente forma:

Tipo Descripción Disciplina Proceso Label Version Fijada
Subtarea Evaluar Resultados de Control de Calidad DesarrolloDE-Crear componentes CI [Versión del proyecto]

4. Evaluar resultados de Cobertura

La Cobertura está orientada a evaluar el grado de calidad de los test, en el sentido del código que son capaces de probar.

Para ver el grado de cobertura nos situaremos en la última ejecución y seleccionaremos “Informe de Cobertura”.

Lo primero es ver que el nivel de cobertura esté en un valor aceptable. No es necesario que TODO el código esté probado con test unitarios (100%). Ni necesario, ni aconsejable ya que hay codigo cuya funcionalidad está ligada a la vista, que no se podrá probar con test unitarios. por lo tanto tenerlos sería absurdo. Sí que tenemos que intentar que el código con más parte de lógica esté probado correctamente.

La segunda parte es la gráfica de tendencias. Intentaremos que se mantenga estable, indicando que conforme avanza el desarrollo también avanza la creación de test unitarios.

Si consideramos que hay pocos tests o que hay partes relevantes de software sin suficientes tests unitarios abriremos un JIRA con los cambios a realizar por los desarroladores o para que pasen a ser estudiados por el analista. El JIRA tendrá la siguiente estructura:

Tipo Descripción Disciplina Proceso Label Version Fijada
Subtarea Evaluar Resultados de Control de Calidad DesarrolloDE-Crear componentes CI [Versión del proyecto]

5. Evaluar resultados de Plantilla de Seguridad

Una vez rellenada la plantilla de seguridad, si hay puntos que no han sido cubiertos por la aplicación correctamente, abriremos un JIRA con los cambios a realizar por los desarroladores o para que pasen a ser estudiados por el analista, para que evalúe si se pueden evitar.

Tipo Descripción Disciplina Proceso Label Version Fijada
Subtarea Evaluar Resultados de Control de Calidad DesarrolloDE-Crear componentes CI [Versión del proyecto]

6. Evaluar resultados de Plantilla de Accesibilidad

Una vez rellenada la plantilla de accesibilidad, si hay puntos que no han sido cubiertos por la aplicación correctamente, abriremos un JIRA con los cambios a realizar por los desarroladores o para que pasen a ser estudiados por el analista, para que evalúe si se pueden evitar.

Tipo Descripción Disciplina Proceso Label Version Fijada
Subtarea Evaluar Resultados de Control de Calidad DesarrolloDE-Crear componentes CI [Versión del proyecto]

Artefactos

De entrada

Artefacto SIGLAS Nomenclatura Ubicación
Resultado Build https://jenkins.um.es
Código Fuente /Proyecto/Fuentes/

De salida

Plantilla del Artefacto SIGLAS Nomenclatura Ubicación
ControlRequisitosSeguridad CRS XXX-QS-1.2.3-ControlRequisitosSeguridad /Proyecto/Documentacion/5.Calidad/5.4 CalidadInterna
ControlRequisitosAccesibilidad CRA XXX-QS-1.2.3-ControlRequisitosAccesibilidad /Proyecto/Documentacion/5.Calidad/5.4 CalidadInterna

Herramientas

Herramienta Version Utilizada en Descarga
Jenkins 1.651 Evaluar Resultados Disponible en linea
Web Developer Toolbar ( plugin for FireFox ) 1.1.9 Pasar Plantilla de Accesibilidad Pagina de Descarga
Juicy-studio-accesibility-tool ( plugin for FireFox ) 1.7 Pasar Plantilla de Accesibilidad Pagina de Descarga

Métricas

Las métricas del proyecto se guardarán dentro de la carpeta del proyecto en Proyecto/Documentacion/1.Gestionproyecto/1.4.Metricas. Las métricas de este proceso en concreto se almacenan en la Hoja QS.

Tiempo dedicado al proceso

  1. Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto.

Pulsa el botón Search

Usa la Plantilla de Seguimiento tal y como se indica en el apartado Calcular tiempos con Jira.

Negrita

Tiempo dedicado a la tarea Pasar la Plantilla de Seguridad

  1. Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto.

Pulsa el botón Search

Usa la Plantilla de Seguimiento tal y como se indica en el apartado Calcular tiempos con Jira.

Tiempo dedicado a la tarea Pasar la Plantilla de Accesibilidad

  1. Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto.

Pulsa el botón Search

Usa la Plantilla de Seguimiento tal y como se indica en el apartado Calcular tiempos con Jira.

Tiempo dedicado a la tarea Evaluar Resultados Calidad Interna

  1. Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto.

Pulsa el botón Search

Usa la Plantilla de Seguimiento tal y como se indica en el apartado Calcular tiempos con Jira.

Número de incidencias detectadas de Calidad interna

  1. Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto.

Pulsa el botón Search

Usa la Plantilla de Seguimiento tal y como se indica en el apartado Calcular tiempos con Jira.