You are on page 1of 5

12

Actualidad TIC

Calidad y Testeo del Software


Mientras en los grandes centros tecnolgicos del mundo es una prioridad desde hace varios aos, el concepto de calidad en el software es prcticamente desconocido por un nmero importante de empresas espaolas. Aprender a hacer bien las cosas lleva tiempo, pero es una necesidad si se quiere desarrollar software correcto de forma eficiente. Un proceso de software dirigido por estndares de calidad, soportado por herramientas integradas de gestin automtica, integrado con un buen proceso de testeo y realizado por personal capacitado garantiza la construccin de productos consistentes con los requisitos de clientes cumpliendo restricciones de tiempo y presupuesto. Este artculo presenta el concepto de calidad sobre un conjunto de procesos interrelacionados de ingeniera y gestin del software que cooperan dentro del ciclo de vida de un software para construir un producto de software de calidad. El ITI est actualmente involucrado en la definicin de metodologas propias de evaluacin de la calidad de procesos y productos de software, entre ellos, de mtodos de testeo de software para certificar la calidad de los productos finales. Introduccin
El desarrollo actual de software contina siendo muy propenso a errores. Un gran nmero de proyectos termina con grandes retrasos, excediendo sustancialmente presupuestos y recursos planificados. Es frecuente encontrar a desarrolladores trabajando desorganizadamente bajo fuertes condiciones de estrs, dentro de un proceso de software con pobre o nula calidad. Segn un informe reciente del Instituto de Estudios Laborales titulado ``Nuevas formas de organizacin del trabajo y productividad: la visin de la Comisin Europea (Computerworld, num. 952, pg. 27, diciembre de 2002), Espaa tiene una productividad de un 23% y un 8% inferior a la de los EEUU y la media de Europea, respectivamente. Entre otras causas, el informe destaca la no existencia de modelos de colaboracin (en favor del modelo de confrontacin), la ausencia de una cultura organizativa centrada en las personas, la falta de confianza en el capital humano, y la no orientacin de los funcionamientos empresariales hacia la calidad. Mientras empresas informticas de Estados Unidos, Japn, India y parte de Europa llevan aos consolidando la calidad en el software como el nico camino para desarrollar software correcto en tiempos y presupuestos competitivos, el concepto de calidad en el software en Espaa es an prcticamente desconocido por un nmero importante de empresas. Es usual la institucionalizacin de malas prcticas y una carencia notable de profesionales con formacin adecuada para cambiar esta situacin. Estas son las conclusiones de otro estudio reciente (Computerworld, pg. 2, septiembre de 2001) cuyos resultados sealan que aproximadamente el 30% de las empresas de software espaolas no siguen ningn procedimiento de calidad, un 60% basan sus desarrollos en el modelo ISO 9001, y slo un 3% basa su funcionamiento en las metodologas del CMM. A este ltimo modelo (CMM) se le reconoce con respecto al primero (ISO 9001) mayor rigor y especificidad en la definicin de los procesos internos del desarrollo de software, as cmo el ser una metodologa de mejora progresiva. Por otra parte, el Consejo Superior de Informtica del Ministerio de Administraciones Pblicas ha definido una metodologa de planificacin, desarrollo y mantenimiento de sistemas de informacin que se llama Mtrica, actualmente en su versin 3, que est siendo implantado por mltiples organismos tanto pblicos como privados. El objetivo de este artculo es presentar el concepto de calidad en el software como parte del proceso de ciclo de vida del software, haciendo nfasis en una breve caracterizacin de este concepto en reas y tcnicas de ingeniera y gestin del software.

Qu es calidad y gestin de la calidad


La Organizacin Internacional de Estndares (ISO, por sus siglas en ingls), que ejerce un rol importante en uniformar definiciones, ha publicado varios estndares relacionados con calidad en general y, en particular, con calidad en el software. Estndares como ISO 8402, 9000, 14598 definen calidad del software como la capacidad de un conjunto de caractersticas de un producto, sistema o proceso para satisfacer requisitos de clientes y otras partes interesadas. El estndar de gestin de la calidad ISO 9000 es actualmente sinnimo de calidad y de buenas prcticas. La teora detrs de este estndar es que una organizacin bien gestionada con un proceso de ingeniera bien definido es ms probable que construya productos consistentes con los requisitos del cliente cumpliendo restricciones de tiempo y presupuesto, que organizaciones pobremente gestionadas sin un proceso definido. Dentro de la familia ISO 9000, la norma ISO 9000-3 es especfica para desarrollo de software y su mantenimiento. La gestin de la calidad del software dentro de este contexto es definida como todas las acciones coordinadas para dirigir y controlar una organizacin con respecto a calidad del software.

