Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEMANA 2
Aseguramiento de la
calidad del software
(SQA)
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni 1
ESTE
utilizarDOCUMENTO
los contenidos paraCONTIENE LAdeSEMANA
fines comerciales 2
ninguna clase.
2
ESTE DOCUMENTO CONTIENE LA SEMANA 2
ÍNDICE
3
ESTE DOCUMENTO CONTIENE LA SEMANA 2
ÍNDICE DE FIGURAS
Figura 1: Actividades SQA.................................................................................................................... 7
Figura 2: Modelo de desarrollo en cascada ......................................................................................... 7
ÍNDICE DE TABLAS
Tabla 1: Estructura propuesta documento revisión de requerimiento .............................................. 13
Tabla 2: Estructura propuesta documento revisión de diseño .......................................................... 14
Tabla 3: Estructura propuesta documento revisión código ............................................................... 15
Tabla 4: Estructura propuesta documento revisión de usabilidad .................................................... 16
4
ESTE DOCUMENTO CONTIENE LA SEMANA 2
ASEGURAMIENTO DE LA CALIDAD DEL SOFTWARE (SQA)
OBJETIVOS ESPECÍFICOS
Comprender el conjunto de actividades del SQA, destacando la importancia de asegurar la
calidad del software.
Comprender las actividades de SQA durante el ciclo de vida de desarrollo de software.
Aplicar la documentación técnica de trabajo referida a SQA.
INTRODUCCIÓN
Un aspecto relevante y necesario dentro de las fases de desarrollo de un proyecto de software es
el aseguramiento de la calidad del software, cuya abreviación en inglés corresponde a SQA
(software quality assurance). Para realizarlo, se requiere establecer un modelo, con formulación
de planes, procedimientos y actividades orientadas a verificar el cumplimiento de los estándares
que se han definido como parte de las prácticas en el desarrollo del software y el proceso que lo
conduce. Entonces, se está hablando de aseguramiento de la calidad del producto de software y
de la aplicación de procedimientos y actividades definidas por un estándar, para conducir el
desarrollo final.
5
ESTE DOCUMENTO CONTIENE LA SEMANA 2
1. ASEGURAMIENTO DE LA CALIDAD DEL SOFTWARE (SQA)
Antes de iniciar el desarrollo de este tema, se debe señalar que en todo proceso de producción,
debe haber instancias de monitoreo, control y mejora, es decir, actividades orientadas a asegurar
que antes, durante y después del proceso las tareas sean realizadas de la forma como se
planificaron e introducir cambios necesarios para que así sea. Cuando hablamos de un proceso de
desarrollo de software, ocurre exactamente lo mismo.
El propósito de SQA es verificar que las actividades declaradas dentro del proceso de desarrollo de
software sean realizadas tal como fueron definidas en la planeación del proyecto. Para aplicarlo,
no importa el tamaño de la organización, se pueden adecuar las funciones de los profesionales, de
manera que exista un rol responsable. Por ejemplo, en una organización pequeña, el mismo
equipo de desarrollo puede abordar estas actividades, como también, en organizaciones más
grandes, habrá un área especializada para tales fines.
6
ESTE DOCUMENTO CONTIENE LA SEMANA 2
Figura 1: Actividades SQA
Fuente: material elaborado para esta asignatura (J. Reyes, 2015)
7
ESTE DOCUMENTO CONTIENE LA SEMANA 2
Si se observa la imagen anterior, existe un conjunto de etapas que comienzan con el análisis y
sucesivamente se van retroalimentando unas a otras como lo muestra el sentido de las flechas. En
cada una de estas etapas hay actividades inherentes al objetivo que persiguen y otras que ayudan
a que estas actividades sean realizadas conforme a los estándares que se han definido en la
organización. Por ejemplo, en la etapa de análisis, se realizará un levantamiento de un
determinado problema y se requerirá documentarlo bajo una cierta estructura. En la etapa de
diseño, se va a establecer el modelo de solución y se hará lo mismo, pero en otro documento.
Finalmente, en la etapa de implementación, se desarrollarán las piezas de software y estas
deberán cumplir con normas de programación. De esta forma, las actividades que gobiernan el
quehacer del equipo de desarrollo corresponden a las actividades propias del aseguramiento de la
calidad del software (óp. cit.). A continuación, se revisarán estas actividades con más detalle.
Actividad que busca verificar la aplicación de procedimientos y su correcto uso en todas las
distintas tareas. Asimismo, que estas vayan en la misma dirección de las definiciones y estándares
establecidos. Desde el punto de vista del proceso, se revisará semanalmente el avance de la
programación, las actividades realizadas, aquellas aún pendientes, la utilización de recursos y se
medirá el avance planificado versus el real respecto al plan del proyecto.
Actividad centrada en la calidad del producto y los factores de calidad que se busca destacar. Se
realiza a través de inspecciones a nivel de código, donde se verifica el cumplimiento de normas de
programación y documentación del software.
1.2.3. AUDITORÍA
8
ESTE DOCUMENTO CONTIENE LA SEMANA 2
Habiendo definido estas tres grandes actividades del SQA, es necesario precisar un poco más el
detalle de las prácticas que le compete a cada una de ellas. Así entonces, se indican a continuación
algunas tareas que incluyen el monitoreo de procesos, la evaluación del producto y las auditorías.
1.2.3.1. ESTÁNDARES
La organización para desarrollar un software de calidad requiere que todo proceso que integra un
conjunto de actividades y métodos que deben ser realizados de acuerdo a una definición
declarada y conocida por todos quienes participan del desarrollo de software. Es importante
destacar que la idea de definirlo busca siempre utilizar buenas prácticas y que los proyectos se
realicen utilizando los mismos criterios procedimentales dentro de la organización. En este
sentido, el criterio es fundamental y se debe ajustar a las necesidades de cada organización. No
todo debe ser estandarizable, esto sería un error. Pero en el ámbito del software, perfectamente
se puede alinear lo siguiente respecto a una definición estándar (óp. cit.):
1.2.3.2. REVISIONES
Para realizarlas, la organización determina una metodología, con una estructura y disciplina para la
aplicación y detección de desviaciones. Usualmente se puede formular con las siguientes tareas
previas (óp. cit.):
a. Planificación
b. Orientación
c. Preparación
d. Inspección
e. Recomendaciones
f. Seguimiento
El rol principal de SQA es verificar que estas actividades sean realizadas en forma programada
(por eso se planifican) y corroborar que las acciones derivadas de las revisiones sean concretadas.
9
ESTE DOCUMENTO CONTIENE LA SEMANA 2
1.2.3.3. PRUEBAS
Esta actividad enfocada en el producto busca verificar que las definiciones funcionales y de
sistemas que definieron su desarrollo se cumplan de acuerdo a lo planeado. Al igual que otras
actividades, la prueba debe ser planificada, ejecutada y finalizar con un informe. Hay que
mencionar que durante el desarrollo de un proyecto de software podemos encontrar pruebas de
desarrollo realizadas por quienes desarrollan el software, pruebas de integración con otros
módulos o sistemas y, finalmente, pruebas de aceptación por parte del usuario final.
En este caso, la labor del SQA también es verificar que lo anterior sea realizado, cumpliendo con
los estándares, generando la documentación requerida e informes que permitan dar visibilidad
respecto del avance del proyecto a las jefaturas respectivas. Así entonces, la misión del SQA se
resume en asegurarse de que (óp. cit.):
Los defectos se han producido, se producen y seguirán produciéndose mientras existan las
condiciones para que así sea. Es por esta razón que esta actividad es la base para realizar el
análisis causal de ellos. Es así debido a que recoge los antecedentes que se generan a partir del
control de calidad (enfocado al producto) y el aseguramiento de la calidad de este (que observa el
proceso con sus métodos y prácticas). Al analizar estos antecedentes más allá del ámbito del
producto de software en sí, resulta provechoso para las organizaciones, porque se determinan
correcciones al proceso, lo cual indudablemente mejorará la calidad del producto de software en
proyectos futuros (se aprende de los datos registrados y la experiencia).
Así entonces, SQA tiene como responsabilidad la creación de un método que facilite la
identificación de defectos o errores del proceso y proponer los cambios para su mejor desempeño.
El objetivo que persigue esta actividad es asegurar la validez e integridad de las distintas piezas de
software que, integradas, conforman el producto de software durante su desarrollo y posterior
mantenimiento. Para realizar lo anterior, existen cuatro actividades que se deben considerar (óp.
cit.):
10
ESTE DOCUMENTO CONTIENE LA SEMANA 2
Identificación de la configuración (componentes y piezas de software de la solución):
a. Elementos de la configuración, así se puede identificar cada una de las versiones de los
componentes del producto de software.
b. Control de los cambios que se van realizando conforme a correcciones e implementación
de lo solicitado según el plan. De esta forma todo cambio en el software queda
documentado y autorizado.
c. Contabilidad, la cual ayuda a llevar un seguimiento en el tiempo de los distintos
componentes de software del producto.
d. Auditorías de configuración, que se encargan de verificar el cumplimiento de los
estándares definidos.
Así la principal tarea del SQA es verificar que se cumpla lo definido en el plan de la administración
de la configuración.
11
ESTE DOCUMENTO CONTIENE LA SEMANA 2
contemplados en el diseño, revisión de los informes de inspección y, finalmente, registrar el
diseño en la administración de la configuración (óp. cit.).
12
ESTE DOCUMENTO CONTIENE LA SEMANA 2
3. DOCUMENTACIÓN TÉCNICA DE TRABAJO ASOCIADA A SQA
La actividad de SQA se puede apoyar en herramientas para materializar las tareas que requiere
realizar durante el desarrollo del proyecto. Por tal razón se indica una guía para orientar la
elaboración de estos “artefactos”.
Este documento corresponde a una guía para hacer una revisión precisa de la definición y
elaboración de los requerimientos que forman parte de la solución final, y así verificar la
completitud y adherencia al estándar que debe utilizarse para su definición. De esta forma, la
estructura que puede orientar la elaboración del documento puede ser la siguiente:
13
ESTE DOCUMENTO CONTIENE LA SEMANA 2
3.1.2. DOCUMENTO DE REVISIÓN DE DISEÑO
Este documento es una guía para revisar el diseño de la solución y verificar que se hayan
considerado todos los aspectos definidos en la planificación del proyecto. Es decir, se debe abarcar
todo lo requerido en términos técnicos y funcionales, como la adherencia a los estándares y
procedimientos definidos por la organización para la ejecución de las actividades de esta etapa.
Así, la estructura que oriente la elaboración de este documento puede ser la siguiente (óp. cit.):
Este documento corresponde a una guía para hacer una inspección del código fuente de la
solución. Sobre la base de una normativa de programación, se debe verificar que esta se aplique
en los distintos ámbitos de la programación. Por ejemplo, normas para la programación y
normalización de bases de datos, normas para el desarrollo web, en relación al uso del lenguaje de
programación utilizado, entre otros. De esta forma, la estructura que puede orientar la
elaboración del documento puede ser la siguiente (óp. cit.):
14
ESTE DOCUMENTO CONTIENE LA SEMANA 2
Propósito Actividad Descripción/Detalle
Entrada Lista de objetos y Se solicita al equipo de desarrollo que
componentes de software indique la última configuración actualizada
en proceso de desarrollo. de ítems de programación. Esto es,
Normas de programación. componentes y piezas de software
Procedimientos de
configuración de
componentes de software.
La usabilidad como definición de una solución no es una simple declaración de buenas ideas o
eventuales facilidades para el usuario final en su futura interacción con la solución de software.
Resulta algo más complejo y debe estar debidamente alineado con la definición inicial de la
necesidad y expectativas funcionales que declare el usuario.
De esta forma, la usabilidad comienza con una participación directa en la definición de sus
requerimientos funcionales e incorporando sus preferencias respecto a experiencias anteriores en
el uso de sistemas. Por ejemplo, el usuario por nada del mundo espera un buscador de clientes
con una cantidad insoportable de parámetros de búsqueda, cuando usualmente lo que hace es
ingresar el nombre o RUN para identificarlo. Así también, indica los tipos de formato que deben
tener los datos para su mejor comprensión.
15
ESTE DOCUMENTO CONTIENE LA SEMANA 2
La accesibilidad es otro referente en este ámbito. Navegar dentro de muchas pantallas para llegar
a un dato seguramente es lo que el usuario tratará de evitar. Por tanto el diseño será clave para
incorporar este tipo de requerimientos en su propuesta de despliegue de información.
Visualmente, también hay preferencias y características que el usuario persigue. Entonces, estas
deben ser materializadas en el diseño. Por ejemplo, un mismo sistema el usuario necesita sea
desplegado en un ambiente mobile1, como también en un browser tradicional sobre la web.
Lo concreto es que para verificar la usabilidad debe haber una instancia y herramientas que
ayuden a corroborar lo solicitado en los requerimientos funcionales y de sistema por el usuario.
De esta forma, la estructura que oriente la elaboración del documento puede ser la siguiente (óp.
cit.):
Revisión Verificar que los aspectos Programar esta actividad con el equipo de
de usabilidad declarados en desarrollo.
la definición de
requerimientos del usuario
estén desarrollados en
forma clara y precisa.
Excepciones declaradas de
no aplicación de las normas
en casos precisos.
1
Mobile técnicamente se refiere a las tecnologías que tienen conectividad con internet, de acuerdo a
estándares definidos para ello. Es una castellanización del término inglés.
16
ESTE DOCUMENTO CONTIENE LA SEMANA 2
COMENTARIO FINAL
La actividad de aseguramiento de la calidad del software (SQA) es el mecanismo a través del cual
una organización puede resguardar que el producto de software final sea desarrollado sobre la
base de buenas prácticas, considerando los aspectos funcionales y técnicos determinados en el
plan del proyecto. Lo anterior no será posible en ausencia de estándares y procedimientos que
integren buenas prácticas y la acción realizada por SQA, para asegurar que lo desarrollado cumpla
o adhiera a estas definiciones.
17
ESTE DOCUMENTO CONTIENE LA SEMANA 2
REFERENCIAS
Piattini, M.; García, F.; García, I. y Pino, F. (2012). Calidad de sistemas de información. México:
Piattini, M. (2008). Medición y estimación del software. Técnicas y métodos para mejorar la calidad
Pressman, R. (2010). Ingeniería de Software, un enfoque práctico. 7.ª edición. España: Editorial
McGraw-Hill Interamericana S. A.
IACC (2015). Aseguramiento de la calidad del software (SQA). Modelos y Control de Calidad.
Semana 2.
18
ESTE DOCUMENTO CONTIENE LA SEMANA 2
19
ESTE DOCUMENTO CONTIENE LA SEMANA 2