Unidad 1. Fundamentos Compu

Embed Size (px)

DESCRIPTION

pdf

Citation preview

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 1

    Ingeniera en Desarrollo de Software

    8 Semestre

    Programa de la asignatura:

    Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad

    del software

    Clave:

    15144832

    Universidad Abierta y a Distancia de Mxico

    UnADM

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 2

    ndice

    Unidad 1. Fundamentos del aseguramiento de la calidad del software .............................. 3

    Propsitos .......................................................................................................................... 4

    Competencia especfica ..................................................................................................... 4

    1.1. Calidad del software en el entorno de las organizaciones ........................................... 4

    1.1.1. Estndares internacionales: ISO e IEEE .................................................................. 6

    1.1.2. Modelos y procesos para garantizar la calidad del software................................... 14

    1.1.3. Ciclo de vida del software y mbitos de anlisis de la calidad ................................ 18

    Actividad 1. Objetivos del aseguramiento de la calidad del software ................................ 23

    1.2. Aseguramiento de la calidad del software ................................................................. 23

    1.2.1. Estndares para el aseguramiento de la calidad del software ................................ 28

    Actividad 2. Estndares del aseguramiento de la calidad del software ............................ 32

    1.2.2. SQA (software quality assurance) .......................................................................... 32

    Autoevaluacin ................................................................................................................ 39

    Evidencia de aprendizaje. Aseguramiento de la calidad del software .............................. 39

    Autorreflexiones ............................................................................................................... 39

    Cierre de la unidad .......................................................................................................... 40

    Para saber ms ............................................................................................................... 41

    Fuentes de consulta ........................................................................................................ 41

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 3

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Presentacin de la unidad

    Te has preguntado alguna vez por qu un cierto programa no funciona como quieres?, o

    quizs, cmo puede existir software comercial que presenta errores? Las respuestas a

    estas interrogantes estn directamente relacionadas con la calidad de dichos productos, y

    en esta unidad encontrars un panorama introductorio a los temas que definen la forma

    en la que podrs garantizar la calidad de cada uno de tus desarrollos en sus diferentes

    mbitos, lo cual tiene el propsito de aportar a tu formacin profesional como

    desarrollador de software, el tener en mente que la calidad debe estar presente en todas

    las fases de desarrollo de sistemas. En esta unidad se revisar el marco de referencia de

    las pruebas y mantenimiento de sistemas de software como parte importante del

    aseguramiento de la calidad.

    Un sistema de software, segn Campderrich (2013):

    Es un conjunto de programas que en su forma definitiva se pueden ejecutar, pero comprende tambin

    las definiciones de estructuras de datos [] que utilizan estos programas y tambin la documentacin

    referente todo ello tanto la documentacin de ayuda en el uso del software para sus usuarios como la

    documentacin generada durante su construccin, parte de la cual tambin servir para su

    mantenimiento posterior (p.15).

    Los fundamentos del aseguramiento de la calidad del software son un marco de

    referencia para el desarrollo de las siguientes unidades, pues las pruebas y el

    mantenimiento del software son aspectos que garantizan la calidad porque antes de

    poner el sistema en funcionamiento, es necesario probarlo. Es mucho menos costoso

    encontrar los problemas antes que el sistema se entregue a los usuarios (Kendall y

    Kendall, p.12), considerando que el objetivo principal del aseguramiento de la calidad de

    software es la satisfaccin del cliente.

    En el tema 1.1. Calidad del software en el entorno de las organizaciones, realizars un

    repaso de los estndares internacionales ISO e IEEE que evalan la calidad de los

    sistemas de software, mismos que revisaste a detalle en la asignatura Modelos de calidad

    de software, con el fin de identificar los estndares relacionados con las pruebas y

    mantenimiento de los sistemas. En el tema 1.2. Aseguramiento de la calidad del software,

    revisars lo referente a los modelos y procesos que se aplican para garantizar la calidad;

    de igual manera, retomars los conceptos del ciclo de vida del software a partir del

    concepto de ciclo de vida de software, que ya revisaste en asignaturas anteriores como

    Diseo y arquitectura de software o Desarrollo de software en equipo TSP, para aprender

    de qu manera es posible integrar el mbito de la calidad en cada una de sus fases,

    enfatizando las fases de pruebas y mantenimiento de sistemas de software.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 4

    Propsitos

    Al trmino de esta unidad logrars:

    Identificar los procesos que garantizan la calidad del software durante las

    diferentes fases su ciclo de vida.

    Comprender el alcance, la importancia y la aplicacin de los estndares que

    evalan la calidad del software.

    Identificar la importancia de los marcos de referencia para desarrollar softwares

    bajo un esquema de calidad.

    Identificar el marco de referencia de las pruebas y mantenimiento de los sistemas

    de software en relacin con la calidad.

    Competencia especfica

    Analizar los procesos que garantizan la calidad del software para determinar los

    requerimientos de pruebas y mantenimiento, mediante los estndares de calidad.

    1.1. Calidad del software en el entorno de las organizaciones

    En la actualidad, todas las organizaciones requieren el apoyo de la tecnologa para llevar

    a cabo la mayora de sus procesos. Los sistemas de software se han vuelto parte

    fundamental de la vida de toda organizacin, y han cobrado tal importancia que su

    funcionamiento puede marcar las pautas para el crecimiento o la cada de dichas

    organizaciones, por este motivo, los procesos de anlisis y evaluacin de la calidad estn

    tomando mayor importancia para la industria de desarrollo de software, debido a que un

    software de calidad representa una ventaja competitiva muy poderosa que puede

    significar la mejora continua de toda la organizacin, as como el cumplimiento de sus

    objetivos institucionales.

    En esta primera unidad se expondrn los fundamentos de la calidad del software y la

    importancia de su aplicacin en el desarrollo de sistemas, incluyendo los estndares

    internacionales ms relevantes de la evaluacin de la calidad del software como marco de

    referencia para establecer los requerimientos de un proyecto de pruebas y mantenimiento.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 5

    Para poder definir el concepto de calidad del software, es necesario analizar previamente

    las diferentes connotaciones y definiciones que existen sobre ella en mbitos ms

    generales.

    Para Calero et l. (2010), la definicin del concepto de calidad del software no debe

    abarcar nicamente al propio producto o componente de software en s, sino a todo el

    contexto que rodea a dicho producto o componente. De acuerdo con el autor, este

    enfoque de calidad (incluso aplicada a cualquier cosa) debe tener una visin integral, que

    contemple el entorno donde se ejecuta y los procesos que lo han generado.

    Segn Chemuturi (2011, p. 2), la calidad puede apreciarse desde tres perspectivas:

    Para un consumidor final, la calidad connota una funcionalidad libre de defectos, fcil

    de usar, con niveles aceptables de fallas durante su uso, confiable en su rendimiento,

    con fcil acceso a servicios y proteccin contra daos.

    Para un productor de bienes, la calidad connota la conformidad con las

    especificaciones del producto, definidas por el propio productor, una asociacin

    industrial o el gobierno.

    Para un proveedor de servicios, la calidad connota proporcionar sus servicios en el

    tiempo acordado, de acuerdo con las especificaciones requeridas por el cliente.

    Como es posible observar, la calidad tiene diferentes connotaciones, segn los actores

    organizacionales.

    La norma ISO 9000:2000 define a la calidad como el grado en el que un conjunto de

    caractersticas inherentes cumple con los requerimientos (Uddesh, p. 308). En la

    definicin anterior, se entiende como grado un nivel continuo de calidad que comienza en

    cero y crece quiz infinitamente. Esta deduccin, sin embargo, es ambigua debido a que

    se puede cuestionar lo siguiente: en qu nivel se considera la calidad como mala, buena

    o excelente?, quin est facultado para emitir esta calificacin? Existen estndares

    internacionales y proyectos de aseguramiento de la calidad del software, mismos que se

    detallarn a continuacin.

    La importancia de la calidad del software va en aumento en cuanto al desarrollo de

    sistemas de software, debido principalmente a que un sistema que se desarrolla siguiendo

    los modelos de calidad representar una ventaja competitiva de la organizacin para la

    cual est dirigido, ofreciendo mejores servicios y productos para los consumidores.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 6

    En el tema 1.1. Calidad del software en el entorno de las organizaciones, se abordarn los

    mbitos de anlisis de la calidad de los sistemas de software, as como los estndares

    internacionales que rigen el proceso del aseguramiento de la calidad.

    Esta unidad comprende el estudio de los estndares internacionales ISO e IEEE. Tema

    que aporta los lineamientos estandarizados para construir software de calidad.

    Posteriormente, se analizarn los modelos y procesos que se emplean para garantizar la

    calidad del software, mediante una introspeccin a la forma en la que se abordan cada

    una de las fases de desarrollo de software, y se podr identificar el nivel de madurez de

    las actividades encaminadas a la calidad. Finalmente, en el tema sobre el ciclo de vida del

    software y los mbitos de anlisis de la calidad, se abordarn las cuatro dimensiones que

    definen un software de calidad y cmo se relacionan con el ciclo de vida de los sistemas.

    Comprender los temas de esta unidad es importante debido a que se introduce la calidad

    al ciclo de vida de sistemas como un complemento a cada una de sus diferentes fases;

    esto con el objetivo de que los proyectos de desarrollo de software, elaborados bajo un

    enfoque de calidad, cubran eficientemente los requerimientos para los cuales fueron

    concebidos.

    1.1.1. Estndares internacionales: ISO e IEEE

    En el mbito de las pruebas y mantenimiento de sistemas de software, los estndares

    internacionales juegan un papel fundamental, debido a que ofrecen lineamientos de

    calidad que habrn de seguirse para cubrir correctamente los requerimientos de los

    proyectos. Este tema tiene mucha importancia en el entorno de las organizaciones debido

    a que los conceptos de calidad y estndar se relacionan muy estrechamente. De acuerdo

    con Llorens (2005), un estndar se refiere a la definicin de las caractersticas que debe

    cumplir cada elemento que conforma un sistema de software, y si son cumplidas de

    acuerdo con las recomendaciones del propio estndar, es posible pronosticar que el

    proceso ser efectuado con calidad.

    En la actualidad, las organizaciones con mayor renombre son aquellas que han integrado

    la calidad como parte bsica de sus procesos. La implementacin de normas y

    estndares puede ser un deber largo y tedioso para una organizacin, principalmente por

    los recursos implicados en el proceso de certificacin, compromiso pblico que una

    organizacin hace con la calidad al cubrir los lineamientos especificados en los diferentes

    estndares internacionales. Cuando una organizacin cuenta con una o varias

    certificaciones, stas se traducen en garantas para sus usuarios (Calero et l., 2010).

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 7

    Esta inversin en recursos toma sentido cuando se evalan las ventajas que representa la

    adopcin de las normas o estndares internacionales de calidad de los productos o

    servicios de una organizacin, entre las que se encuentran el mejorar los procesos de la

    organizacin, la reduccin de costos, mejora en el control del negocio, mejora en la

    generacin de informacin para la toma de decisiones, entre otras. Cada una de las

    mencionadas anteriormente, pueden ser aplicadas tambin en los proyectos de desarrollo

    de software.

    Segn se revis en la asignatura Modelos de calidad de software, existen dos grandes

    organizaciones que regulan y emiten los estndares para la evaluacin del software con

    mayor aceptacin en el mundo: el Instituto de Ingenieros Elctricos y Electrnicos (IEEE)

    y la Organizacin Internacional de Normalizacin (ISO por sus siglas en ingls). Dichas

    organizaciones han emitido y actualizado diferentes normas que ayudan a los equipos de

    desarrollo de software a efectuar y medir su trabajo bajo un enfoque de calidad.

    Debido a que existen numerosas familias de normas que evalan diferentes reas del

    desarrollo de software, esta unidad se enfocar en las ms representativas para los

    procesos de pruebas y mantenimiento, mismas que son fundamentales para que un

    producto de software pueda ser considerado de calidad.

    Norma ISO/IEC 25000:2005 Software product Quality Requirements and Evaluation

    (SQuaRE)

    La familia de normas ISO/IEC 25000:2005 es una evolucin de la ISO 9126.

    El siguiente esquema representa la forma en la que se clasifican las diferentes categoras

    y subcategoras para la evaluacin de la calidad del software que integran la familia de

    normas ISO 9126.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 8

    Categoras y subcategoras de mbitos para la evaluacin de la calidad del software. Basado en Carrol, 2007,

    p. 200.

    Como complemento a la norma ISO/IEC 9126-1 existe la ISO/IEC 9126-2, que

    proporciona mtricas externas para la medicin de las seis caractersticas mencionadas

    anteriormente (funcionalidad, confiabilidad, usabilidad, eficiencia, facilidad en el

    mantenimiento y portabilidad), mientras que ISO/IEC 9126-3 define las mtricas internas e

    Funcionalidad

    Confiablidad

    Usabilidad

    Adecuacin

    Precisin

    Interoperabilidad

    Seguridad

    Conformidad de su funcionalidad

    Madurez

    Tolerancia a fallas

    Habilidad de recuperacin

    Conformidad de su confiablidad

    Comprensibilidad

    Facilidad de aprendizaje

    Facilidad de operacin

    Conformidad de su usabilidad

    Eficiencia

    Facilidad de

    mantenimiento

    Portabilidad

    Clasificacin de

    las categoras y

    subcategoras de

    la norma ISO

    9126

    para la

    evaluacin del

    software

    Manejo de tiempos

    Empleo de recursos

    Conformidad de su eficiencia

    Facilidad de ser analizado

    Facilidad de mantenimiento y

    cambios

    Estabilidad

    Conformidad del mantenimiento

    Adaptabilidad

    Facilidad de instalacin

    Coexistencia

    Facilidad de reemplazarse

    Conformidad de la portabilidad

    Categoras Subcategoras

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 9

    ISO/IEC 9126-4 la calidad en el uso de las mtricas para de la medicin de las

    caractersticas y subcaractersticas.

    Las mtricas internas son aquellas que miden la calidad del software considerando

    factores medibles durante su desarrollo (por ejemplo, el tiempo en el progreso de cada

    fase, las lneas de cdigo, etctera), mientras que las mtricas externas evalan la calidad

    del software teniendo en cuenta los resultados de utilizarlo en un ambiente de produccin.

    Calero et l. (2010) sealan que:

    Los factores externos, son todos aquellos factores que pueden ser directamente percibidos por los

    usuarios y que afectan su trabajo (usualmente relacionadas a la funcionalidad y usabilidad). Factores

    internos, hacen referencia al as caractersticas constructivas de los componentes, que son tan slo

    accesibles y controlables por sus fabricantes. No todas las propuestas existentes separan de esta

    forma los factores pero s se aplica en el estndar ISO/IEC 9126 y en los modelos resultantes de

    aplicar el mtodo SQUID (p. 297).

    La evolucin de familias de normas enfocadas en la calidad del software (especialmente

    la 9126), dio como resultado el surgimiento de una nueva y consolidada familia, la

    ISO/IEC 25000 conocida como SQuaRE, que son requisitos de calidad y evaluacin de

    productos de software (por sus siglas en ingls de Software Product Quality Requirements

    and Evaluation).

    La familia de normas 9126 evolucion para consolidarse en la 25000. Presenta, entre

    otras, las siguientes mejoras (Calero et l., 2010, p. 628):

    Mejor coordinacin de la gua en la medicin y evaluacin de la calidad de los

    productos de software

    Mejor orientacin para la especificacin de requisitos de calidad de los productos

    de software

    Mejor distincin entre las partes beneficiarias de un producto de software

    Incorporacin y revisin de un modelo de calidad para los datos

    Incorporacin y revisin del proceso de evaluacin

    Renombramientos de las categoras y subcategoras para evitar ambigedades.

    La familia ISO/IEC 25000 se compone de cinco divisiones principales (Calero et l., 2010):

    1. ISO/IEC 2500nDivisin de Gestin de Calidad. Las normas ISO/IEC 2500n

    establecen todos los modelos, trminos y definiciones comunes referenciados por

    todas las otras normas de la familia 25000.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 10

    2. ISO/IEC 2501nDivisin de Modelo de Calidad. Este apartado presenta modelos

    de calidad detallados, incluyendo caractersticas para calidad interna, externa y en

    uso del producto software.

    3. ISO/IEC 2502nDivisin de Medicin de Calidad. Incluye un modelo de referencia

    de la medicin de la calidad del producto, definiciones de medidas de calidad

    (interna, externa y en uso) y guas prcticas para su aplicacin.

    4. ISO/IEC 2503nDivisin de Requisitos de Calidad. Ayudan a especificar los

    requisitos que pueden ser utilizados en el proceso de obtener requisitos de calidad

    del producto software a desarrollar, o como la entrada del proceso de evaluacin.

    5. ISO/IEC 2504nDivisin de Evaluacin de Calidad. Incluye normas que

    proporcionan requisitos, recomendaciones y guas para llevar a cabo el proceso de

    evaluacin del producto software.

    Los estndares ISO para el desarrollo de software siguen modelos similares a los del ciclo

    de vida del software, por eso es posible decir que la bsqueda de la calidad comienza

    desde el inicio del propio proyecto, y lo acompaa durante todo su desarrollo.

    Si se desea implementar el estndar ISO/IEC 25000, es necesario contemplar los

    siguientes tres enfoques:

    1. Enfoque interno: ayuda a detectar deficiencias en el producto de software desde

    sus fases iniciales. Incluye la obtencin de los requerimientos y su anlisis, la

    propuesta de diseo que cubra los requerimientos, todo el cdigo fuente y

    aplicaciones, as como sus pruebas implementacin, puesta en marcha y

    mantenimiento.

    2. Enfoque externo: considera que el software ya se est ejecutando o que est en

    un ambiente de produccin, pues es slo hasta este momento cuando se puede

    analizar realmente si los resultados generados son los mismos que los esperados.

    3. Enfoque en uso: ayuda a medir la calidad del software frente a una operacin por

    los usuarios finales. Esto debido a que el software puede tener resultados

    incorrectos si ocurri un error durante el diseo de las interfaces e interacciones

    con el usuario.

    Para el mbito de las pruebas y mantenimiento de software, esta familia de normas tiene

    mucha relevancia debido a su relacin directa con las fases de pruebas y mantenimiento

    de software, debido a que las normas SQuaRE evalan la calidad del software desde dos

    perspectivas, la interna y la externa (uso del producto).

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 11

    Las caractersticas internas que se relacionan directamente con las pruebas de sistemas

    de software abarcan cada una de las descritas anteriormente: funcionalidad, confiablidad,

    usabilidad, eficiencia, facilidad de mantenimiento y portabilidad. Las caractersticas

    externas tambin figuran directamente en los procesos de pruebas de sistemas de

    software; es en ellas donde tienen mayor peso las pruebas, pues es cuando el producto

    final es sometido a dichas evaluaciones.

    El mantenimiento de software entra en juego como parte de las caractersticas internas de

    facilidad de mantenimiento pues, como su nombre lo indica, se enfoca en la capacidad

    que tiene el software de ser modificado y aceptar procesos de mantenimiento.

    Puedes conocer ms informacin sobre la familia ISO/IEC 25000 y sus subdivisiones la

    pgina electrnica de ISO 25000 Calidad del producto software.

    Estndar IEEE 12207

    El Instituto de Ingenieros Elctricos y Electrnicos (IEEE) tambin cuenta con diferentes

    estndares que evalan la calidad de un producto o sistema de software. Para efectos de

    esta asignatura, se revisar el estndar IEEE 12207 propio de las tecnologas de la

    informacin, que establece un marco de referencia comn para el ciclo de vida de

    sistemas (IEEE, 2008).

    El campo de aplicacin de este estndar es muy amplio en los sistemas de software, y de

    igual manera que con las normas ISO revisadas anteriormente, las pruebas y

    mantenimiento de software son contempladas por estas mtricas de calidad.

    De acuerdo con Tuya et l. (2007), la norma IEEE 12207 agrupa los procesos del ciclo de

    vida del software en tres niveles principales, que a su vez se dividen en otras categoras

    de proceso (p. 19):

    1. Procesos primarios. Se componen de las siguientes categoras:

    Adquisicin. Procesos que realiza el cliente para la adquisicin de un producto o

    servicio.

    Suministro. Comprende los procesos realizados por un proveedor, desde la

    propuesta hasta la entrega de un bien o servicio.

    Ingeniera. Agrupa a los procesos que directamente especifican, implementan o

    mantienen el producto software, as como su relacin con el sistema y la

    documentacin con el cliente.

    Operacin. Se refiere a los procesos relacionados con el funcionamiento del

    producto, y se ocupa del correcto uso y operacin del mismo.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 12

    2. Procesos de soporte. Se refiere a los procesos que pueden ser empleados por

    cualquiera de los otros procesos en determinadas fases del ciclo de vida.

    3. Procesos de la organizacin. Se componen de las siguientes categoras:

    Gestin. Comprende los procesos que contienen prcticas que pueden ser utilizadas

    por cualquier persona que gestione cualquier tipo de proyecto, o de proceso del ciclo

    de vida del software.

    Mejoramiento. Comprende los procesos que establecen, definen, implementan,

    evalan y mejoran las tcnicas que se realizan en la organizacin.

    Infraestructura. Describe los mtodos que se realizan para dotar a la organizacin

    tanto de capital humano como de la infraestructura necesaria para que los otros

    procesos puedan realizarse de manera apropiada.

    Reutilizacin. Contiene los procesos directamente relacionados con la realizacin de

    acciones destinadas a explotar las oportunidades de reutilizacin.

    Las pruebas de software se encuentran presentes en los procesos primarios y de soporte

    del ciclo de vida. Este tema ser visto a detalle en la siguiente unidad; sin embargo, es

    importante resaltar la fase de pruebas de software como un paso fundamental en la

    bsqueda de la calidad (se revisar con ms detalle lo que respecta a las pruebas de

    software en la Unidad 2. Pruebas de sistemas de software). En los procesos primarios se

    localizan las pruebas de software como parte del ciclo de vida de sistemas, y en los

    procesos de soporte toma tambin importancia como parte del aseguramiento de la

    calidad, verificaciones, validaciones, revisiones y auditoras.

    El mantenimiento de sistemas de software es parte tambin de esta norma, y se le puede

    localizar en el proceso primario del ciclo de vida como uno de los subprocesos ms

    importantes. De igual manera, se encuentra presente en los procesos organizaciones del

    ciclo de vida como parte fundamental del subproceso de mejoramiento.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 13

    Estructura del estndar IEEE 12207. Fuente Tuya et l., 2007.

    El diagrama anterior muestra los principales procesos que se evalan en el estndar, as

    como los subprocesos que los conforman.

    Los estndares que se analizaron en esta unidad comprenden los ms relevantes para las

    fases de pruebas y mantenimiento de sistemas de software. Es importante su

    conocimiento, debido a que representan un marco de referencia para encaminar el

    desarrollo de software hacia mejores niveles de calidad.

    El siguiente paso para desarrollar software de calidad es adentrarse en los procesos que

    se llevan a cabo durante un proyecto, para identificar si se estn realizando de la manera

    correcta y, en caso contrario, se optimice su ejecucin.

    Si deseas consultar ms informacin acerca de los estndares que cre la IEEE para la

    ingeniera de software, ingresa a la pgina electrnica de la IEEE Standards Association.

    Procesos primarios del ciclo de vida

    Adquisicin

    Suministro

    Procesos de soporte del ciclo de vida

    Documentacin

    Gestin de la configuracin

    Aseguramiento de la calidad

    Verificacin

    Validacin

    Revisin conjunta

    Auditora

    Resolucin de problemas

    Ingeniera

    Operacin

    Procesos organizacionales del ciclo de vida

    Gestin

    Mejoramiento

    Infraestructura

    Reutilizacin

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 14

    1.1.2. Modelos y procesos para garantizar la calidad del software

    En el tema anterior se analizaron algunos de los estndares internacionales ms

    importantes para el desarrollo de software. Para continuar con este enfoque de calidad, es

    necesario analizar los modelos que son empleados para evaluar los procesos implicados

    en el ciclo de vida del desarrollo de sistemas de software, con el objetivo de identificar sus

    fortalezas y debilidades, para despus plantear una serie de actividades de control y

    revisin que mejoren dichos procesos.

    Cuando se conocen a fondo los procesos de desarrollo de software y se han

    estandarizado, el seguimiento a la implementacin mediante proyectos de pruebas y

    mantenimiento ser ms eficiente frente a un escenario donde no existan antecedentes

    de anlisis de procesos o el empleo de estndares.

    El desarrollo de software ha tenido una constante y acelerada evolucin a lo largo del

    tiempo, basta con recordar a la primera generacin de lenguajes de programacin

    (lenguajes mquina) y compararla con las ltimas, que permiten desarrollar software de

    inteligencia artificial, para identificar que existe una diferencia notable.

    Esta evolucin ha respondido siempre a la demanda de los sistemas de software por

    parte de los usuarios y es posible, de acuerdo con Tuya et l. (2007), identificar tres

    etapas:

    Primera etapa. En la dcada de los 70, el crecimiento tan acelerado de la demanda y de

    la complejidad del software, por parte de los usuarios y organizaciones, provoc que los

    equipos de desarrollo comenzaran a cambiar. En esta fase se seguan los paradigmas de

    mtodos estructurados y el ciclo de vida en cascada. Una de las principales aportaciones

    al proceso de desarrollo de software fue la introduccin de la representacin de los

    procesos de desarrollo por medio de diversos diagramas. Esta serie de cambios y

    adaptaciones a la demanda iniciaron el camino del desarrollo de software hacia su

    transformacin en una ingeniera.

    Segunda etapa. Se distingue por el movimiento de madurez de los procesos implicados

    en el desarrollo de software. Responde a una iniciativa del gobierno de los Estados

    Unidos para desarrollar mtodos para la evaluacin de sus proveedores de software,

    quienes fundaron el SEI (Software Engineering Institute), para desarollar un mtodo de

    evaluacin de la capacidad de sus proveedores. Estas investigaciones corrieron a cargo

    de Watts Humphrey, quien identific que todos los procesos de desarrollo de software

    pueden ser susceptibles de contar con evaluaciones de calidad, tal como sucede en las

    lneas de produccin de cualquier industria. El principio bsico de Humphre es la

    "orientacin a procesos, vista como la necesidad de contemplar todas las tareas

    relacionadas con el desarrollo de software, como un proceso que puede ser controlado,

    medido y mejorado (Humprey, citado en Tuya et l., 2007, p. 8). De esta manera fue que

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 15

    se incorporaron al desarrollo de software los principios de calidad existentes, propuestos

    por Edwards Deming y Philip Crosby, quienes haban trabajado en una serie de

    lineamientos para las industrias de produccin.

    El principal cambio de paradigma en esta etapa radica en que la evaluacin de la calidad

    ya no se realizar nicamente a niveles del ciclo de vida de sistemas (anlisis, diseo o

    implementacin), debido a que se contemplan tambin aspectos de gestin del proyecto y

    procesos de soporte.

    La comparacin del desarrollo de software con una lnea de produccin de una fbrica

    podra parecer que le resta ese carcter artesanal, con el que a muchos desarrolladores

    de software les gusta comparar su trabajo; sin embargo, esta analoga es necesaria para

    lograr una mejor medicin de la calidad.

    Tercera etapa. Aqu es posible hablar ya de una industrializacin del software, donde se

    contempla el uso de tecnologas de orientacin a objetos y reutilizacin de libreras, bajo

    un esquema de procesos bien delimitados para la ingeniera del software. Comienza el

    auge de la produccin masiva de software calidad.

    Como en las dems industrias, el desarrollo de software no pas desapercibido para los

    estndares, y comenz el desarrollo y evolucin de las normas que evalan la calidad de

    los sistemas de software.

    Capability maturity model (Modelo CMM)

    Fue desarrollado a principios de los aos 90 por el SEI (Software Engineering Institute),

    institucin creada por el gobierno estadounidense, mencionada en la etapa dos de la

    evolucin del desarrollo de software, bajo el liderazgo de Watts Humprey (Tuya et l.,

    2007), con la finalidad de contar con un marco de referencia para la evaluacin y mejora

    de procesos de software.

    El modelo CMM divide la madurez de los procesos de software en cinco fases o niveles,

    que buscan un refinamiento continuo hacia la optimizacin de cada proceso. Por madurez

    de los procesos de software debe entenderse el nivel en el que se encuentra el software,

    de acuerdo con la siguiente escala evolutiva, representada en la siguiente grfica:

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 16

    Niveles del modelo CMM. Basado en Tuya et l., 2007.

    Cada uno de los niveles del CMM se define por una serie de reas clave de proceso o

    KPA (key process rea, por sus siglas en ingls). De acuerdo con Tuya et l. (2007),

    estas KPA se refieren a un grupo de actividades que al ser realizadas por el equipo de

    desarrollo de software de manera conjunta, ayudarn a lograr los objetivos de su nivel y

    encaminarlo al proceso el estado ms alto de madurez.

    Es posible definir a las KPA como el conjunto de estrategias que se deben llevar a cabo,

    en cada niel del CMM, para lograr el nivel de madurez requerido y avanzar al siguiente.

    stas son descritas a continuacin:

    Nivel 1 inicial. Se caracteriza por la indisciplina en los procesos. No cuenta con reas

    clave de proceso o KPA (Tuya et l., 2007).

    Nivel 2 repetible. Comprende la gestin de la configuracin del software, el SQA

    (aseguramiento de la calidad del software). Se incluyen las cuestiones administrativas

    inherentes a un proyecto de desarrollo de software, tales como su planificacin, desarrollo

    y control. Adquiere el nombre de repetible debido a que se logran procesos estables, con

    niveles aceptables de control y estandarizacin (Tuya et l., 2007).

    Nivel 3 definido. Contempla la ingeniera del producto de software. Recibe el nombre de

    definido debido a que ya se cuenta con procesos predecibles. Se incluye un estudio a

    detalle de todos los procesos, as como la coordinacin del grupo de desarrollo de

    software (Tuya et l., 2007).

    Nivel 4 gestionado. Contempla la mejora continua de los procesos, toda vez que ya se

    han superado los niveles anteriores. Para efectuar esta accin, se incluyen los conceptos

    de gestin de la calidad del software y la cuantitativa de procesos (Tuya et l., 2007).

    Nivel 1Inicial

    Nivel 2Repetible

    Nivel 3Definido

    Nivel 4Gestionado

    Nivel 5En optimizacin

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 17

    Nivel 5 en optimizacin. Una vez que se ha alcanzado un nivel optimizado, es necesario

    permanecer en l; por lo tanto, este nivel comprende la gestin del cambio en los

    procesos, de tal manera que no afecten los logros que ya se han obtenido. Tambin

    contempla la gestin de los cambios tecnolgicos, pues es muy comn que una mejora en

    la tecnologa permita otra en los procesos; por ejemplo, los sistemas basados en la nube

    que se desprendieron de un equipo fsico para estar disponibles en Internet, permiten

    interactuar con ellos desde cualquier punto con acceso a la red, distribuyendo en tiempo

    real los datos sensibles para los usuarios de dicho sistema (Tuya et l., 2007).

    Evolucin del CMM hacia el CMMI

    A lo largo de este curso, se ha mencionado en constantes ocasiones que el desarrollo de

    software y los aspectos tecnolgicos se encuentran en constante evolucin; el CMM no ha

    sido la excepcin y, siguiendo su propia naturaleza de mejora continua, ha evolucionado

    para lograr un mejor control de procesos.

    EL CMMI o modelo de madurez de capacidades integrado (capability maturity model

    integration, por sus siglas en ingls), surgi para solucionar inconsistencias de la

    arquitectura, enfoque, contenido y aplicacin con que se encontraban las organizaciones

    que buscaban la implementacin del CMM (Tuya et l., 2007).

    Los tres ejes fundamentales del surgimiento del CMMI son la reorganizacin de reas de

    proceso, la mejora y modernizacin de las KPA, as como la creacin de objetivos

    genricos para cada rea de proceso, lo que facilita que se entienda bien el fin que tiene

    cada nivel del CMMI (este modelo se revis a detalle en la asignatura Modelos de calidad

    de software).

    En este tema se analizaron los modelos y procesos que se emplean para garantizar la

    calidad del software. El principal objetivo de este estudio es llevar la calidad a lo ms

    profundo del desarrollo: sus procesos. Las pruebas y mantenimiento de sistemas de

    software tienen una relacin muy cercana con estos procesos, pues para determinar si

    estn dando el resultado adecuado es necesario ponerlos a prueba, y de acuerdo con los

    resultados, establecer si es necesaria la implementacin de proyectos de pruebas y

    mantenimiento, tanto de los procesos como del desarrollo completo.

    Es importante recordar que la calidad del software va mucho ms all de si este cubre con

    los requerimientos del usuario, tambin es importante que la calidad se refleje en la

    documentacin del proyecto, su administracin, el cdigo fuente, la seleccin y

    capacitacin del personal de desarrollo.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 18

    1.1.3. Ciclo de vida del software y mbitos de anlisis de la calidad

    El ciclo de vida del software se refiere a los procesos o fases implicadas en su desarrollo.

    Existen diferentes tipos de modelos que definen su ciclo de vida, tales como el modelo en

    cascada, el basado en componentes, el modelo del desarrollo evolutivo, entre otros, los

    cuales revisaste en la asignatura Mtodos y modelos de desarrollo de software.

    Sin importar el modelo empleado para el ciclo de vida de los sistemas de software, es

    posible apreciar fases fundamentales en cada uno de ellos, tales como (Sommerville,

    2011):

    Especificacin del software. Son definidas las funciones del software as como sus

    alcances y limitaciones.

    Diseo e implementacin del software. Se produce el software descrito en la

    especificacin.

    Validacin del software. Valida que el software realice los procesos de acuerdo con

    la forma en que se espera que lo haga.

    Evolucin del software. Son definidos los cambios o adaptaciones que el software

    debe realizar para ajustarse a las necesidades cambiantes de los usuarios.

    Como se mencion anteriormente, existen diferentes modelos para el desarrollo de

    sistemas de software y, en todos los casos, cada proceso involucrado en el desarrollo es

    susceptible de ser mejorado; esto se logra mediante la estandarizacin de los procesos.

    Los principales beneficios que esta actividad representa para una organizacin son:

    mejoras en la comunicacin, reduccin de tiempos de desarrollo, reduccin de recursos,

    as como la implementacin de nuevos mtodos, tcnicas y buenas prcticas de

    ingeniera de software.

    Cualquiera que sea el modelo que se emplee en un proyecto de desarrollo de software, el

    concepto de calidad puede ser implementado en cada una de sus fases.

    Para Calero et l. (2010), en el estudio de la calidad del software es posible apreciar las

    mismas estructuras que en un ciclo de vida de sistemas de software. Desde la obtencin

    de los requerimientos (anlisis), integracin de componentes (desarrollo) hasta el

    mantenimiento del sistema.

    De acuerdo con Chemuturi (2010, p. 25), existen cuatro mbitos de anlisis de la calidad

    que definen las fases principales del ciclo de vida de los sistemas de software:

    1. Calidad de la especificacin

    2. Calidad del diseo

    3. Calidad en el desarrollo

    4. Calidad de la conformidad

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 19

    Los mbitos de anlisis de la calidad se aplican de manera paralela al ciclo de vida del

    software:

    Calidad de la especificacin. Se ubica en la primera fase del ciclo de vida del software,

    en la fase de anlisis.

    Calidad del diseo. Se ubica en la segunda fase del ciclo de vida del software, en la

    etapa de diseo.

    Calidad en el desarrollo. Se ubica en la tercera fase del ciclo de vida del software, en la

    etapa de desarrollo.

    Calidad de la conformidad. Se ubica en la cuarta fase del ciclo de vida del software, en

    la fase de pruebas.

    A continuacin, se describe cada una de las dimensiones o mbitos de anlisis de la

    calidad del software:

    1. mbito de la calidad del software: especificacin. La primera fase de la calidad de

    software es la de anlisis (Sommerville, 2011). En sta, el mbito de anlisis de calidad

    de software es la especificacin de los requerimientos. La calidad de la especificacin se

    refiere a qu tan bien han sido definidos los requerimientos para el producto o servicio

    que se presta. Se trata de un punto crucial debido a que no existen actividades

    predecesoras, y el resto del desarrollo partir de dichas especificaciones. Esta verificacin

    es llevada a cabo en la fase de anlisis del desarrollo de sistemas (Chemuturi, 2010).

    Dentro del ciclo de vida tradicional del software, las especificaciones forman parte de la

    fase del anlisis, y si no son definidas de manera correcta, el diseo ser incorrecto y

    provocar que el producto final tambin sea incorrecto. Cualquier esfuerzo gastado en el

    aseguramiento de la calidad ser en vano.

    Es de suma importancia que las especificaciones de los sistemas de software sean bien

    definidas, comprensibles, y que tomen en cuenta todos los aspectos posibles que se

    relacionan con la calidad del sistema.

    Tipo de

    especificacin

    Aspectos que comprende el tipo de especificacin

    Funcionalidad

    Se refiere a las funciones que deben ser logradas; es decir, la

    descripcin de los procesos que puede realizar el software.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 20

    El ejemplo de un aspecto de funcionalidad puede ser el rea de

    administracin escolar de una universidad, la cual requiere que los

    alumnos puedan inscribirse a sus cursos a travs de un portal va

    Internet. La funcionalidad en este ejemplo es la inscripcin de

    alumnos.

    Capacidad

    Especifica la carga que el producto o servicio de software debe

    soportar, de acuerdo con los requerimientos.

    Si se retoma el caso anterior, un ejemplo de un aspecto de

    capacidad consiste en que se puedan inscribir, de manera

    concurrente, hasta un mximo de 100 alumnos por minuto.

    Uso

    Especifica las necesidades que el producto o servicio va a

    satisfacer.

    A partir del caso de la universidad, un aspecto de uso es

    automatizar el proceso de inscripciones.

    Confiabilidad

    Especifica el tiempo en el que el producto o servicio podr ser

    usado antes de requerir mantenimiento.

    Un aspecto de confiabilidad consiste en que la misma universidad

    requiere que el sistema funcione correctamente por un mnimo de

    dos semestres, sin necesidad de mantenimiento.

    Seguridad

    Especifica los niveles lmite para asegurar a los usuarios el uso

    del producto o servicio. Seala cualquier amenaza para la cual el

    producto o servicio deba prepararse.

    Un aspecto de seguridad consiste en que el sistema de

    inscripciones debe ofrecer sus servicios sin interrupciones,

    adems de estar bien protegido en contra de cualquier tipo de

    ataque informtico.

    Aspectos comprendidos por cada tipo de especificacin para que la obtencin de requerimientos sea de

    calidad. Basado en Chemuturi, 2010.

    Para asegurar que las especificaciones sean correctas, es necesario que personal

    altamente calificado en el anlisis de sistemas las elabore y defina los estndares que se

    emplearn.

    2. mbito de la calidad del software: diseo

    Segn Chemuturi (2010), la calidad del diseo se refiere a qu tan bien el producto o

    servicio es diseado. El principal objetivo es cumplir las especificaciones definidas para el

    producto o servicio (Sommerville, 2010). De igual manera que con la calidad de la

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 21

    especificacin, si se tiene un diseo de mala calidad, el resultado final no ser el ptimo,

    incluso si las especificaciones fueron definidas correctamente. Este mbito se integra en

    la fase de diseo de desarrollo de software.

    Diseo conceptual

    Selecciona el enfoque

    a la solucin entre

    muchas alternativas

    posibles

    Fases

    del diseo

    Ingeniera

    Trabaja en los detalles

    que generan la solucin

    mbitos de la calidad del diseo. Basado en Somerville, 2010.

    Al igual que con las especificaciones, los mbitos de calidad del diseo tienen una

    relacin directa con el ciclo de vida tradicional del software, pues se llevan a cabo en la

    fase de diseo.

    En este mbito, una lluvia de ideas del equipo de desarrollo es muy til para ayudar a los

    diseadores a llegar a la mejor solucin para el proyecto.

    3. mbito de la calidad del software: desarrollo

    Usualmente, la fase de pruebas de un producto de software puede tomar ms tiempo y

    esfuerzos que el propio desarrollo en s. Por esta razn, es aceptable que no se lleven a

    cabo pruebas sobre el 100% del producto de software, siempre que la manera en la que

    se desarrolle sea cuidadosa.

    Las actividades que normalmente se llevan en la fase de desarrollo del ciclo de vida del

    software comprenden:

    Creacin de la base de datos y estructura de tablas

    Desarrollo de libreras

    Desarrollo de pantallas

    Desarrollo de reportes

    Desarrollo de planes de pruebas unitarias

    Desarrollo de procesos

    Arquitectura del software,

    navegacin, flexibilidad,

    portabilidad,

    mantenimiento

    Diseo de bases de

    datos, especificaciones

    del programa, diseo de

    interfaces, reportes

    mbitos de

    la calidad

    del diseo

    mbitos de

    la calidad

    del diseo

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 22

    En esta fase, la calidad se consigue si el cdigo desarrollado se apega a las buenas

    prcticas o guas del lenguaje de programacin que se est empleando, por ejemplo, el

    lenguaje de programacin JAVA tiene en su sitio web un documento llamado Code

    Conventions, que se refiere a las buenas prcticas y recomendaciones para el desarrollo

    de sistemas de software bajo este lenguaje.

    Las ventajas que se obtienen cuando se desarrolla a partir de este tipo de directrices son

    muy importantes para garantizar el desarrollo de un sistema de software de calidad, as

    como su futuro mantenimiento.

    Entre dichas ventajas es posible considerar:

    Ahorro de tiempo de programacin. Si el programador sabe exactamente cmo

    nombrar y almacenar las variables, clases, funciones, libreras, etctera, podr ahorrar

    mucho tiempo en su desarrollo.

    Optimizacin del desarrollo en equipo. Si en un mismo proyecto intervienen

    diferentes desarrolladores, podrn darle seguimiento a cdigos que no escribieron

    inicialmente, ubicar y comprender rpidamente la lgica de la programacin que ha

    dejado su compaero(a).

    Disminucin de errores. Si el cdigo es fcil de leer y sigue las mismas directrices

    de formato y asignacin de nombres, los errores sern ms fciles de identificar desde

    la misma fase de desarrollo.

    4. mbito de la calidad del software: conformidad

    Se relaciona con las fases de pruebas y mantenimiento del ciclo de vida del desarrollo de

    software. En esta fase se evalan los resultados obtenidos por el desarrollo final, y si se

    cubren eficientemente los requerimientos de la fase de anlisis. Se refiere a la

    examinacin de qu tan bien se lleva a cabo la implementacin, de acuerdo con el diseo

    y en el grado en que el componente de software desarrollado cubre los requerimientos.

    Este concepto hace referencia a la forma en la que una organizacin asegura que un

    producto fue desarrollado con calidad en las tres dimensiones antes mencionadas,

    especificacin, diseo y desarrollo.

    Para efectuar una medicin sobre los niveles de calidad logrados, se pueden seguir las

    siguientes alternativas:

    a) Emplear mtricas de calidad que incluyan la eficiencia de los defectos removidos

    de cada proceso a ser evaluado, mtricas para la calidad de un producto y

    densidad de defectos.

    b) Comparar los datos de las mtricas de calidad de la industria con las que ha

    generado la organizacin.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 23

    Este tema abarc la relacin que existe entre el ciclo de vida del software y cmo es

    posible analizar si se estn llevando a cabo controles de calidad en cada una de sus

    fases. Es muy importante comprender cules son los mbitos que definen la calidad del

    software, debido a que en el siguiente tema se abordar la forma en que sta se asegura,

    a travs de sus mbitos de anlisis: especificacin, diseo, desarrollo y conformidad.

    Actividad 1. Objetivos del aseguramiento de la calidad del software

    Realiza la actividad de aprendizaje siguiendo las instrucciones y las indicaciones de tu

    Docente en lnea.

    1.2. Aseguramiento de la calidad del software

    En el tema anterior se revis el concepto de la calidad del software desde un punto de

    vista ms administrativo, desde la presentacin de los estndares internacionales hasta

    los mbitos que analizan la calidad y nivel de ciclo de vida del desarrollo de software.

    En este nuevo tema, el objetivo fundamental ser implementar aquellos mecanismos que

    permitan tener la certeza de que los esfuerzos realizados en busca de la calidad no sean

    desperdiciados, implementando controles sobre los procesos y resultados para que en

    determinado momento puedan ser detectados errores (pruebas) no vistos durante el

    desarrollo, o simplemente para adaptar el software a nuevos requerimientos del usuario

    (mantenimiento). En este momento es posible ver que, en la bsqueda de la mxima

    calidad en el desarrollo de software, son de vital importancia las fases de pruebas y

    mantenimiento, sea cual sea el modelo elegido para el ciclo de vida o el estndar bajo el

    que se lleven a cabo los desarrollos.

    Aseguramiento de la calidad de las especificaciones

    Si algo empieza bien, terminar bien, dice el dicho popular. Esta misma idea es el

    fundamento de que el aseguramiento de la calidad del software comience desde las

    races del producto: las especificaciones.

    En tu experiencia profesional o acadmica, seguramente te has encontrado ante

    problemas que te han hecho pensar: este error se pudo haber evitado si se hubiera

    definido bien el requerimiento. Y s, muchos retrasos en el desarrollo de software son

    debido a que, desde un principio, los alcances no son definidos o analizados

    correctamente. Las deficiencias que esto provoca se arrastran durante todo el desarrollo,

    haciendo ms grande el problema entre mayor avance exista en el proyecto.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 24

    De acuerdo con Llorens (2005), la IEEE define al aseguramiento de la calidad del

    software como un patrn planeado y sistemtico de todas de las acciones necesarias,

    para proveer suficiente confianza de que el software se construye conforme a las

    especificaciones tcnicas preestablecidas.

    Como se mencion anteriormente, en el subtema 1.1.3. Ciclo de vida del software y

    mbitos de anlisis de la calidad, el planteamiento de las especificaciones es el primer

    paso para la construccin de cualquier producto o servicio. En el desarrollo de software,

    las especificaciones son ms conocidas como requerimientos del usuario (Sommerville,

    2011). Los siguientes son algunos escenarios para la obtencin de requerimientos:

    1. Estudio de factibilidad que conduce el analista de software. Se escribe un reporte e

    integra los requerimientos del usuario. Algunas de las actividades del analista

    comprenden:

    Organizar reuniones con todos los usuarios finales, con todos los directivos y

    gerentes involucrados en el proceso. En estas reuniones se recaban requerimientos

    y preocupaciones sobre el desarrollo.

    Reunir la informacin obtenida y presentarla tanto a usuarios finales como a directivos

    y gerentes para su validacin; en su caso, recibir retroalimentacin con modificaciones

    en los requerimientos.

    Implementar las modificaciones obtenidas en la retroalimentacin y concluir las

    especificaciones.

    2. Se realiza una solicitud de desarrollo donde se integra un conjunto de requerimientos

    de usuario.

    3. Se realiza una solicitud que toma como base un producto de software similar al

    deseado, y se incluye la personalizacin que se requiere para adaptarlo a los

    requerimientos del usuario.

    Sin importar cul sea el escenario desde el que fueron generadas las especificaciones, y

    una vez que estn definidas, el aseguramiento de la calidad del software comienza su

    intervencin, organizando, clasificando y evaluando las especificaciones obtenidas.

    De acuerdo con Chemuturi (2010), la funcin principal del aseguramiento de la calidad de

    esta etapa del desarrollo de sistemas de software es certificar que los requerimientos de

    usuario (especificaciones) han sido recabados de manera exhaustiva y cubren las

    siguientes reas:

    Funcionalidad

    Capacidad

    Confiabilidad

    Seguridad

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 25

    Uso, entre otras

    El objetivo del aseguramiento de la calidad, en el mbito de las especificaciones, es que

    los analistas de sistemas puedan desarrollar requerimientos que sean comprensibles,

    claros y puntuales, sin ambigedades, ya que estas caractersticas sern el marco de

    calidad del siguiente mbito que es el diseo. Para lograr dicho objetivo, los analistas

    pueden ayudarse de las siguientes herramientas:

    Documentacin de procesos. Detalla la metodologa mediante la cual se van a reunir,

    desarrollar, analizar y redactar las especificaciones.

    Estndares y lineamientos. Detallan las especificaciones mnimas que debern ser

    obtenidas en este proceso.

    Listas de comprobacin. Ayuda a los analistas a asegurar que la amplitud de las

    especificaciones cubrir los alcances del proyecto.

    Aseguramiento de la calidad del diseo

    El proceso de diseo puede ser explicado de manera muy simple de la siguiente forma:

    Flujo de procesos del desarrollo de software. Basado en Sommerville, 2011.

    En la grfica anterior es posible observar cmo, en la fase de diseo, se convierten las

    especificaciones en un documento que indica a los programadores qu componentes de

    software deben programar para llegar al producto final.

    De igual manera que en el proceso anterior (aseguramiento de la calidad en las

    especificaciones), y de acuerdo con Chemuturi (2010), los diseadores cuentan con las

    siguientes herramientas que les ayudan a llevar a cabo el aseguramiento de la calidad en

    el diseo:

    Documentacin de procesos. Detalla la metodologa en la que se van a disear las

    diferentes alternativas de diseo, as como los criterios de cmo se va a seleccionar una

    Diseo: conceptual y

    de ingeniera

    Especificaciones:

    requerimientos del

    usuario

    Desarrollo:

    cdigo fuente

    Producto

    final

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 26

    de esas alternativas para el proyecto, hasta finalizar con el diseo conceptual que se

    refiere a determinar cmo se va a almacenar, manipular y distribuir la informacin.

    Estndares y lineamientos. Se especifica una posible arquitectura para el desarrollo del

    software. Incluye las ventajas y desventajas que conlleve, as como la metodologa para

    tomar caminos alternativos en el diseo.

    Listas de comprobacin. Ayuda a los diseadores a asegurar que el diseo se lleve a

    cabo integralmente y de manera apropiada.

    Aseguramiento de la calidad del desarrollo

    En esta etapa del ciclo de vida de sistemas, es posible pensar que si se han llevado a

    cabo de manera correcta las dos fases anteriores (especificaciones y diseo), tendr

    como consecuencia que la fase del desarrollo sea correcta tambin.

    Sin embargo, esta fase puede tener muchos defectos de calidad, debido a que la forma

    de desarrollar el cdigo va a depender propiamente del programador que lo haga; puede

    que su resultado final cumpla lo establecido en la fase de diseo, pero que el componente

    de software que desarrolle consuma muchos recursos del sistema o que su cdigo sea

    ilegible para otros desarrolladores, provocando as un mantenimiento ms costoso.

    Para integrar y asegurar la calidad de esta fase, nicamente es necesario establecer

    claramente las pautas o directrices que se debern llevar durante la elaboracin del todo

    el cdigo fuente que comprende el desarrollo. stas incluyen:

    Los estndares propios de la organizacin para escribir cdigo de calidad. Pueden

    abarcar la forma en la que sern nombrados elementos importantes del sistema de

    software como variables, nombres de carpetas, funciones, clases, etctera.

    Lineamientos que definen la forma en que se debern llevar a cabo los cambios en el

    cdigo, pues si se realizan cambios de manera incontrolada, pueden provocar

    problemas en la calidad del cdigo. Partiendo de estos lineamientos, es posible hablar

    de dos procesos importantes: administracin de cambios y administracin de

    configuraciones que se encargarn de dar un seguimiento a dichas modificaciones,

    pero sin crear estragos en el resto del proyecto.

    Finalmente, para asegurar que la fase de desarrollo fue cumplida bajo un esquema de

    calidad, se puede aplicar un proceso que ayuda a garantizar este hecho: pruebas de

    sistemas de software, mismo que se detallar en la unidad 2 de esta asignatura.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 27

    Aseguramiento de la calidad de la conformidad

    Llorens (2005) seala que G. J. Myers1, estableci que la confiabilidad del software es la

    probabilidad de que se ejecute con xito y sin fallas por un determinado tiempo,

    ponderada por el costo que representa para el usuario cada falla.

    El asegurarse de que un producto de software cumple con la calidad de la conformidad,

    se realiza mediante la aplicacin y anlisis del resultado de las mtricas internas de la

    calidad, para ello se toman elementos tales como:

    a) Funcionabilidad

    b) Fiabilidad

    c) Usabilidad

    d) Entendibilidad

    e) Eficiencia

    f) Mantenibilidad

    g) Transportabilidad

    Las mtricas son aplicadas a un producto de software no ejecutable y durante las etapas

    de su desarrollo. Permiten medir la calidad de los entregables intermedios, predecir la

    calidad del producto final, y hacer posible que el usuario inicie acciones correctivas

    tempranas en el ciclo de desarrollo.

    Lo anterior da lugar a:

    La eficiencia en la eliminacin de defectos de las actividades de verificacin y

    validacin

    La deteccin oportuna de defectos descubiertos y reportados en una determinada

    etapa del desarrollo

    La medicin de la densidad de defectos

    La calidad de la conformidad se construye a travs de la definicin de procesos, de la

    mejora continua de todas las actividades implicadas en el desarrollo de sistemas de

    software, y del aseguramiento de la calidad.

    1 Cientfico norteamericano de la computacin moderna.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 28

    1.2.1. Estndares para el aseguramiento de la calidad del software

    En el desarrollo de software es muy comn hablar de paradigmas, de modelos, de

    metodologas, de cmo se deben hacer las cosas. En principio, esta idea no es mala,

    pues si ya se tienen las instrucciones exactas y precisas de cmo hacer una labor, se

    podra pensar que no hay espacio para equivocaciones y que, siguiendo la receta de

    cocina, el platillo quedar perfecto.

    Y qu pasa si esa metodologa o paradigma no es la mejor solucin? Valdr el

    esfuerzo de realizar un trabajo siguiendo mtricas exactas pero incorrectas?

    Estas interrogantes son las causantes de que hoy en da la tecnologa se encuentre en un

    nivel de crecimiento muy acelerado, y que se cuenten con ms y mejores servicios de

    tecnologas de la informacin. Los ms grandes visionarios de este mundo han sido

    aquellos que se han cuestionado los lineamientos con los que se deben de realizar las

    cosas, y a partir de ello han llegado a nuevas y mejores maneras de realizarlas.

    Esta reflexin inicial es pertinente, debido a que el cuestionar la manera en que se lleva a

    cabo un proceso es parte fundamental del concepto de calidad. Por ejemplo, en un inicio,

    la documentacin de los sistemas no exista o se resuma a notas de los desarrolladores

    sobre sus cdigos, que solo ellos comprendan o podan interpretar. Posteriormente, los

    equipos de desarrollo se dieron cuenta de que esta forma de trabajar no era eficiente y

    cuestionaron sus procesos pues, cuando se necesitaba realizar mantenimiento a los

    cdigos, se converta en una labor muy tediosa porque a los desarrolladores les costaba

    mucho trabajo retomar lo previamente programado.

    De acuerdo con Moliner (2005), el aseguramiento de la calidad es el conjunto de

    actividades que tienen como objetivo proporcionar confianza en que se desarrollar un

    software de calidad. A pesar de que las tecnologas de la informacin son una industria

    relativamente joven, existen ya numerosos estndares que definen claramente las

    actividades que deben aplicarse en el aseguramiento de la calidad.

    Esta problemtica se resuelve creando estndares que han mejorado la forma en que se

    hacen los procesos. Ellos mismos han evolucionado de acuerdo con las necesidades de

    los usuarios.

    Estndar IEEE 730-2002 para Planes de Aseguramiento de la Calidad del Software

    (SQAP)

    La IEEE aporta su estndar 730-2002 que evala los planes de aseguramiento de la

    calidad del software. Para Galin (2004), esta norma contempla los lineamientos para el

    proceso de planificacin de proyectos, y as asegurar la calidad del software.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 29

    La relacin que guarda este estndar con las pruebas y mantenimiento de software,

    consiste en que describe los procesos como un plan integral que debe elaborarse

    sistemticamente para su correcta ejecucin.

    El objetivo de elaborar planes de pruebas y mantenimiento es reforzar las actividades del

    aseguramiento de la calidad, identificando previamente las estrategias que se llevarn a

    cabo durante el proyecto; adems de que se definen sus objetivos.

    De acuerdo con este estndar, los planes para el aseguramiento de la calidad del

    software contemplan los siguientes elementos (Galin, 2004):

    Propsito: objetivo especfico que tendr el plan de SQA. El propsito de un plan de

    SQA es delimitar claramente su alcance, enlistando los componentes de software y su

    uso.

    Documentos de referencia: lista completa de todos los documentos a los que se

    hace mencin en el plan de SQA, entre estos se pueden encontrar los relativos a la

    documentacin propia del software, tales como diagramas de clases o casos de uso,

    diagramas relacionales de la base de datos, reportes generados por el sistema o de

    manera manual, entre otros.

    Administracin: la forma en la que se va a administrar el equipo de trabajo que lleve

    a cabo el plan de SQA. Se menciona quines son los integrantes del equipo, sus roles

    en el proyecto, las tareas que se van a llevar a cabo, as como una estimacin de los

    recursos que se requieren para la ejecucin del proyecto.

    Documentacin: elementos que se va a generar a partir de la ejecucin del plan de

    SQA. Comprende, como mnimo, la descripcin de requisitos y diseo del software,

    planes de gestin, verificacin y validacin del software, as como reportes de

    resultados sobre la ejecucin del plan.

    Estndares y convenciones: contempla la referencia de los estndares que se van a

    implementar en el desarrollo. Si el equipo cuenta con convencionalismos particulares,

    estos tambin debern incluirse.

    Revisiones y auditorias: debern llevarse a cabo como parte del plan SQA. Entre las

    ms importantes se encuentran las revisiones de las especificaciones, del diseo y de

    la implementacin del software. Entre las auditoras ms importantes se destacan la

    de funcionalidad, de fechas de entrega y de diseo.

    Reporte de problemas y acciones correctivas: este es uno de los rubros ms

    importantes, pues contempla las acciones que debern llevarse a cabo ante la

    presencia de algn error. Incluye la manera en la que se va a reportar y dar

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 30

    seguimiento, as como el plan de accin para resolverlo. Incluye tanto los productos de

    software como el propio proceso.

    Herramientas, tcnicas y metodologas: Contempla los elementos con los que el

    plan SQA se debe llevar a cabo; por ejemplo, el software que se emplee durante el

    seguimiento del plan.

    Control de cdigo: la forma en la que deber escribirse el cdigo fuente del producto

    de software. Incluye control de versiones, libreras, clases y convencionalismos

    particulares, tales como la forma en la que se nombran las variables o las clases.

    Control de medios: contempla la infraestructura de tecnologa donde el producto de

    software reside, as como los procedimientos para su resguardo y generacin de

    respaldos.

    Control de proveedores: es el establecimiento de las estrategias que debern

    llevarse a cabo para garantizar que el software proporcionado por proveedores

    externos sea de calidad, y cumpla con los requerimientos por los cuales fue adquirido.

    Este rubro tambin aplica, al equipo de cmputo adquirido.

    Estndar ISO 9001:2008Sistemas de gestin de la calidad

    De acuerdo con Vrtice (2010), el estndar ISO 9001:2008 establece los lineamientos

    necesarios para implementar sistemas de gestin de calidad. Segn estadsticas

    mostradas en el sitio web del organismo, es empleado por ms de un milln de empresas

    y organizaciones en ms de 170 pases.

    Seguir estndares no es contar con una varita mgica que solucione todos los problemas

    de una empresa, multiplique exponencialmente las utilidades, y elimine al mximo los

    costos. Contar con un estndar como este implica todo un proceso que debe, en primer

    lugar, cumplirse y posteriormente medirse o evaluarse.

    Un sistema de gestin de la calidad asegura y demuestra la calidad de los productos o

    servicios que ofrece una organizacin.

    Este estndar abarca a las organizaciones en un nivel general, va ms all del equipo de

    desarrollo de software para integrar a todas y cada una de las reas que componen su

    estructura. Esta integracin representa, para toda la organizacin, numerosas ventajas de

    operacin. La principal es que se definen y documentan claramente los procesos de la

    organizacin.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 31

    Este material es de suma importancia para los analistas de sistemas, pues cuentan con

    una herramienta muy poderosa de anlisis que les permitir realizar mejor su trabajo al

    proponer o disear sistemas que optimicen dichos procesos.

    Esta misma perspectiva de rayos-x del negocio permitir elaborar proyectos de pruebas y

    mantenimiento de software ms eficientes, debido a que se contar con la informacin

    suficiente para planear los procesos sin afectar la operacin de la organizacin.

    Sobre los estndares ISO de pruebas de software, se pueden mencionar los

    ISO/IEC/IEEE 29119, conjunto de normas para las pruebas de software que se pueden

    utilizar en el ciclo de vida de desarrollo. Mediante la implementacin de estas normas, la

    organizacin obtiene un enfoque de alta calidad por ser reconocidas a nivel internacional.

    El estndar ISO ISO/IEC/IEEE 29119 se conforma de cinco normas que se explican a

    continuacin (ISO/IEC/IEEE 29119 Software Testing, 2013):

    ISO/IEC 29119-1: conceptos y definiciones (publicado en septiembre de 2013), este

    apartado es informativo y proporciona definiciones, una descripcin de los conceptos de

    pruebas de software y la forma de aplicar los procesos, documentos y tcnicas definidas

    en la serie 29119.

    ISO/IEC 29119-2: pruebas de procesos (publicado en septiembre de 2013), define un

    modelo de proceso genrico para las pruebas de software, que se puede utilizar dentro de

    cualquier ciclo de vida del desarrollo de software.

    ISO/IEC 29119-3: pruebas de documentacin (publicado en septiembre de 2013),

    define plantillas para la documentacin de prueba que cubre todo el ciclo de vida de

    pruebas de software.

    ISO/IEC 29119-4: tcnicas de prueba, define un estndar internacional que cubre las

    tcnicas de diseo de pruebas de software (tambin conocidas como tcnicas de diseo

    de casos de prueba o mtodos de prueba), que se puede utilizar durante el diseo de

    prueba e implementacin de procesos, dentro de cualquier organizacin o del ciclo de

    vida de del desarrollo de software.

    ISO/IEC 29119-5: prueba de manejo de palabras clave, define un estndar

    internacional para apoyar las pruebas, describe los elementos utilizando un conjunto

    predefinido de palabras clave, las cuales se refieren a nombres asociados con un

    conjunto de acciones requeridas para realizar un paso especfico en un caso de prueba.

    Mediante el uso de palabras clave para describir los pasos de prueba en lugar del

    lenguaje coloquial, se facilita entender, mantener y automatizarlos.

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 32

    Adems, sobre la base de los procesos definidos en la norma ISO/IEC/IEEE 29119-2, el

    estndar ISO/IEC 33063: evaluacin modelo de proceso, permite:

    La descripcin del objetivo y el resultado del proceso, que est soportado por un

    conjunto de indicadores de desempeo de los procesos.

    Los niveles de capacidad y atributos de proceso definidas en la norma ISO/IEC 33020

    (evaluacin del proceso-marco de medicin para la evaluacin de la capacidad del

    proceso y la madurez de la organizacin), y su escala de calificacin asociada.

    Los sistemas de gestin de calidad tienen la filosofa de la mejora continua y cumplimiento

    de objetivos; por lo tanto, su naturaleza dar prioridad al seguimiento de proyectos de

    pruebas y mantenimiento de software cuando se detecte que, en este mbito de la

    organizacin, los objetivos no se estn cubriendo de la manera en la que se han definido

    previamente.

    Actividad 2. Estndares del aseguramiento de la calidad del software

    Realiza la actividad siguiendo las instrucciones y las indicaciones de tu Docente en

    lnea.

    1.2.2. SQA (software quality assurance)

    El SQA, aseguramiento de la calidad del software (software quality assurance, por sus

    siglas en ingls), es un esfuerzo ms por estandarizar los procesos y modelos que

    evalan y aseguran un sistema de software con un nivel alto de calidad.

    Es posible definir al SQA como un conjunto de actividades que tienen como objetivo

    proporcionar confianza en que se desarrollar un software de calidad. Las actividades del

    SQA abarcan todo el proceso de desarrollo de software. El aseguramiento de la calidad

    del software asegura que el producto cumple con los requisitos tcnicos del sistema

    (Moliner, 2005).

    Llorens (2005) seala que el trmino ingls software quality assurance (SQA) se traduce

    comnmente como control de calidad en sistemas, y que una unidad SQA en una

    organizacin tiene como funcin principal motivar, promover y controlar la calidad de los

    sistemas. Segn Llorens, en la dcada de los aos 80, ante el xito de la industria

    japonesa, las empresas prestaron mayor atencin a la calidad de sus productos y

    servicios con base en la experiencia japonesa, la cual se centr en:

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 33

    Definir estndares de calidad en cuanto al producto

    Definir estndares de calidad dirigidos a los mtodos utilizados para obtenerlos, es

    decir, en cuanto a la calidad del proceso

    Establecimiento de los mecanismos necesarios para asegurar que se obtiene el nivel

    de calidad deseado, es decir, para un control de calidad

    Cuestionamiento permanente de los mtodos, los procesos y los productos para

    continuar hacia niveles de calidad superiores

    El SQA se ubica como parte de la organizacin del rea de informtica, su funcin es

    motorizar este proceso de florecimiento continuo de la calidad. Para ello, echa mano de

    la metodologa, ya que sta le permite establecer mtodos -calidad del proceso-

    estndares- calidad del producto sobre los cuales se puede definir y evaluar la calidad de

    un sistema de informacin (Llorens, 2005, p. 137).

    Los sistemas de calidad, tanto su generacin como el mantenerlos, no es responsabilidad

    nicamente de SQA, sino que involucra a todos los que estn relacionados con el sistema

    de software o de informacin, tales como gerentes, analistas, programadores, usuarios,

    etctera.

    El aseguramiento de la calidad del software se relaciona de manera muy directa con los

    procesos de pruebas y mantenimiento de la siguiente forma: entre mayor sea el grado de

    calidad de un producto de software, ste tendr menos errores; mientras que si el

    producto de software no es desarrollado bajo ningn esquema de calidad, los errores

    sern numerosos y requerir mayor esfuerzo en las fases de pruebas y mantenimiento.

    Las funciones generales del SQA son (Rojas,Borja, 1999):

    Soporte a la metodologa

    Definicin de guas y estndares

    Evaluacin y seleccin de herramientas

    Desarrollo de un ambiente de calidad y productividad

    Vigilar el proceso de desarrollo de software con el fin de asegurar que el proceso

    establecido se est realizando tal como se plane, para ello, realiza diversas acciones

    tales como:

    Verificar los productos para identificar posibles deficiencias. Establecer que se

    cumpla el plan de desarrollo del proyecto y el proceso de desarrollo de software

    Valorar el proceso y no el producto

    Desde la posicin del cliente, el trabajo del equipo de SQA lo representa. Entre las

    funciones en este papel se identifican:

    Sealar la funcionalidad que el cliente desea

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 34

    Apoyar en el proceso de sensibilizacin de la organizacin para con sus

    requerimientos.

    Actuar como un cliente de prueba para obtener la ms alta satisfaccin

    En el papel de analista, la accin de recabar informacin es un trabajo del equipo de

    SQA. Entre las funciones en este papel son:

    Conjuntar los datos sobre todos los aspectos del producto y del proceso

    Con la base de informacin recabada, mejorar los procesos y los productos

    Como entidad suministradora de informacin, el trabajo del equipo de SQA se

    centra en observar:

    Lo que ya est hecho para identificar reas de mejora

    Los objetivos tcnicos que se estn cumpliendo para apoyar las decisiones de la

    alta gerencia

    Suministrar informacin tcnica objetiva

    Suministrar la informacin correcta de las clases de productos y sus riesgos

    Identificar e implementar estrategias para la reduccin de los riesgos

    Como responsable de los procesos, el equipo de SQA, en su totalidad, participa en

    la definicin de los planes, procesos, estndares y procedimientos para asegurar que

    se ajustan a las necesidades del proyecto, incluyendo la estrategia de evaluacin de

    QA (quality assurance), acorde con los requerimientos y las polticas de la

    organizacin. Es recomendable comenzar desde las fases iniciales del proyecto para

    cumplir con el rol de aseguramiento de la calidad.

    Es posible que el equipo que define la metodologa no pertenezca al equipo de QA, y sea

    el SEPG (software engineering process group), equipo totalmente independiente

    encargado de definir la metodologa, mientras que el equipo de QA se limita a verificar

    que se cumpla.

    La importancia de implementar SQA en el desarrollo de software, puede apreciarse mejor

    en la siguiente grfica:

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 35

    Costo de corregir defectos en cada fase del ciclo de vida de software. Tomado de Reynolds, 1995.

    Como es posible apreciar, conforme avanza el desarrollo del proyecto, el costo por

    corregir defectos se incrementa notoriamente. Ntese que en la fase de anlisis este

    costo es casi nulo. Una ventaja de implementar SQA en los proyectos de desarrollo de

    software, es que si la fase de anlisis ha sido controlada bajo el esquema de calidad, los

    errores que se presenten en su fase de operacin sern mnimos o nulos, reduciendo de

    esta manera los costos por mantenimiento.

    Segn Moliner (2005), entre las principales actividades que se llevan a cabo en el SQA se

    encuentran:

    Seguimiento al proceso de desarrollo: evala que el progreso del proyecto sea de

    acuerdo con los estndares para el desarrollo de software que se hayan definido.

    Revisiones: evalan la calidad de los productos desarrollados y los avances de cada

    fase del ciclo de vida del software. Este paso se encarga de detectar errores

    oportunamente.

    Anlisis de errores: se analiza el origen de los errores que son detectados con el

    objetivo de definir estrategias que ayuden a prevenirlos y corregirlos.

    Configuraciones: se vigila la integridad de los componentes del software durante

    todo su ciclo de vida. En este rubro es indispensable contar con medios para el control

    CO

    STO

    S

    A D C P I O

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 36

    de cambios, y as contar con el registro de las modificaciones que llegarn a tener

    dichos componentes.

    Pruebas: miden el nivel en el que el producto de software cubre satisfactoriamente los

    requerimientos. Esto se logra definiendo objetivos de calidad y comparndolos con los

    resultados de operar el software.

    De acuerdo con Galin (2004), los siguientes son algunos elementos que comprende un

    plan de SQA:

    1. Objetivos de calidad

    Hace referencia a los lineamientos de calidad del sistema desarrollado. En otras palabras,

    se refiere a la funcionalidad que se espera tenga el software.

    Los objetivos de calidad sirven como mtricas para el xito con el que el software cumple

    los requerimientos del cliente.

    2. Plan de actividades de revisin

    Debe presentar una relacin completa de todas las actividades de revisin contempladas

    en el plan. Incluye inspecciones al diseo y al cdigo.

    Por cada actividad de este plan se deben describir los siguientes puntos:

    Tipo de actividad

    Alcance

    Planificacin

    Procedimientos

    Personal que ejecutar la actividad

    3. Plan de pruebas del software

    SQA debe presentar una relacin completa de todas las pruebas de software planificadas.

    Por cada actividad de este plan se deben describir los siguientes puntos:

    El elemento del desarrollo que se va a probar (programa, mdulo, sistema

    completo)

    Tipo de prueba

    Planificacin

    Procedimientos

    Personal que ejecutar la actividad

  • Pruebas y mantenimiento de sistemas de software

    Unidad 1. Fundamentos del aseguramiento de la calidad del software

    Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 37

    En la siguiente unidad se abordarn a detalle las tcnicas de pruebas ms empleadas en

    el desarrollo de software.

    4. Plan de pruebas de aceptacin para software desarrollado externamente

    Es muy importante tener presente que el software no siempre es desarrollado en su

    totalidad por el equipo interno de una organizacin, tambin es posible encontrar

    situaciones en las que se contrata a desarrolladores externos para realizar los productos.

    Que el software sea realizado por terceros no significa que no sea susceptible de entrar

    en el plan SQA. En estos casos, lo ms recomendable es que el personal experto en

    tecnologa participe directamente en la elaboracin de los requerimientos que deber

    cumplir el software externo, junto con el personal de las reas que hicieron la solicitud de

    la adquisicin.

    En el plan SQA se debe contar con una relacin completa del software desarrollado

    externamente. Los puntos que deben incluirse son:

    Software adquirido

    Software desarrollado por terceros

    Software proporcionado por el cliente

    5. Gestin de la configuracin

    El plan SQA debe especificar los procedimientos para la gestin de configuracin,

    incluyendo un control de cam