Gestin de la calidad:4 pilares del desarrollo


La gestin de la calidad del software acta sobre 4 pilares que componen el proceso de desarrollo de software: procesos de ciclo de vida tcnicas (cmo?) organizacin (quin?) infraestructura (con qu?) Este artculo se centrar nicamente en los dos primeros pilares, procesos y tcnicas, que son los que tienen una vinculacin ms directa con la calidad del producto final. La organizacin se basa en las personas, en su formacin o especializacin, y en cmo se

Artculos Tcnicos 13
organizan para desarrollar un proyecto. La infraestructura, por su parte, son las instalaciones, equipamiento, servidores, medios de comunicacin, de los que se dispone para el desarrollo de software. requisitos y otros contenidos del desarrollo (diseo, cdigo, manual de usuarios), y la gestin de cambios en los requisitos durante todo el proyecto. Una gestin insuficiente de requisitos es una de las causas ms frecuentes de que los proyectos se retrasen, sobrepasen sus presupuestos o tengan menos funcionalidad de la esperada. El xito en la gestin de requisitos depende del conocimiento y la aplicacin apropiada de diferentes fundamentos, por ejemplo, metodologas de anlisis de requisitos, modelos de representacin, prcticas de comunicacin, metodologa de gestin de cambios en los requisitos, tcnicas de verificacin y validacin de la completitud y correccin de los requisitos y de su consistencia con otros productos del software. Un gestin correcta y completa de requisitos debe permitir su uso como base para estimar, planificar, disear, implementar y verificar y validar el software.

Procesos del ciclo de vida


El ciclo de vida de un software es el perodo de tiempo que comienza con la concepcin de la idea de un software y que termina con la vida til del mismo. Durante este perodo de tiempo cooperan un conjunto de procesos interrelacionados, denominados procesos del ciclo de vida, con el objetivo de construir un producto de software de calidad. Los modelos y estndares internacionales como ISO 12207, IEEE 1074 y CMMI identifican procesos que componen el ciclo de vida de un software. Tomando como base estos estndares, a continuacin se identifican las siguientes reas de procesos: Procesos primarios de ingeniera: son las actividades primarias del ciclo de vida, aquellas incluidas en las disciplinas tcnicas. Independientemente del modelo de ciclo de vida seleccionado (e.g. cascada, espiral, V, W), siempre ser necesario el anlisis de requisitos, diseo, implementacin, validacin y verificacin, y mantenimiento. Procesos de gestin de proyectos: cubre las actividades de estimacin, planificacin del proyecto y asignacin de recursos, medicin del progreso, seguimiento y control del proyecto, gestin de riesgos y gestin de las relaciones con los clientes. Procesos de aseguramiento de la calidad: son actividades sistemticas y planificadas, necesarias para dirigir y controlar los procesos del ciclo de vida con el objetivo de proporcionar suficiente confianza de que el proceso y los productos del desarrollo satisfacen aceptablemente estndares de calidad. Estas actividades ejercen, por tanto, una funcin de watchdog, controlando todos los procesos del ciclo de vida de software. La siguiente tabla ilustra la organizacin de procesos en las diferentes reas:

2. Diseo
El Diseo es el proceso de definicin de la arquitectura del sistema, de las estructuras de datos y de los algoritmos a emplear, antes de realizar la construccin del software. Algunos fundamentos que garantizan diseos robustos son el conocimiento de estilos (estructurado, OO) y conceptos (modularidad, abstraccin) bsicos de diseo, algoritmos y estructuras de datos primarias, esquemas tpicos de arquitecturas, herramientas de diseo, entre otros. Los ciclos de vida modernos de software prestan especial atencin al diseo de arquitectura, cuya solucin suele ser una tarea prioritaria. Organizaciones preocupadas por la calidad de su proceso de software documentan soluciones genricas de diseo en funcin del dominio de aplicacin a resolver, e incluyen experiencias previas de la aplicacin de estas soluciones.

