- inicio / herramientas / entorno de pruebas / checKing
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.
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 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:
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.
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 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:
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.
checKing está pensado para distintos tipos de organizaciones:
¿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?
Copyright© 2002-2007 Application LifeCycle Solutions, S.L. All Rights Reserved.