Saltar al contenido principal

Búsqueda con google en www.als-es.com

- inicio / herramientas / entorno de pruebas / checKing

checKing de ALS

Monitorización de la calidad del software en desarrollo

checKing es la herramienta de monitorización del proceso de desarrollo software y sus resultados, que cubre las necesidades de organizaciones que desean controlar la calidad del software antes de su puesta en producción.

Para ello la herramienta sigue un modelo de métricas en el que se integran medidas obtenidas automáticamente del proceso de desarrollo (actividad, requisitos, defectos y cambios) y de elementos analizables del software: código fuente, documentación del proyecto, scripts de construcción, y scripts de pruebas.

checKing añade transparencia al ciclo de desarrollo, capturando, integrando y presentando de forma automática dichas métricas, obtenidas automáticamente través de diversas herramientas y sistemas externos: analizadores, gestores de defectos, sistemas de control de versiones, herramientas de pruebas, IDEs y otras herramientas usadas por los desarrolladores.

La calidad del software en el ciclo de desarrollo resulta invisible.

El desarrollo de software no es una ingeniería, es en realidad una actividad humana muy compleja por la maleabilidad e intangibilidad del software.

A lo largo de los años se han construido un conjunto de metodologías, técnicas, estándares y buenas prácticas orientadas a la calidad, tanto del proceso de desarrollo software, como de los resultados del mismo.

Pese a la indudable evolución y mejora de dichos procesos y de la calidad del desarrollo del software, la realidad es que los resultados dejan mucho que desear.

Generalmente los sistemas software tienen un cumplimiento deficiente de los requisitos funcionales y de sistema, son poco robustos y fiables, difíciles de mantener y probar, y ofrecen un rendimiento y una escalabilidad pobres, disparando los costes de producción y mantenimiento.

Las aplicaciones a menudo acaban siendo 'bestias indomables', remendadas por parches que destruyen lo poco que queda del (posiblemente deficiente) diseño inicial, y casi nunca cumplen las expectativas de los usuarios.

Esta situación se produce incluso aunque los equipos de desarrollo intentan aplicar correctamente la metodología establecida y las técnicas que supuestamente deben desembocar en la calidad del software.

Una de las causas finales (si bien no la única) que se señala frecuentemente cuando se analiza este problema es que la calidad real del software resulta 'invisible': es muy difícil de medir, de identificar los 'puntos calientes' que requieren cambios en la forma de trabajo, y de extraer recomendaciones prácticas para su introducción a lo largo del ciclo de desarrollo, y no al final de las pruebas de aceptación, cuando normalmente ya es demasiado tarde para hacer algo y el coste correctivo se dispara.

Los equipos de desarrollo no cuentan normalmente con un espectro completo y consistente de herramientas que permitan extraer información útil del código fuente y entregables asociados, de otros productos de la actividad del equipo (defectos identificados en las fases de pruebas, resultados de pruebas de sistema, carga y rendimiento) o de medidas obtenidas de las propias actividades de desarrollo (productividad, frecuencia de cambios, grado de cumplimiento de requisitos, acuerdo entre los procesos establecidos por la metodología de desarrollo y la realidad, etc.).

La arquitectura de checKing La arquitectura de checKing se basa en un marco en el que se despliegan plugins que actúan como colectores de métricas y permiten el análisis del código fuente y la integración de sistemas externos.

Cada plugin corresponde a un nuevo analizador del sistema. Las tareas de análisis se planifican regularmente, y cada plugin procesa unos datos que se archivan y acumulan en un almacén de datos.

Cada plugin expone asimismo un conjunto de paneles, que el usuario puede situar y configurar en sus pizarras si cuenta con los permisos necesarios.

checKing Report Console

checKing Report Console es un portal web que permite a los equipos de trabajo acceder a información valiosa para conocer en todo momento cuál es la calidad del sistema software. El portal incorpora facilidades que:

  • Permiten automatizar buena parte de la captura de métricas e indicadores de calidad del software. Los analizadores expuestos por los plugin pueden planificarse para una ejecución regular. En otros casos, los paneles del interfaz de consola se conectan con el sistema externo para presentar información actualizada.
  • Emiten un diagnóstico de lo que resultaría mejorable para alcanzar unas metas de calidad a lo largo del ciclo de vida de su desarrollo. Cada panel ofrece una explicación de los datos presentados, indicando desviaciones respecto a los umbrales, y señalando dónde deben realizarse actuaciones encaminadas a mejorar el estado de la calidad.
  • Ofrecen recomendaciones fiables sobre cómo corregir las desviaciones detectadas.

Norma ISO 9126