3. Implementacin
Cuando se llega a la implementacin dentro de un proceso correcto de software, la mayora del trabajo creativo ya ha sido realizado. En este sentido, la implementacin se considera una tarea de bajo nivel. Es decir, prcticas pobres de diseo pueden forzar la reescritura de gran parte del sistema, no siendo necesariamente as en el caso de usar prcticas pobres de codificacin. Sin embargo, estas malas prcticas pueden provocar errores sutiles cuya deteccin y correccin puede costar das o semanas. Por lo tanto, una organizacin que haga de la calidad una prioridad no debe desconocer ciertos fundamentos de construccin del software, por ejemplo, prcticas correctas y uniformes de codificacin, directrices para el uso de tipos de datos, reglas para empaquetar cdigo en mdulos, clases o ficheros, prcticas de testeo de unidad y de depuracin, estrategias de integracin, etc. La estandarizacin de las prcticas de implementacin de un software simplifican notablemente los esfuerzos de trabajo en grupo, en especial, aquellos orientados al mantenimiento del propio software o al reuso de cdigo en futuros proyectos por personas diferentes.

PROCESOS

anlisis de requisitos diseo implementacin validacin y verificacin mantenimiento

REAS DE PROCESOS Ingeniera Gestin Calidad


estimacin planificacin

medicin control y seguimiento gestin de riesgos relaciones con clientes

prevencin deteccin y correccin evaluacin y mejora

En las secciones que siguen se hace una caracterizacin breve de cada proceso, haciendo nfasis en aquellos aspectos que definen la calidad del mismo, y que condicionan, en ltima instancia, la calidad global del ciclo de vida del software.

Procesos primarios de ingeniera


1. Gestin de Requisitos
La Gestin de Requisitos es el proceso de captura de requisitos, su especificacin en un formato bien definido, el uso de prcticas de comunicacin (prototipos, entrevistas) para refinar la comprensin de lo que quiere el cliente, la revisin peridica de la consistencia entre

4. Mantenimiento
De acuerdo a IEEE 1219, el mantenimiento de software es el conjunto de actividades de modificacin de un producto de software despus de entregado, para corregir fallos, mejorar su rendimiento u otros atributos, o adaptar el producto a un entorno modificado. Una vez comienzan a operar con el sistema, los usuarios pueden encontrar errores y aspectos que quieran mejorar, los mantenedores

14

Actualidad TIC
1. Estimacin
El proceso de estimacin puede definirse a partir de tres pasos bsicos: primero, estimar el tamao del proyecto a partir de un anlisis preliminar de requisitos; luego estimar el esfuerzo total (en unidades de tiempo) que requiere el desarrollo de un proyecto de tal tamao; por ltimo, estimar el tiempo de desarrollo del proyecto en funcin del esfuerzo estimado y del personal con el que se cuente para su realizacin. La diferencia entre un procedimiento de calidad y otro improvisado es que el primero define metodologas para hacer estimaciones objetivas y contrastadas dando lugar a estimaciones precisas, mientras que en el segundo las estimaciones son resultados de anlisis subjetivos y no contrastados conduciendo a resultados vagos, casi siempre, muy optimistas.

realizan los cambios, despus de lo cual los usuarios vuelven a usarlos y a proporcionar nueva informacin de mejora. Este ciclo de mantenimiento extiende la vida del producto de software. En muchos casos, el mantenimiento es el proceso ms largo del ciclo de vida. El mantenimiento de software es difcil de realizar y gestionar. Sin embargo, este proceso se simplifica notablemente si los procesos primarios previos de ingeniera han sido correctamente realizados y documentados.

