Verificación
El subsistema de verificación trata los procesos asociados a las pruebas y validaciones de las aplicaciones y sistemas de información de acuerdo a las directrices y recomendaciones marcadas en MADEJA, junto a las especificaciones propias de cada proyecto y entrega.
Se establece la ejecución de pruebas de calidad desde el inicio de los proyectos hasta su finalización, definiendo un conjunto de procesos que aplican de forma coordinada con los procesos de desarrollo, con la finalidad de incrementar la calidad de los proyectos, y establecer un conjunto objetivo de criterios de validación y verificación de las entregas a lo largo del ciclo de vida de las aplicaciones. Para conseguirlo se ha tenido en cuenta el enfoque de MADEJA acerca del ciclo de vida de desarrollo, prestando especial atención a los productos esperados en cada etapa (documentación y software). Como resultado se va a adoptar un modelo en W para la revisión de estos productos:
Para la ejecución y realización de los servicios a los productos entregados en el ciclo de vida de los proyectos, se establecen cuatro procesos principales en el subsistema de Verificación: Definición de la Estrategia de las Pruebas, Testing Temprano, Entrega Software y Validación y Ajuste de Entornos.
Estos procesos se definen en detalle en este subsistema, debiendo ejecutarse de forma ordenada. La importancia del proceso de Definición de la Estrategia de Testing es crítica para conseguir articular el resto de los procesos, ya que es donde se indican las planificaciones de las entregas, los objetivos de las mismas, los servicios concretos de testing que se quieren ejecutar en cada una de ellas... es el proceso que asegura la coordinación e integración de los objetivos de los distintos involucrados en el desarrollo y explotación de los sistemas, marcando las directrices y coordinando los trabajos entre todos.
Además se han introducido las pautas y el procedimiento para la Gestión de Defectos que permiten registrar los defectos detectados durante la ejecución de los servicios de testing solicitados. De esta forma, se comunicarán los defectos detectados a todos los participantes implicados, permitiendo realizar un seguimiento de los mismos durante el desarrollo del proyecto.
Se asume que las entregas de software se ha realizado de acuerdo a lo especificado en el subsistema de Entorno, área de Entrega, lo que en resumen implica:
- disponibilidad del código fuente de la aplicación.
Todos los procedimientos de este subsistema se han especificado siguiendo una definición de roles genérica que se deben especificar en cada Organismo y Consejería de la Junta de Andalucía, para su correcta aplicación.
Estrategia de las Pruebas
Código:
estrategia_pruebas
La definición de la estrategia de las pruebas de Testing es una parte fundamental dentro del ámbito de la verificación.
El objetivo perseguido es doble:
- Modelar el proceso de verificación que se va a aplicar sobre las diversas entregas y proyectos en función de la tipología, criticidad, urgencia y tecnología, así como fijar los mínimos exigibles.
- Además se encarga de certificar el grado de adecuación y por tanto la viabilidad de puesta en producción de un determinado proyecto o entrega, definiendo criterios e indicadores mínimos exigibles para garantizar una evaluación objetiva de los aplicativos, y registrando las pruebas que se van superando.
Esta área constituye el punto de partida para el resto de las áreas del subsistema de verificación, cuyos servicios se desencadenarán en base a las planificaciones recogidas en el Plan de Testing, además de proporcionar información acerca de la marcha de los servicios que se están ejecutando sobre una entrega o proyecto.
Testing Temprano
El Testing Temprano persigue incrementar la calidad de las aplicaciones mediante la detección eficaz de errores en fases tempranas del ciclo de vida de un proyecto o entrega, disminuyendo así mismo el impacto que tendría sobre el desarrollo si estos errores se detectaran con posterioridad.
Para conseguirlo, es necesario revisar la documentación presentada inicialmente por el equipo de desarrollo, y comprobar que está completa y alineada con las necesidades formuladas inicialmente por el usuario, y que es correcta desde el punto de vista metodológico. Las comprobaciones más críticas giran en torno a los requisitos recogidos en el documento de requisitos del sistema, ya que pueden cometerse imprecisiones en su definición que acarrearían graves problemas posteriormente. También es importante comprobar que la solución propuesta a través del análisis y el diseño no ha obviado o malinterpretado ninguno de estos requerimientos.
La importancia de los costes asociados a los errores que se pretenden detectar con el Testing Temprano, a veces no es suficientemente conocido por lo que esta verificación puede considerarse secundaria y no prioritaria. Sin embargo el Testing Temprano debe estar a la cabeza de las verificaciones planificadas ya que sus resultados son determinantes para el proyecto.
Verificación de Entrega Software
Código:
verificacion_entrega_software
El grueso de las tareas a acometer para la verificación de un producto software se desarrollan sobre los entornos de Pruebas y Preproducción. El área de Verificación de Entrega Software se encarga exclusivamente de las certificaciones que se realicen en el entorno de pruebas, o entorno donde se efectue la entrega del producto software. En este área tienen cabida dos tipos de pruebas:
- Pruebas Técnicas, en este grupo se incluyen las pruebas y los servicios de verificación técnica, orientados a asegurar el cumplimiento de las diferentes normativas técnicas vigentes. En general estas pruebas aplican sobre el código fuente y los resultados no son directamente percibidos por el usuario final, aunque permiten una mejora de la calidad en términos de claridad, mantenibilidad y rendimiento del código.
- Pruebas Funcionales, en este grupo se incluyen las pruebas de verificación funcional, orientadas a asegurar que la aplicación está libre de errores funcionales. Estas pruebas se ejecutan directamente sobre el aplicativo desplegado y están muy directamente relacionadas con la percepción de calidad del usuario final, de ahí su extrema importancia.
Verificación y Ajustes en Entorno
En este área se tendrán en cuenta diversas pruebas para el software relacionadas con el comportamiento del mismo ante situaciones extremas, como por ejemplo condiciones de carga y estrés, o bien accidentes o ataques malintencionados que comprometan la seguridad.
Por tanto el área se centra en aspectos como:
- Verificar si el rendimiento de la aplicación es bueno ante situaciones de carga y estrés. Con este objetivo, se situa a la aplicación ante una serie de condiciones extremas para analizar cómo reacciona.
- Verificar el comportamiento de la aplicación ante accidentes, acciones ilícitas o ataques malintencionados que comprometan la disponibilidad, autenticidad, integridad y confidencialidad de los datos almacenados o transmitidos, poniendo de relieve las vulnerabilidades de la aplicación o de la infraestructura en la que está montada.
Para la ejecución de este tipo de pruebas se necesita una instalación de la aplicación en un entorno que reúna ciertas características, que entre otras son:
- Que sea un entorno similar al entorno de producción, ya que el resultado de este tipo de pruebas puede depender del entorno en el que nos encontremos, y solo nos interesa el comportamiento que vaya a suceder en producción.
- Que sea exclusivo para este tipo de pruebas, para no desvirtuar los resultados debido a las actuaciones que puedan realizarse sobre la aplicación de forma simultánea.
Procesos transversales
Código:
procesos_transversales
Los procesos transversales del subsistema de verificación se dividen en proceso de formalización de defectos y en la definición y seguimiento de los acuerdos de niveles de servicio en la ejecución de los mismos.
La formalización de los defectos es un proceso que se ejecuta constantemente dentro de los servicios de testing, cada vez que se encuentra una discrepancia entre la definición del alcance de la aplicación y los resultados obtenidos en las pruebas.
A partir del catálogo de servicios definido en este subsistema se hace necesario establecer los indicadores que van a medir los resultados obtenidos de la implantación y aplicación de este catálogo. Estos indicadores no sólo van a servir para medir la calidad de los servicios definidos, sino que persiguen la calidad última de los sistemas de información objeto del testing. La implementación de los indicadores va a depender de:
- Las herramientas elegidas como soporte para la gestión del testing.
- Del modelo utilizado para la gestión del testing.