La consola permite la navegación por el cuadro de mandos de indicadores de calidad bajo diferentes roles. Cada rol dispone de un conjunto de pizarras o cuadros (dashboards) organizados por característica ISO 9126, compuesto por paneles configurables por el usuario.

Los paneles

El elemento básico de presentación en checKing Report Console es el panel, una ventana cuya posición y tamaño puede personalizar cada usuario y que presenta, habitualmente de forma tabular o gráfica, un conjunto agregado de medidas realizadas por los analizadores, que permiten comparar un indicador entre distintos proyectos, o visualizar su evolución en el tiempo.

checKing mantiene una copia local del software de los proyectos de desarrollo integrados, sincronizando con el sistema de control de código fuente.

Además mantiene un modelo de los proyectos y módulos (librerías propias o subproyectos) que los conforman y sus dependencias, y del SCM (Source Code Management) se extrae información que facilita la identificación de versiones mediante las etiquetas (tags) del SCM.

Los analizadores

Los analizadores son el corazón de checKing. Permiten extraer y agregar de forma autónoma distintas fuentes de información relacionada con la calidad del código fuente, su diseño e implementación, los defectos potenciales o detectados por el equipo de pruebas, los resultados de las pruebas automatizadas (típicamente pruebas unitarias) y la cobertura del código respecto de pruebas, las dependencias entre elementos, o los resultados de las herramientas de construcción (build).

Citemos algunos ejemplos de los tipos de información que extraen y agregan:

  • Violaciones de las reglas de codificación de la normativa.
  • Dependencias.
  • Métricas extraídas de la estructura del código fuente (volumen, complejidad y calidad del diseño OO).
  • Actividad en el SCM.
  • Defectos potenciales.
  • Resultados de pruebas automatizadas y cobertura del código por las pruebas.
  • Defectos identificados.
  • Resultados de los procesos de construcción automatizada del software.

Además de facilitar el seguimiento de los indicadores establecidos según el modelo de calidad aplicable a cada proyecto (y, como caso particular, el cumplimiento de la normativa de codificación), checKing integra información útil para los diferentes perfiles del equipo de desarrollo en un sistema wiki (web colaborativa) y enlaces a documentación externa pertinente para el desarrollo mediante sistemas de tagging colaborativo, mantenido por el equipo de trabajo.

Usos y beneficios del uso de checKing en distintos tipos de organizaciones

checKing está pensado para distintos tipos de organizaciones:

  • Organizaciones que cuentan con distintos equipos de desarrollo internos (formados por personal propio y/o externo) y que desean controlar la calidad de los resultados de los distintos proyectos de desarrollo.
  • Organizaciones que externalizan el desarrollo de sistemas software en terceros, pero que desean establecer controles de validación anteriores a las pruebas de aceptación, que reduzcan el riesgo de que el software que finalmente se entrega incumpla la normativa establecida o tenga una calidad deficiente.
  • "Fábricas de Software" o "Software Factories", que producen componentes o aplicaciones completas 'llave en mano' para terceros, a fin de introducir controles de calidad de producto en sus ciclos de desarrollo.
  • "Fabricantes de Producto Software", empresas que construyen productos software 'empaquetado' dirigidos a un determinado segmento de mercado, y que apuestan por introducir controles explícitos sobre la calidad final del producto.

checKing proporciona respuestas que pueden extraerse de la información recogida en este portal:

¿Cuál es la situación de este proyecto o equipo de desarrollo respecto a otros proyectos / equipos de desarrollo comparables?

¿Qué deficiencias muestran los indicadores de calidad en el momento del ciclo de vida en el que se encuentra el proyecto?

¿Qué estoy haciendo mal?

¿En qué he mejorado respecto a proyectos anteriores?

¿Qué prácticas han proporcionado mejores resultados en el pasado?

¿Qué prácticas han sido más perniciosas?

¿Dónde están los 'puntos calientes' (fuentes de ineficiencias o defectos, acoplamiento o complejidad excesivos) del sistema donde tengo que aplicar técnicas de refactoring o revisiones de código para asegurar la fiabilidad y mantenibilidad del sistema?

¿Dónde tengo que hacer más esfuerzo en las pruebas unitarias para asegurar el correcto comportamiento de los componentes del sistema por separado?

¿Qué componentes se ven afectados cuando introduzco cambios en una cierta parte del sistema?

Documentación

Copyright© 2002-2007 Application LifeCycle Solutions, S.L. All Rights Reserved.

XHTML 1.0 Válido CSS 2.0 Válido RSS 2.0 Válido Explicación del Nivel AA de Conformidad  (Abrir en una ventana nueva)