5. Verificacin y Validacin
Como proceso de validacin y de verificacin (V&V) se entiende cualquier actividad orientada a determinar si los objetivos se han cumplido o no. Ms especficamente: Verificacin comprueba la consistencia del software con respecto a especificaciones y requisitos; es decir, responde a se ha construido correctamente el software? Validacin comprueba si lo que se ha especificado (e implementado) es lo que el usuario realmente desea; es decir, responde a se ha construido el software correcto? Las tareas de V&V no solo se aplican a productos de software, sino tambin a otros productos resultantes del proceso del desarrollo. Las primeras tareas de V&V al anlisis y a la especificacin de requisitos, por ejemplo, comprobando que el proyecto es viable, que las especificaciones documentadas son completas, correctas, precisas, legibles, evaluables, y que, en general, responden a las expectativas del cliente. La V&V del diseo debe garantizar que los requisitos no estn incompletos o incorrectamente diseados. En el caso de la implementacin y codificacin, la V&V de software es comnmente conocida como testeo de software. Existen muchas definiciones incorrectas del testeo de software que conducen a una inadecuada aplicacin de este proceso, por ejemplo, el testeo demuestra que no hay errores, o el testeo demuestra que un programa funciona correctamente. Segn Edsgar Dijkstra el testeo puede demostrar la presencia de errores, no su ausencia. Por lo tanto, se realiza test al software para detectar errores que, una vez corregidos, mejoran la calidad o fiabilidad del mismo. Existen distintos tipos de testeo en funcin de la unidad de software a la que se aplique y del objetivo que se persigue, por ejemplo, el testeo de unidad, de integracin, de sistema y de aceptacin. Finalmente, las actividades de V&V son tambin necesarias durante la operacin y el mantenimiento del software. Cuando se realiza un cambio en el software, se debe examinar el impacto del cambio sobre el sistema y considerar qu actividades de V&V es necesario repetir para garantizar, al menos, la misma calidad en el software antes del cambio.

2. Gestin de Riesgos
Usualmente, cuando realizamos el anlisis de un proyecto, aparecen incertidumbres sobre su comprensin, sobre el mtodo de solucin, sobre las herramientas de solucin, entre otras. De no atender prioritariamente estos aspectos inciertos, conocidos formalmente como riesgos, se convertirn en fuentes potenciales de errores en nuestro proceso. Una de las lneas esenciales de la gestin moderna de software es la gestin dinmica de riesgos. Este proceso peridico consiste en identificar y analizar cada riesgo, estimar su probabilidad de ocurrencia y su posible impacto en el cronograma, y definir un plan de gestin del mismo, el cual es un grupo de acciones orientadas a prevenir el riesgo o a corregir sus consecuencias, en funcin del proceso que resulte menos costoso. Una gestin global incluye adems el mantenimiento de listas actualizadas de riesgos ordenados por peligrosidad, de forma que nos sea posible centrarnos en aquellas incertidumbres potencialmente ms destructivas. Un procedimiento de calidad para el desarrollo de software debe incluir una metodologa de gestin de riesgos, as como un registro de riesgos y errores frecuentes en la organizacin que ayuden a evitar omisiones importantes.

3. Planificacin
La planificacin consta de dos partes: la divisin del proyecto en tareas y la asignacin de recursos a tareas, es decir, ordenar las tareas en el tiempo, asignndoles recursos humanos y materiales para su realizacin. El tiempo asignado a una tarea depende de mltiples factores: tamao y complejidad de la tarea (productos de la estimacin), grado de conocimiento o de incertidumbre que tenemos sobre ella (anlisis de riesgos), y de la preparacin y experiencia del personal que debe realizarla. En proyectos con riesgos importantes, el tiempo de desarrollo no suele ser cerrado, sino en forma de rango dependiendo de los riesgos presentes. Su posible presentacin a clientes debe acompaarse de un documento que relacione incertidumbres con el rango. Estos proyectos deben ser peridicamente re-estimados y su planificacin refinada, tareas que deben ser tambin planificadas. Es recomendable dentro de un procedimiento de calidad la existencia de una metodologa con directrices para realizar planes de desarrollo, relacionada con las metodologas de elaboracin de estimaciones y de gestin de riesgos.

Procesos primarios de gestin


