Sie sind auf Seite 1von 43

Pruebas y mantenimiento de sistemas de software

Unidad 1. Fundamentos del aseguramiento de la calidad del software

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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.
Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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).

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

Categoras

Funcionalidad

Confiablidad

Clasificacin de
las categoras y
subcategoras de
la norma ISO
9126
para la
evaluacin del
software

Subcategoras

Adecuacin
Precisin
Interoperabilidad
Seguridad
Conformidad de su funcionalidad
Madurez
Tolerancia a fallas
Habilidad de recuperacin
Conformidad de su confiablidad

Usabilidad

Comprensibilidad
Facilidad de aprendizaje
Facilidad de operacin
Conformidad de su usabilidad

Eficiencia

Manejo de tiempos
Empleo de recursos
Conformidad de su eficiencia

Facilidad de
mantenimiento

Portabilidad

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 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
Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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).

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

10

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

11

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

12

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

Procesos primarios del ciclo de vida

Procesos de soporte del ciclo de vida

Adquisicin

Documentacin

Suministro

Gestin de la configuracin
Aseguramiento de la calidad
Verificacin
Validacin

Ingeniera

Operacin
Revisin conjunta
Auditora
Resolucin de problemas

Procesos organizacionales del ciclo de vida


Gestin

Infraestructura

Mejoramiento

Reutilizacin

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

13

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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
Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

14

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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:

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

15

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

Nivel 1
Inicial

Nivel 2
Repetible

Nivel 3
Definido

Nivel 4
Gestionado

Nivel 5
En optimizacin

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).

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

16

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

17

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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
Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

18

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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
Funcionalidad

Aspectos que comprende el tipo de especificacin


Se refiere a las funciones que deben ser logradas; es decir, la
descripcin de los procesos que puede realizar el software.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

19

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.
Especifica la carga que el producto o servicio de software debe
soportar, de acuerdo con los requerimientos.
Capacidad

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.
Especifica las necesidades que el producto o servicio va a
satisfacer.

Uso
A partir del caso de la universidad, un aspecto de uso es
automatizar el proceso de inscripciones.
Especifica el tiempo en el que el producto o servicio podr ser
usado antes de requerir mantenimiento.
Confiabilidad

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.
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.

Seguridad

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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

20

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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

Arquitectura del software,


navegacin, flexibilidad,
portabilidad,
mantenimiento

mbitos de
la calidad
del diseo

Ingeniera
Trabaja en los detalles
que generan la solucin

Diseo de bases de
datos, especificaciones
del programa, diseo de
interfaces, reportes

mbitos de
la calidad
del diseo

Fases
del diseo

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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

21

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

22

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

23

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

24

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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:
Producto
final

Especificaciones:
requerimientos del
usuario

Diseo: conceptual y
de ingeniera

Desarrollo:
cdigo fuente

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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

25

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

26

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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)
b)
c)
d)
e)
f)
g)

Funcionabilidad
Fiabilidad
Usabilidad
Entendibilidad
Eficiencia
Mantenibilidad
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.

Cientfico norteamericano de la computacin moderna.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

27

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

28

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

29

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

30

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

31

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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:

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

32

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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 procesoestndares- 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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

33

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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:

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

34

Pruebas y mantenimiento de sistemas de software

COSTOS

Unidad 1. Fundamentos del aseguramiento de la calidad del software

ADCPIO
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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

35

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

36

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

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 cambios que se aplica a todo el proyecto.
Los procesos del SQA contemplan a todas las actividades involucradas en el ciclo de vida
de sistemas de software: anlisis, diseo, desarrollo, implementacin, pruebas y
mantenimiento (Sommerville, 2011). Es importante analizar la forma en que estos
procesos son llevados a cabo dentro de las organizaciones, as como los miembros del
equipo de desarrollo que los llevan a cabo. Estas recomendaciones se analizan en el
siguiente apartado.
SQA en las organizaciones
Tpicamente, el departamento de sistemas o tecnologas de la informacin de una
organizacin tiene a su cargo todo lo relacionado con los procesos tecnolgicos que se
requieren, tales como la infraestructura de telecomunicaciones, la adquisicin de equipos,
el diseo y operacin de sistemas, el sitio web, la Intranet, etctera. Pero muy
comnmente queda de lado un rea especfica que se dedique a evaluar y vigilar el
cumplimiento de los estndares de calidad de los sistemas de software.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

37

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

La principal razn de esta ausencia organizacional se fundamenta en los costos que un


departamento propio de calidad conlleva, as que dichas actividades son delegadas al
propio personal de desarrollo de software. El resultado de esta forma de trabajo es que
los asuntos relacionados con el control de calidad son superados por las labores de
desarrollo o mantenimiento, quedando as descuidado el enfoque de integrar la calidad a
los sistemas de software que se desarrollen.
Las ventajas de que exista, dentro del equipo de trabajo, un rol dedicado por completo al
aseguramiento de la calidad, conllevan mltiples mejoras que justifican por completo los
costos que se generen. Por ejemplo, analiza los siguientes escenarios:
Equipo de desarrollo sin personal
propio de SQA