Los fundamentos de gestin consisten en estimar el tamao del proyecto de software a desarrollar y los recursos (tiempo, personas, medios) necesarios para su construccin, definir y gestionar riesgos e incertidumbres asociados al desarrollo, planificar el proceso de desarrollo asignando recursos a las tareas en funcin de las estimaciones y riesgos analizados, y finalmente controlar y dar seguimiento al progreso del plan y al uso de los recursos planificados. En proyectos complejos con riesgos importantes, es frecuente realizar re-estimaciones y refinar planificaciones segn se va avanzando en el proyecto y se van aclarando incertidumbres iniciales.

Artculos Tcnicos 15
4. Control y Seguimiento
Las actividades de control y seguimiento consisten en verificar que el progreso del proyecto se ajusta al plan y a los estndares, es decir, que se estn cumpliendo los plazos, costos, y los objetivos de calidad. En otras palabras, el control y seguimiento es un conjunto de actividades de validacin y verificacin del proceso de desarrollo. Idealmente, estas actividades deben aportar absoluta visibilidad del progreso del desarrollo. Algunas de estas actividades son revisiones y auditoras tcnicas, revisiones de hitos, reportes de estado, realizar mediciones (tiempo, presupuesto) y comparar con estimados, etc. Las tareas de control y seguimiento deben ser tambin planificadas. Sin ellas no es posible gestionar un proyecto ni sus riesgos, y no hay forma de saber si los planes se estn cumpliendo o no. Un control efectivo permite detectar anticipadamente problemas en el cronograma, cuando an hay tiempo suficiente para actuar sobre l.

Procesos de Aseguramiento de la Calidad del Software


El aseguramiento de la calidad del software (ACS) consiste en controlar que los productos y procesos del desarrollo de software cumplen estndares de completitud y calidad. Como se ha comentado, ACS cumple el rol de watchdog de los procesos del ciclo de vida del software. Existen dos formas de obtener software de calidad. La primera es prevenir la falta de calidad, definiendo normas, estndares, mtodos y tcnicas apropiadas durante los procesos del ciclo de vida. La segunda es detectar y corregir la falta de calidad (e.g. errores en el cdigo, en el diseo, en manuales de usuarios, o cdigo complejo mal documentado) a travs de la evaluacin de procesos, mejoramiento de procesos, revisiones y, por supuesto, testeo de software. Las actividades de aseguramiento de la calidad deben ser planificadas, con sus correspondientes asignaciones de recursos humanos y materiales. O sea, asegurar la calidad cuesta dinero. Sin embargo, la falta de calidad tambin tiene un precio. Joseph Juran, uno de los ms notables tericos de la economa de la calidad, propuso en 1951 el anlisis de costos relacionados con la calidad en su libro Quality Control Handbook. Juran distingue 3 tipos de costos de aseguramiento de la calidad: Costos de prevencin: costos de actividades especficamente diseadas para prevenir una calidad pobre. Costos de deteccin: costos de actividades orientadas a encontrar problemas de calidad. Costos de fallos: costos derivados de una calidad pobre, por ejemplo, el costo de corregir errores y el costo de atender quejas de
Costes totales

5. Medicin de Estadsticos
Una de las claves del progreso a largo plazo de una organizacin de software es la medicin de datos para analizar la calidad del software y la productividad. Aparte de las tpicas mediciones sobre costos y tiempos en proyectos, recolectar datos histricos sobre cun largo es un programa (en lneas de cdigo) o un anlisis de requisitos (en nmero y complejidad de requisitos), nos crear bases objetivas para realizar futuras estimaciones en nuevos proyectos que suelen ser generalmente mejores que el instinto puro. Procesos ms sofisticados colectan mediciones sobre los cambios (errores, mejoras o nuevos requisitos) entre sucesivas versiones, por ejemplo, del documento de anlisis de requisitos o de cualquier producto de software. Estas mediciones sobre el nmero y naturaleza de los cambios permiten conocer ms objetivamente el nivel de estabilidad o madurez del producto objeto de medicin, el grado de flexibilidad ante cambios, entre otras caractersticas. El procedimiento de calidad de desarrollo de software de una organizacin, debe definir qu mediciones realizar, con qu objetivo y periodicidad, y cmo van a ser colectadas. Es usual disponer de un software que soporte la recoleccin automtica o semiautomtica de estas mediciones, y su uso de acuerdo a los fines para los que han sido definidas.

Costes
Costes de prevencin y deteccin Costes de fallos

Nivel de calidad

6. Gestin de Relaciones con los Clientes


El conocimiento y aplicacin de buenas prcticas en las relaciones con clientes producen beneficios directos para el desarrollo de un software. Buenas relaciones con los clientes disminuyen el tiempo real y percibido de desarrollo, pues eliminan fuentes importantes de errores y riesgos para el proyecto, y propician una cooperacin ms activa y comprometida por parte de clientes y usuarios. Estas prcticas se extienden por mltiples reas de la ingeniera y la gestin, por ejemplo, definir y gestionar riesgos asociados con los clientes, emplear prcticas activas de comunicacin para ayudar a clientes a comprender lo que quieren, involucrar a clientes y usuarios en actividades de control del progreso del proyecto, emplear modelos incrementales de ciclos de vida que proporcionen al cliente seales peridicas y tangibles de progreso, entre otras. Como en los casos anteriores, la organizacin debe documentar la poltica de gestin de las relaciones con clientes.

Figura 1: Relacin entre costes (Juran). usuarios, entre otros. La relacin entre estos costos es ilustrada por Juran en la Figura 1. Juran indica que el costo de las actividades de aseguramiento de la calidad necesarias para alcanzar niveles de calidad altos crece geomtricamente segn nos acercamos a la perfeccin. Perseguir la perfeccin, por tanto, no es rentable porque un pequeo incremento en calidad requerir una gran inversin. Las inversiones en aseguramiento de la calidad deben hacerse mientras el costo total de prevenir y detectar problemas sea menor que el costo de corregirlos.

1. Prcticas de prevencin
Los estndares son uno de los medios ms efectivos para garantizar la calidad del software. Prcticamente para cada producto a elaborar (manual de usuario, interfaz, cdigo, anlisis de requisitos, etc.) o proceso a realizar (anlisis de riesgos, diseo, planificacin, etc.) deben existir estndares o normas organizacionales que definan

16

Actualidad TIC
acortar el tiempo del proceso de desarrollo, y a incrementar la calidad del producto. Existen mltiples mtodos, y tcnicas que pueden ser usadas para determinar la efectividad de un proceso y para definir las correspondientes acciones de mejora. Estos modelos se dividen en dos estrategias principales: enfoque top-down, por ejemplo, CMMI, SPICE y BOOTSTRAP, que se basan fundamentalmente en evaluacin y en modelos, y enfoque bottom-up, por ejemplo, GQM, QIP y AMI, los cuales aplican fundamentalmente mediciones como guas bsicas de mejora. Los modelos de madurez de proceso de desarrollo de software, como los antes mencionados, no han tratado adecuadamente el proceso de testeo. Qu es exactamente un proceso maduro de testeo? Cmo se debe organizar y poner en marcha la mejora de un proceso de testeo? Cmo se debe incorporar a la organizacin de una empresa? Para responder a estas preguntas existen modelos especializados para medir la madurez y mejorar el proceso de testeo, por ejemplo, TIM (Test Improvement Model), TOM (Test Organisation Maturity Model), TPI (Test Process Improvement Model) y TMM (Testing Maturity Model).

directrices sobre cmo hacerlo. Los estndares tienen dos beneficios principales: i) evitan improvisaciones, olvidos y errores al definir qu hacer y cmo hacerlo y ii) proponen una manera uniforme de hacer que facilitan comparaciones entre proyectos y colaboraciones entre equipos de trabajo diferentes. Otro grupo de tcnicas orientado a prevenir errores y omisiones es el de mtodos formales, que hace referencia a una variedad de tcnicas de modelacin matemticas aplicables al diseo de sistemas informticos. Los mtodos formales pueden ser usados para especificar y modelar el comportamiento de un sistema y para verificar matemticamente que el diseo y la implementacin del sistema satisfacen sus especificaciones. Estas tcnicas pueden ser aplicadas prcticamente a todos los niveles del ciclo de vida del software, por ejemplo, un lenguaje de especificaciones formales para escribir requisitos (VDM, OCL), proceso de transformacin de requisitos en cdigo ejecutable que garantice que el cdigo satisface las propiedades especificadas, probar las propiedades de las especificaciones a travs de tcnicas automticas como verificacin de modelos y prueba de teoremas, formalismos para derivar casos de pruebas a partir de las especificaciones de software, entre otras. Los mtodos formales no son una estrategia de todo o nada. Aplicar mtodos formales solo a las partes ms crticas de un sistema es una estrategia til y muy efectiva. La verificacin formal completa debe aplicarse nicamente en sistemas crticos que requieran la mxima fiabilidad.