Equipo de desarrollo con personal


propio de SQA

Se realiz la implementacin de un
sistema que no tuvo supervisin de
calidad. En plena produccin, los usuarios
han comenzado a detectar errores en el
sistema, por lo que han tenido que detener
los procesos por completo y realizarlos de
manera manual, lo que conlleva menos
productividad para la organizacin y
aumento de costos de operacin.

Se realiz la implementacin de un
sistema que tuvo, desde sus fases
iniciales, participacin del equipo de SQA.
En plena produccin, los usuarios han
notado que cubre muy bien los
requerimientos por los que fue solicitado,
incluso con un nivel superior de lo
esperado. La organizacin redujo costos
de operacin e incremento su
productividad.

El equipo de desarrollo se encuentra


trabajando de lleno en corregir los errores
del sistema, descuida los proyectos en
desarrollo y provoca un desfase de los
tiempos de entrega.

El equipo de desarrollo se encuentra


trabajando en nuevos proyectos.

Diferencias entre la participacin y la ausencia de un equipo de SQA. Basado en Moliner, 2005.

El escenario anterior puede parecer fatalista o exagerado, pero no es muy distante de la


realidad de muchas organizaciones: sistemas que se implementan sin un control de
calidad y sin haber pasado por suficientes pruebas para asegurar su ptimo
funcionamiento, o su respuesta ante fallos.
Una vez analizado lo anterior, los costos que pudiera representar el contar con personal
dedicado al aseguramiento de la calidad, no son comparables con los costos que puede
llegar a generar el hecho de no tener a la calidad como eje de desarrollo de sistemas de
software.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

38

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

A las personas que llevan a cabo las actividades del SQA se les conoce como analistas
de la calidad del software, y su principal funcin es la de vigilar el uso correcto de los
estndares de la organizacin como los que se estudiaron en el tema 1.1.1. Estndares
internacionales: ISO e IEEE, el estndar ISO/IEC 25000 y el IEEE 12207.
Es necesario hacer la aclaracin de que el SQA no es el responsable de que un software
tenga calidad, su funcin principal es evaluar el proceso de desarrollo de sistemas de
software en sus diferentes fases, as como vigilar el seguimiento y cumplimiento de los
estndares.
Al finalizar esta unidad, es conveniente hacerse esta pregunta: qu relacin existe entre
el aseguramiento de la calidad del software, las pruebas y el mantenimiento de sistemas
de software? Supngase dos proyectos de desarrollo de software, el primero es
desarrollado bajo el estndar ISO/IEC 25000 y auditado en SQA; mientras que el segundo
no es desarrollado bajo ninguna estandarizacin ni auditado en SQA.
En qu proyecto existir una mayor necesidad de implementar proyectos de pruebas y
mantenimiento? Sern igualmente confiables o tendrn la misma calidad? En definitiva,
el proyecto desarrollado bajo esquemas estandarizados y auditado en SQA tendr menor
necesidad de pruebas y mantenimiento debido a que, durante todo su desarrollo, cada
fase tuvo a la calidad como punto de partida.

Autoevaluacin
Realiza la autoevaluacin con el fin de que puedas analizar el avance que has tenido, as
como detectar las reas de oportunidad respecto al estudio de la primera unidad.

Evidencia de aprendizaje. Aseguramiento de la calidad del software


Realiza la Evidencia de aprendizaje con base en las instrucciones y las indicaciones
de tu Docente en lnea.

Autorreflexiones
Elabora tus autorreflexiones con base en las indicaciones de tu Docente en lnea.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

39

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

Cierre de la unidad
Durante esta unidad has conocido un tema fundamental en el proceso de desarrollo de
sistemas de software, que es considerar el concepto de calidad como un elemento clave
de cada fase del desarrollo, con el fin de que los componentes que desarrolles cumplan
con xito el objetivo por el que fueron creados.
Esta primera unidad tambin ha analizado los mbitos que definen la calidad del software
en las distintas fases del ciclo de vida, las cuales son:
Calidad de la especificacin (fase de anlisis)
Calidad del diseo (fase de diseo)
Calidad en el desarrollo (fase de implementacin)
Calidad de la conformidad (fase de mantenimiento)
De igual manera, se relacionaron cada una de estas fases con las actividades que se
deben seguir para asegurar que el desarrollo sea de calidad. En este sentido, es muy
importante recordar que no es necesario seguir un determinado modelo del ciclo de vida
para que pueda ser integrado al enfoque de calidad, pues los mbitos de anlisis de la
calidad funcionan de manera general, y se adaptan al modelo que se est empleando
para el desarrollo. El siguiente paso en la bsqueda de la calidad y mejora continua, es el
anlisis de fondo de cada uno de los procesos del desarrollo de software, con el objetivo
de optimizarlos mediante la deteccin y resolucin de errores.
En esta unidad se analizaron tambin las diferentes connotaciones que tiene el concepto
de calidad, y cmo puede aplicarse en las organizaciones. Los estndares internaciones
son una excelente referencia para encaminar nuestro trabajo profesional por el camino de
la calidad. Recuerda que estos estndares deben adaptarse a nuestras necesidades, pero
es necesario revisar su vigencia, pues constantemente se actualizan y mejoran.
Estos temas te han proporcionado las bases necesarias para avanzar en las siguientes
unidades. Con lo visto, podrs orientar los proyectos de pruebas y de mantenimiento de
sistemas de software a la bsqueda de la mejora continua con un enfoque de calidad.
Recuerda que la mejor manera de aprender y comprender estos temas es practicar.
Vuelve a repasar la informacin que aqu se te present, practica la integracin de la
calidad a tus proyectos de desarrollo de software acadmicos y laborales.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

40

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

Para saber ms
Code Conventions for the Java Programming Language
La calidad en la fase de desarrollo de software, depende en buena medida de la manera
en la que el cdigo es escrito. Oracle ofrece, en su sitio web, el documento llamado Code
Conventions for the Java Programming Language, que contiene una serie de buenas
prcticas y lineamientos para el desarrollo de componentes de software que usen este
lenguaje. Este recurso se encuentra disponible en formato HTML o PDF, y es una
excelente gua para tener la referencia de la forma en que se recomienda escribir cdigo
de un lenguaje de programacin.

http://www.oracle.com/technetwork/java/codeconv-138413.html

Norma ISO 9126


Existen en los portales de videos, numerosos clips que explican la familia de normas ISO
9126, puedes consultarlos para reforzar la comprensin de este tema.

Midiendo la calidad del software


Si deseas saber ms acerca de cmo medir el nivel de la calidad del software, se te
sugiere leer el siguiente artculo que Francisco Valds Souto escribi para la revista
Software Gur (Mayo-Julio 2013).

http://franciscovaldessouto.wordpress.com/2013/04/24/midiendo-la-calidad-desoftware-caso-practico-2/

Fuentes de consulta
Calero, C., et l. (2010). Calidad del producto y proceso software. Espaa: Ra-Ma.
Campderrich, B. (2013). Ingeniera del software, 5a. ed. Espaa: UOC.
Carrol, S., et l. (2007). Fundamental Concepts for the Software Quality Engineer, 2a.
ed. Estados Unidos: American Society for Quality.
Chemuturi, M. (2011). Mastering Software Quality Assurance: Best Practices, Tools
and Techniques, 3a. ed. Estados Unidos: J. Ross Publishing.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

41

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

Rojas, S.E., Borjas, J.J. (1999).Calidad del Software: camino hacia una verdadera
industria del software. Escuela de administracin de negocios, 38, 42-44. Bogot,
Colombia.
Galin, D. (2004) Software Quality Assurance, from Theory to Implementation. Londres:
Pearson Education Limited.
Goikoetxea, A. (2007). Enterprise Architectures and Digital Administration: Planning,
Design, and Assessment [Paperback]. Singapur: World Scientific Publishing.
Grupo de trabajo AEN/CTN71/SC7/GT26. (2013). Pruebas de software. ISO/IEC/IEEE
29119 Software Testing Standard. Recuperado de http://in2test.lsi.uniovi.es/gt26/
IEEE. (2008). 12207-2008-ISO/IEC/IEEE Standard for Systems and Software
Engineering-Software Life Cycle Processes. Recuperado de
http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4475826&url=http%3A%2F%2Fi
eeexplore.ieee.org%2Fiel5%2F4475822%2F4475825%2F04475826.pdf%3Farnumber
%3D4475826
ISO/IEC/IEEE 29119 Software Testing. (2013). The International Software Testing
Standard. Recuperado de http://softwaretestingstandard.org/index.php

ISO 25000 Calidad del producto de software. (2014). La familia de normas ISO/IEC
25000. Recuperado de http://www.iso25000.com/index.php/normas-iso-25000
Land, S., et l. (2008). Practical Support for Lean Six Sigma Software Process
Definition: Using IEEE Software Engineering Standards. Estados Unidos: John Wiley &
Sons.
Llorens, J. (2005) Gerencia de proyectos de tecnologa de informacin. Venezuela:
CEC.
Moliner, F. (2005). Informticos generalitat valenciana. Espaa: MAD.
Reynolds, G. (1995). Information Systems for Managers, 3a. ed. Estados Unidos: West
Publishing Company.
Sommerville, I. (2011). Ingeniera del software. 9a. ed. Espaa: Pearson Educacin.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

42

Pruebas y mantenimiento de sistemas de software


Unidad 1. Fundamentos del aseguramiento de la calidad del software

Tuya, J., et l., (2007). Tcnicas cuantitativas para la gestin en la ingeniera del
software. Espaa: Netbiblo.
Uddesh, K. (2007). Project Management Handbook. Nueva Delhi: McGraw-Hill.
Vrtice. (2010). Gestin de la calidad (ISO 9001/2008). Espaa: Autor.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

43

Das könnte Ihnen auch gefallen