Servicios de Calidad del Software


El ITI est involucrado en la definicin de una metodologa propia de evaluacin de la calidad del proceso de software basada en el modelo CMM (Capability Maturity Model), y en el modelo de gestin descrito en el libro Software Project Management: A Unified Framework de Walker Royce. Como consecuencia de una evaluacin satisfactoria, el ITI certificar con un sello propio un nivel de calidad en el proceso de software de una organizacin. Complementariamente se elaborar un informe con la caracterizacin del estado actual del proceso, sugerencias y recomendaciones de mejoras, y conclusiones finales. La metodologa persigue juzgar la efectividad del proceso de software de una organizacin e identificar aquellas reas susceptibles de ser mejoradas. La propia metodologa pretende ser la herramienta que describa el camino a seguir para incrementar gradualmente la madurez del proceso de software. El ITI tambin ha desarrollado servicios de testeo de software que ofrecen a las empresas la posibilidad de adquirir informacin sobre: La eficacia de su proceso de testeo. Estos servicios se dirigirn a la evaluacin y el asesoramiento del proceso de testeo de software para poder definir pasos de mejora graduales y controlados. Estos servicios proporcionarn una vista independiente de donde est y a dnde va la empresa. La calidad de su propio software o software externo que desean comprar para el uso interno. Estos servicios estarn dirigidos al testeo y evaluacin de productos finales de software. Para la ejecucin de todas estas actividades, el ITI cuenta con personal con certificado ISEB que utiliza mtodos ampliamente aceptados y probados como TPI, TMM, TMAP, y estndares internacionales mencionados arriba, todo lo cual es una garanta de calidad. Sin embargo, ITI no trata estos mtodos como dogmas sino administra, controla y adapta estos mtodos por medio de investigacin constante con orientacin prctica.

2. Prcticas de deteccin y correccin


La prctica ms conocida de deteccin de errores es el testeo de software. Aparte de ser un proceso primario de ingeniera (Verificacin y Validacin) para asegurar que las especificaciones y necesidades del usuario final se satisfacen, el testeo de software tambin pertenece a las actividades de deteccin de la gestin de la calidad pues ellas pueden detectar fallos de calidad. Las actividades de testeo pueden clasificarse en estticas o dinmicas. Las tcnicas de testeo esttico detectan errores sin ejecutar el programa, por ejemplo, inspecciones o recorridos de cdigo son tcnicas que consisten en detectar errores a travs de la lectura de cdigo. El testeo dinmico, por su parte, implica la ejecucin de programas. A su vez, las tcnicas dinmicas pueden subdividirse en dos estrategias generales: testeo de comportamiento (caja negra, basado en datos, entrada/salida, basado en requisitos), en la que el tester es completamente ajeno al cdigo fuente del programa, y est nicamente interesado en casos en los que el programa no se comporta como se espera, y el testeo estructurado (caja blanca, basado en lgica, basado en cdigo,) en la que el tester examina la estructura interna del programa con el objetivo de derivar casos de test. La derivacin de casos de test es, independiente de la estrategia de testeo utilizada, su parte ms importante y difcil. Existen mltiples tcnicas para este fin que varan desde la aplicacin informal de heursticas simples (testeo segn la experiencia, testeo de ciclo de datos, testeo de combinacin de datos) hasta la derivacin formal utilizando modelos como grafos de flujo de datos o de control.

3. Evaluacin y mejora de proceso


La mejora de procesos de software (SPI, de Software Process Improvement) se orienta a reducir costos y riesgos de los procesos,

Autores: Ramn Mollineda, Tanja Vos Para ms informacin sobre Calidad y Testing: scq@iti.upv.es

You might also like