Académique Documents
Professionnel Documents
Culture Documents
201
2
Testing de
software, normas
de calidad y
estndares
Page 1
201
2
Contents
Introduccin........................................................................................................ 8
Las pruebas del software.................................................................................. 10
Mtodos de prueba: Verificacin y Validacin...................................................12
Validacin...................................................................................................... 12
Verificacin.................................................................................................... 13
Pruebas humanas: recorridas y revisiones de programa............................13
Cobertura de las pruebas........................................................................... 15
Caja negra y caja blanca............................................................................. 15
Diseo de los casos de prueba...................................................................16
Prueba por mdulos.................................................................................... 18
Pruebas de nivel superior........................................................................... 19
Planeamiento y control de las pruebas.......................................................20
Terminacin de las pruebas........................................................................21
Debugging.................................................................................................. 21
Sandboxes.................................................................................................. 22
Control de los costos................................................................................... 22
Tareas para las pruebas, entregables y cronologa.....................................23
Las organizaciones y los mtodos de pruebas...............................................23
CMMI for development. CMMI para desarrollo................................................26
Mejorar los procesos para desarrollar mejores productos y servicios...............26
CMMI para desarrollo..................................................................................... 28
Las reas de procesos....................................................................................... 29
El modelo en su conjunto.................................................................................. 30
Niveles de capacidad..................................................................................... 32
Nivel de capacidad 0: Incompleto...............................................................33
Nivel de capacidad 1: Realizado.................................................................33
Nivel de capacidad 2: Gestionado..............................................................33
Maria Victoria Anselmi
Page 2
201
2
Page 3
201
2
Solucin tcnica............................................................................................. 50
Propsito..................................................................................................... 50
Notas introductorias................................................................................... 50
reas de proceso relacionadas...................................................................50
Resumen de Goles y Prcticas especficas..................................................51
Validacin...................................................................................................... 51
Propsito..................................................................................................... 51
Notas introductorias................................................................................... 52
reas de proceso relacionadas...................................................................53
Resumen de Goles y Prcticas especficas..................................................53
Prcticas especficas por gol.......................................................................53
Verificacin.................................................................................................... 58
Propsito..................................................................................................... 58
Notas introductorias................................................................................... 58
reas de proceso relacionadas...................................................................59
Resumen de goles y prcticas especficas:.................................................59
Prcticas especficas por gol.......................................................................60
Norma ISO/IEC 12207, IEEE 12207-2008 Ingeniera de sistemas y de software
Ciclo de vida de los procesos de software......................................................66
Alcance, propsito, limitaciones y conformidad de la norma.........................66
Aplicacin de la norma................................................................................... 67
Categoras de procesos del ciclo de vida.......................................................68
Procesos especficos de software...................................................................69
Procesos de implementacin de software...................................................69
Procesos de soporte de software................................................................70
Procesos de reutilizacin de software.........................................................71
Procesos relacionados con la calidad del software.........................................71
Proceso de testing de calificacin del software...........................................71
Proceso de aseguramiento de la calidad del Software................................72
Proceso Verificacin del Software...............................................................74
Proceso Validacin del Software.................................................................77
Proceso Revisin del Software....................................................................78
Maria Victoria Anselmi
Page 4
201
2
Page 5
201
2
Page 6
201
2
Page 7
201
2
Introduccin
Un aspecto clave de la ingeniera de software es el aseguramiento de la
calidad. Dentro del ciclo de vida del software existe la etapa de testeo, la cual
no pocas veces corre el riesgo de ser minimizada debido a los escasos tiempos,
y la creencia de que otras etapas del proceso son ms importantes. Esto suele
llevar a elevadas cantidades de re-trabajo e insatisfaccin de parte del
cliente.
Adems de la etapa propia de pruebas de los programas, existen normativas y
estndares de calidad, tales como normas ISO o el modelo de CMMI, los cuales
apuntan a una mejora de la calidad revisando el proceso completo de
ingeniera de software. Es decir, no solo revisando con pruebas el producto
final, sino teniendo revisiones y estndares establecidos para cada etapa del
proceso, ya que cada una de ellas ser determinante para que el producto final
sea no slo de calidad, sino que represente realmente lo que el cliente deseaba
y cubra sus necesidades.
El presente proyecto de trabajo de grado propone:
Page 8
201
2
Page 9
201
2
Page 10
201
2
1 Vid Myers, Glenford J., El arte de probar el software, El Ateneo, 1984, pp. 5-17
2 Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P, Lim, E,
MacCormack, Nord, R., Ozkaya, I., Sangwan, R, Seaman, C, Sullivan, K.,
Zazworka, N.; Managing Technical Debt in Software-Reliant Systems, 2011.
3 Vid. Acquisition Archetypes: Happy Path Testing, 2009
Maria Victoria Anselmi
Page 11
201
2
Validacin
Los procesos de validacin deben abarcar pruebas tanto para determinar si el
producto satisface los requerimientos del usuario as como tambin otras para
determinar si el comportamiento del producto
se corresponde con el
comportamiento deseado, descripto en la especificacin funcional.
La validacin de requerimientos es la que tiene el mayor potencial de ahorrar
esfuerzos de desarrollo: puede detectar muchas deficiencias que de otro modo
no sern encontradas hasta una etapa muy avanzada del desarrollo, donde el
costo de correccin es mucho ms alto. Adems la etapa de definicin de
requerimientos es en la cual ms del 50% de los defectos son introducidos. Si
en esta etapa las revisiones se hacen de una forma correcta los beneficios
sern muy altos ahorrando gran cantidad de esfuerzo y dinero en etapas
posteriores.
4 Vid Kit, Edward, Software Testing in the real world, ACM Press, 1995, p.57.
Maria Victoria Anselmi
Page 12
201
2
Verificacin
Dentro de la verificacin del cdigo (testing) se incluyen diferentes clases de
revisiones: inspecciones, recorridas de cdigo, revisiones tcnicas y otros
mtodos. El evento central para estos mtodos es una reunin en la cual los
defectos del producto son descubiertos y conversados.
Las actividades de verificacin son implementadas en un orden en que el
tamao del producto, su nivel de detalle, y el costo de verificacin van
creciendo, mientras que la potencial rentabilidad disminuye.
En la etapa de testing, como sucede en todas sus actividades, la verificacin
no puede ser exhaustiva, por lo cual es recomendable combinar diferentes
mtodos de verificacin y detectar partes crticas del cdigo para en ellos
realizar una inspeccin ms profunda.
La verificacin es casi siempre ms efectiva que la validacin, inclusive puede
encontrar defectos que en la etapa de validacin son prcticamente imposibles
de detectar, pero lo ms importante es que permite encontrar los defectos
mucho antes.
Una herramienta fundamental en las actividades de verificacin son las listas
de verificacin. Ejemplos de estas listas son las listas de verificacin para
requerimientos, para los diseos funcionales, para el diseo tcnico, para
cdigo en general y para lenguajes en particular.
5 Vid Grady H. Campbell, Jr., Harry Levinson, Richard Librizzi, An Acquisition
Perspective on Product Evaluation, 2011.
Maria Victoria Anselmi
Page 13
201
2
Las listas de verificacin son una parte muy importante en las pruebas, deben
reflejar el enfoque elegido y el grado de madurez de nuestras verificaciones. 6
Pruebas humanas: recorridas y revisiones de programa
Las pruebas humanas, es decir la lectura de los programas por parte de gente
son un procedimiento efectivo para la deteccin de errores y deben ser
empleadas en todo proyecto de programacin.
El proceso de inspecciones y recorridas es llevado a cabo por tres o cuatro
personas, una de las cuales es la autora del programa, de este modo el
programa es probado por esencialmente por personas que no lo disearon.
Este tipo de pruebas resulta muy til en la deteccin de grupos de errores, los
costos de correccin son menores, dado que la naturaleza del error est bien
definida, y est probado que son eficaces para encontrar entre el 30 y el 70%
de los errores de codificacin y de lgica en programas tpicos. Estos procesos
son de gran valor para las pruebas de programas nuevos as como para
modificaciones.
Se denomina inspeccin a un conjunto de procedimientos y tcnicas para la
lectura de programas efectuada por un grupo de personas. El grupo consta de
un moderador, quien debe ser un programador experto; el programador; el
diseador del programa, quien podra ser el mismo que el programador; y un
experto en pruebas.
El procedimiento es el siguiente: das antes de la inspeccin los miembros del
equipo reciben una copia del cdigo para poder familiarizarse con l. Durante
la inspeccin el programador debe ir describiendo sentencia por sentencia la
lgica del programa, y se le van haciendo preguntas para determinar si existen
errores. En general el mismo programador es quien encuentra la mayor
cantidad de errores. El programa es analizado por medio de una lista ayuda
memoria, que incluye frecuentes errores.
El programador realizara la correccin de los errores despus de la sesin de
inspeccin.
Para la sesin de inspeccin es importante contar con tiempo y lugar
adecuados para evitar interrupciones del exterior. El lapso ptimo vara ente 90
y 120 minutos, dado que es requerido un considerable esfuerzo mental.
Las recorridas tambin consisten en la lectura del programa aplicando
procedimientos y tcnicas de deteccin de errores, pero en una forma
diferente.
6 Vid. Kit, Edward, op. cit. pp. 57-76.
Maria Victoria Anselmi
Page 14
201
2
El grupo est formado por tres, cuatro o cinco personas. Una tendr un papel
similar al del moderador, otra har las veces de secretaria para tomar nota de
los errores encontrados, y una tercera persona tendr el rol de probador.
Al igual que en el caso anterior los participantes debern familiarizarse con el
cdigo unos das, antes. Sin embargo el procedimiento durante la reunin el
distinto: En este caso los participantes desempearan el rol de la computadora,
el probador contara un conjunto de casos de prueba representativos a ser
ejecutados. Estos, siendo simples y pocos debido a la diferencia de velocidad
de ejecucin existente entre una computadora y una persona,
sern
ejecutados mentalmente uno a uno, y el estado del programa ira siendo
registrado en un papel o pizarra. Los casos de prueba no juegan en s mismos
un rol crtico, sino que son un disparador para cuestionar al programador la
lgica y suposiciones utilizadas, de este modo es como se encuentran la mayor
cantidad de errores.
El tercer proceso humano de deteccin de errores son las pruebas de escritorio,
similares a las inspecciones o recorridas pero realizadas por una sola persona,
quien lee el programa, chequea una lista posible de errores y ejecuta la lgica
de casos de prueba a travs de l.
Un ltimo proceso humano de revisin de programas son las autoevaluaciones
comparativas, que no se encargan de probar los programas sino de una
evaluacin annima sobre la calidad general del programa, la facilidad de
mantenimiento y claridad.7
Cobertura de las pruebas
La cobertura de las pruebas abarca tanto los requerimientos, la funcionalidad
como la lgica. IEEE/ANSI destaca claramente la importancia de las dos
primeras, sin embargo la cobertura de la lgica tambin es muy importante ya
que indirectamente mejora la cobertura de funcionalidad y porque es necesaria
para probar secuencias lgicas que podran no ser discernibles desde la
funcionalidad externa.
Hay dos cosas esenciales para las pruebas de validez: la definicin de
resultados y la repetitividad. Myers dijo El ojo ve lo que quiere ver. Por esto
es importante que los resultados esperados en un caso de prueba estn
definidos previamente a la ejecucin del mismo, as como que el caso de
prueba arroje resultados consistentes cada vez que se lo ejecute con las
mismas configuraciones de software y hardware. Cuando los resultados reales
difieren de los resultados esperados la falla debe ser recreada para debugging.
7 Vid Myers, Glenford J., op.cit., El Ateneo, 1984, pp. 19-36
Maria Victoria Anselmi
Page 15
201
2
Test
Test
Test
Test
de
de
de
de
usabilidad
funcionalidad
sistema
aceptacin8
Page 16
201
2
Page 17
201
2
Page 18
201
2
Page 19
201
2
Todo esto parece sugerir que las pruebas incrementales son superiores a las
pruebas no incrementales.
Dentro de las pruebas incrementales existen dos estrategias, la ascendente y
la descendente.
La estrategia descendente comienza con la prueba del mdulo inicial del
programa, luego, para que un mdulo pueda convertirse en el siguiente
modulo a ser probado, debe cumplir con la condicin de que previamente se
haya probado por lo menos uno de los mdulos correspondientes al mdulo
superior. Para este tipo de pruebas se requiere la creacin de mdulos
auxiliares simulando el correspondiente modulo subsiguiente.
En este punto podran tambin realizarse pruebas en paralelo, con las
diferentes combinaciones de mdulos subsiguientes.
De haber secciones crticas en el programa es recomendable que sean
agregadas lo antes posible a las secuencias de prueba. Tambin es importante
que los mdulos de entradas y salida sean incorporados a las pruebas lo ms
pronto posible.
En el caso de la estrategia ascendente se comienza por los mdulos finales del
programa, aquellos que no llaman a otros, para continuar con los del nivel
superior una vez que todos los mdulos del nivel subordinado hayan sido
probados. Para estas pruebas se requiere la creacin de mdulos impulsores,
los cuales son ms fciles de escribir que los mdulos auxiliares. Un
inconveniente de esta estrategia es que no existe una estructura previa del
programa, y el programa operativo no existe hasta que se incorpora el ultimo
modulo, resultando as la estructura del programa completo.
Page 20
201
2
13 Vid Ed Morris, William Anderson, Sriram Bala, David Carney, John Morley,
Patrick Place, Soumya Simanta; Testing in Service-Oriented Environments
14 Vid Myers, Glenford J., op.cit., El Ateneo, 1984, pp. 105-106
Maria Victoria Anselmi
Page 21
201
2
Cul es una base de principios tericos para afirmar que hay confianza
suficiente en el comportamiento del software?
Que tipos de justificaciones son ms o menos aceptables?
Est bien justificado un nivel de confianza propuesto, por principios y
teoras slidas?
Page 22
201
2
Page 23
201
2
informacin til para la ubicacin del error, tratando de cubrir con ellos una
condicin nica, o al menos pocas. Este mtodo se utiliza asociado al mtodo
de induccin o al de deduccin.
Es importante tambin tener en cuenta que el debugging, adems de una
herramienta valiosa para la eliminacin de errores, puede servir para analizar
en detalle los errores detectados, y as ser retroalimentacin que tambin
ayude a mejorar el diseo y los futuros procesos de prueba. Esto podra ser una
tarea difcil y costosa, sin embargo con este tipo de anlisis la calidad de los
programas podra mejorar notablemente.19
Sandboxes
Tambin relacionado con el testing, est la utilizacin de los llamados
sandboxes (areneros), sistemas exclusivamente de prueba que se utilizan
tanto para ejecutar aplicaciones como para hacer pruebas de cdigo y
configuraciones. Se han utilizado mucho en actividades de testing de
mantenimiento, proveyendo un rea segura para probar ideas nuevas y cdigo.
Otra utilizacin ms relevante de los sandboxes es la relacionada con las reas
de seguridad, proveyendo un ambiente virtual para correr aplicaciones que no
han sido probadas. Habitualmente tienen acceso limitado a los recursos,
informacin, redes y dispositivos de entrada y salida. 20
Page 24
201
2
Page 25
201
2
en
cuenta
al
momento
de
planificar
Hay siete enfoques distintos para la organizacin de las pruebas, los cuales
reflejan la evolucin de la madurez de una organizacin de desarrollo.
1. Testing es responsabilidad de cada persona: es lo que habitualmente
ocurre en el mundo real. Este enfoque se viola un principio bsico, de
que las pruebas deben ser realizadas en forma independiente. Probar el
programa creado impide al desarrollador encontrar sus propios errores,
es propio de la naturaleza humana.
2. Testing es responsabilidad de cada unidad: este enfoque resuelve el
problema del primero, sin embargo el problema es ahora para las
personas encontrar el tiempo de comprender el trabajo de testing tan
bien como comprenden el de desarrollo, con sus procesos, estndares,
polticas, herramientas, entrenamientos, mtricas, etc.
3. Testing realizado por un recurso dedicado: este enfoque resuelve el
problema de mltiples tareas para los desarrolladores, seleccionando
uno en particular y dndole la tarea de probar software. Sin embargo en
este caso el gerente a cargo de esta persona en quien es asignado a
mltiples tareas, debiendo dar ahora soporte no solo a los
desarrolladores sino tambin a este nuevo rol que es parte de su equipo.
Esto es altamente improbable, por esto es que se vuelve claro que algn
tipo de grupo de test independiente es necesario, para coordinar las
actividades y dar a estas una dedicacin full time.
4. Nueva organizacin de pruebas en QA: una solucin comn es crear la
nueva organizacin como un componente de Quality Assurance. Sin
embargo el gerente de QA puede no entender el proceso de pruebas de
sistemas, y la gente empieza a preguntarse quien realmente es el
responsable por la calidad.
Page 26
201
2
Page 27
201
2
para
desarrollar
mejores
Page 28
201
2
Lo que une todo es el proceso utilizado, el cual permite nivelar los recursos y
examinar las tendencias de negocios.
Capability Maturity Model es una representacin simplificada de la realidad,
que contiene elementos esenciales de procesos efectivos.
CMMI CMM Integracin, tal como otros modelos CMM, provee una gua a ser
utilizada al crear procesos, no son procesos o descripciones de procesos. Fue
creado para resolver el problema de utilizar mltiples modelos de CMM. La
combinacin de modelos seleccionados en un solo marco mejorado. El primer
modelo creado fue el CMMI para desarrollo, llamado en su momento solamente
CMMI. Actualmente el modelo ya se encuentra en su versin 1.3.
El siguiente grafico muestra los modelos que llevaron a esta versin:
Page 29
201
2
Page 30
201
2
Page 31
201
2
El modelo en su conjunto
CMMI-DEV no especifica que un proyecto u organizacin deba seguir un
determinado proceso o que cierta cantidad de productos deban ser elaborados
por da, o targets especficos de performance a ser alcanzados. El modelo
especifica que un proyecto u organizacin deben tener procesos que cumplan
con las prcticas de desarrollo relacionadas. Para determinar si estos procesos
estn en lugar, un proyecto u organizacin mapea sus procesos con las reas
de proceso del modelo. Este mapeo de procesos con reas de proceso permite
a la organizacin un seguimiento de sus procesos comparado con el modelo de
CMMI-DEV mientras actualiza o crea nuevos procesos.
Los niveles son utilizados en CMMI-DEV para describir una lnea de evolucin
recomendada para una organizacin que quiere mejorar los procesos que
utiliza para desarrollar productos o servicios.
CMMI soporta dos vas de mejora, utilizando niveles. Una permite a las
organizaciones mejorar incrementalmente los procesos que corresponden con
un rea de proceso individual. La otra permite a las organizaciones mejorar un
grupo de procesos relacionados al incrementar sucesivamente un grupo de
reas de proceso.
Estas dos vas de mejora son asociadas con los dos tipos de niveles: Niveles de
Capacidad y Niveles de Madurez. Estas dos representaciones son llamadas
continua y por etapas respectivamente.
Para alcanzar un nivel particular, una organizacin debe satisfacer todos los
goles de un rea de proceso, o conjunto de reas de proceso que estn
indicadas como objetivo de mejora, independientemente de si es un nivel de
capacidad o de madurez.
La representacin continua usa los niveles de capacidad para caracterizar el
estado de los procesos de la organizacin en relacin con un rea de proceso
individual.
Page 32
201
2
Page 33
201
2
Nivel
Nivel
Nivel
Nivel
Nivel
0
1
2
3
4
Representacin
continua
Niveles de capacidad
Incompleto
Realizado
Gestionado
Definido
Nivel 5
Representacin
por
niveles
Niveles de madurez
Inicial
Gestionado
Definido
Cuantitativamente
Gestionado
Optimizado
Page 34
201
2
Niveles de capacidad
Un nivel de capacidad para un rea de proceso se alcanza cuando todos los
goles genricos son satisfechos hasta ese nivel. El hecho de que los niveles de
capacidad 2 y3 usen los mismos nombres que los goles genricos 2 y3 es
intencional, ya que cada uno de esos goles y prcticas genricos reflejan el
significado de los niveles de capacidad de los goles y prcticas.
Page 35
201
2
Niveles de madurez
Un nivel de madurez consiste en prcticas genricas y especificas relacionadas
por un grupo de reas de procesos predefinidas que mejoran la performance
general de la organizacin.
Son medidos por el logro de goles genricos y especficos asociados con cada
grupo de reas de proceso predefinidas.
Recordemos que los niveles 2 y 3 usan los mismos trminos que los niveles de
capacidad 2 y 3, esta consistencia es intencional porque los conceptos de
capacidad y madurez son complementarios.
Los niveles de madurez se utilizan para caracterizar las mejoras de la
organizacin relacionada a un grupo de reas de proceso, y los niveles de
capacidad caracterizan la mejora de la organizacin relativa a un rea de
proceso particular.
Page 36
201
2
Page 37
201
2
Page 38
201
2
Page 39
201
2
la
Soporte
Anlisis
de
Decisiones
y Resolucin (DAR)
Soporte
Gestin
de
proyectos
integrada (IPM)
Medicin y Anlisis (MA)
Definicin del
Proceso
Organizacional (OPD)
Gestin de proyectos
Soporte
Gestin de proyectos
2
3
Enfoque del
Proceso
Organizacional (OPF)
Gestin de proyectos
Gestin
del
Desempeo Organizacional
(OPM)
Gestin de proyectos
Rendimiento del
Proceso
Organizacional (OPP)
Gestin de proyectos
Entrenamiento Organizacion
al (OT)
Gestin de proyectos
Integracin
productos (PI)
Ingeniera
de
Monitoreo y
proyecto(PMC)
Control de
Gestin de proyectos
Planificacin
Proyectos (PP)
de
Gestin de proyectos
Soporte
Aseguramiento
de
la Calidad del Proceso y del
Producto (PPQA)
Maria Victoria Anselmi
Page 40
Gestin
de
Proyectos
cuantitativa (QPM)
Gestin de proyectos
Desarrollo
de
Requerimientos (RD)
Gestin de Requerimientos
(REQM)
Ingeniera
Gestin de proyectos
Gestin de proyectos
Gestin de Acuerdos
Proveedores (SAM)
Gestin de proyectos
Ingeniera
Validacin (VAL)
Ingeniera
Verificacin (VER)
Ingeniera
de
Page 41
201
2
201
2
Gestin de procesos
Las reas de proceso del grupo Gestin de procesos contienen las
actividades de proyecto transversales, relacionadas con definir, planificar,
instalar, implementar, monitorear, controlar, evaluar, medir y mejorar los
procesos.
Estas cinco reas son:
Page 42
201
2
Page 43
201
2
Gestin de proyectos
Las reas de proceso de gestin de proyectos cubren las actividades
relacionadas con planificacin, monitoreo, y control del proyecto.
Estas siete reas son:
Page 44
201
2
Page 45
201
2
Ingeniera
Las reas de proceso de ingeniera cubren las actividades de desarrollo y
mantenimiento que son compartidas a travs de las disciplinas de ingeniera,
cualquiera sea la disciplina del producto en desarrollo (software, mecnica,
etc.), para mejorar su proceso.
De este modo el foco se pone en objetivos esenciales del negocio ms que en
disciplinas especficas.
Las cinco reas de proceso de ingeniera son:
Page 46
201
2
Validacin (VAL)
Verificacin (VER)
Page 47
201
2
Page 48
201
2
Soporte
Las reas de soporte cubren las actividades que dan soporte al desarrollo del
producto y su mantenimiento, se dirigen a procesos que son utilizados en el
contexto de realizacin de otros procesos. En general, las reas proceso de
soporte se dirigen a procesos que estn sealados a lo largo del proyecto y
puede alcanzar proceso que se aplican ms generalmente a la organizacin.
Las cinco reas de proceso de soporte son:
Page 49
201
2
Page 50
201
2
Page 51
201
2
progresar
Page 52
201
2
Desarrollo de requerimientos
Propsito
El propsito del desarrollo de requerimientos es obtener, analizar, y establecer
los requerimientos del cliente, del producto, y de los componentes del
producto.
Notas introductorias
Esta rea de proceso describe tres tipos de requerimientos: del cliente, del
producto, y de los componentes del producto. En su conjunto alcanzan las
necesidades de las principales partes interesadas, incluyendo las necesidades
pertinentes a varias fases del ciclo de vida del producto y sus atributos.
Los requerimientos estn presentes en todos los proyectos de desarrollo, y son
la base del diseo. Incluyen las siguientes actividades:
Page 53
201
2
Esta rea de proceso se dirige a todos los requerimientos del cliente, no solo a
los de producto, debido a que el cliente puede proporcionar requerimientos
especficos de diseo.
Los requerimientos son identificados y refinados a lo largo de las fases del ciclo
de vida del producto.
La definicin de la funcionalidad requerida y atributos de calidad describe lo
que el producto debe hacer. Esta definicin puede incluir descripciones,
descomposiciones, y particiones de las funciones servicios- del producto.
Adicionalmente la definicin especifica consideraciones de diseo o
restricciones sobre cmo la funcionalidad requerida debe ser realizada.
Atributos de calidad se dirigen a cosas tales como disponibilidad del producto,
mantenimiento, modificabilidad, lneas de tiempo, rendimiento, respuesta,
confiabilidad, seguridad y escalabilidad. Algunos de estos pueden ser de
importancia en la arquitectura y dirigirn el desarrollo de la misma.
reas de proceso relacionadas
Integracin de productos: para ms informacin sobre asegurar compatibilidad
de interfaces
Solucin tcnica: para ms informacin sobre seleccin de soluciones de
componentes de producto y desarrollo del diseo.
Validacin: para ms informacin sobre validacin del producto y sus
componentes
Verificacin: para ms informacin sobre verificacin de productos de trabajo
seleccionados.
Gestin de la configuracin: para ms informacin sobre el seguimiento y
control de cambios
Page 54
201
2
de
las
necesidades
de
stakeholders
en
Solucin tcnica
Propsito
El propsito de la solucin tcnica es seleccionar, disear, e implementar
soluciones para los requerimientos. Soluciones, diseos e implementaciones
abarcan productos, componentes de producto, y procesos relacionados al
producto en el ciclo de vida, ya sea en forma singular o combinadamente.
Page 55
201
2
Notas introductorias
El rea de proceso de solucin tcnica es aplicable a cualquier nivel de la
arquitectura de producto, y a todos los productos, componentes de producto y
procesos relacionados al producto en el ciclo de vida.
Esta rea de proceso se enfoca en:
Page 56
201
2
Validacin
Propsito
El propsito del rea de proceso Validacin es demostrar que un producto o
componente de producto cumple con el uso pretendido cuando es puesto en su
pretendido ambiente
Notas introductorias
Las actividades de validacin pueden ser aplicadas a todos los aspectos del
producto en cualquiera de sus pretendidos ambientes, tales como operacin,
entrenamiento, manufactura, mantenimiento, y servicios de soporte.
Los mtodos empleados en la validacin pueden ser aplicados a productos de
trabajo as como tambin al producto y componentes de producto. Los
productos de trabajo deben ser seleccionados en base a cules son los mejores
predictores de cun bien el producto y sus componentes satisfarn las
Page 57
201
2
Page 58
201
2
seleccionar,
disear
Page 59
201
2
Page 60
201
2
Page 61
201
2
Page 62
201
2
Page 63
201
2
Verificacin
Propsito
El propsito de la Verificacin (VER) es asegurar que los productos de trabajo
seleccionados alcanzan los requerimientos especificados
Notas introductorias
El rea de proceso Verificacin abarca lo siguiente: preparacin de la
verificacin, rendimiento de la verificacin, e identificacin de acciones
correctivas.
La verificacin incluye verificacin del producto, y de trabajos de producto
intermedios, contra todos los requerimientos seleccionados, incluyendo los
requerimientos de cliente, producto, y componentes de producto.
Para lneas de producto, principales activos y sus mecanismos de variacin de
lnea de productos deben tambin ser verificados. A travs de las reas de
proceso, donde los trminos producto y componentes de producto son
utilizados, sus mecanismos pretendidos tambin abarcan servicios, sistemas de
servicios, y sus componentes.
La verificacin es inherentemente un proceso incremental porque ocurre a
travs del desarrollo del producto y productos de trabajo, comenzando con la
verificacin de requerimientos, pasando por la verificacin de los productos de
trabajo en evolucin, y finalizando en la verificacin del producto completo.
Las prcticas especficas de esta rea de proceso se apoyan entre s de la
siguiente forma:
Page 64
201
2
Page 65
201
2
Page 66
201
2
Page 67
de
esas
201
2
actividades,
Page 68
201
2
Page 69
201
2
Page 70
201
2
Page 71
201
2
Page 72
201
2
Page 73
201
2
Aplicacin de la norma
En general esta norma aplica tanto a productos como servicios de software. Las
disposiciones de procesos especficos definen la aplicabilidad.
En esta norma se establece un fuerte vnculo entre sistema y software, basado
en los principios generales de la ingeniera de sistemas. El software es tratado
como una parte integral del sistema total, y desarrolla ciertas funciones en el
sistema.
Page 74
201
2
Proceso de contrato
Proceso de habilitacin organizacional del proyecto
Procesos de proyecto
Procesos tcnicos
Procesos de implementacin del software
Procesos de soporte del software
Procesos de reutilizacin del software
Page 75
201
2
Page 76
201
2
Page 77
201
2
Proceso
Proceso
Proceso
Proceso
Proceso
Proceso
Proceso
Proceso
de
de
de
de
de
de
de
de
Salidas
Como resultado de una implementacin exitosa del proceso de testing de
calificacin del software:
-
Page 78
201
2
Actividades
El proyecto deber implementar las siguientes actividades de acuerdo con las
polticas aplicables de la organizacin y procedimientos con respecto al proceso
de testing de calificacin del software.
Page 79
201
2
Salidas
Como resultado de la implementacin exitosa del proceso de aseguramiento de
calidad del software:
-
Actividades
El proyecto deber implementar las siguientes actividades de acuerdo con las
polticas aplicables de la organizacin y procedimientos con respecto al proceso
aseguramiento de la calidad del software.
Page 80
201
2
1. Ser asegurado que todos los planes requeridos por el contrato estn
documentados, estn de acuerdo con el contrato, son mutuamente
consistentes, y se estn ejecutando como es requerido
2. Ser asegurado que los productos de software y su documentacin
relacionada estn de acuerdo al contrato y adhieren a los planes.
3. En preparacin a la entrega de los productos de software ser asegurado
que han satisfecho completamente los requerimientos contractuales y
son aceptables para el adquiriente.
Aseguramiento del proceso
Consiste en las siguientes tareas:
1. Ser asegurado que los procesos del ciclo de vida del software
empleados por el proyecto estn de acuerdo con el contrato y adhieren a
los planes
2. Ser asegurado que las prcticas internas de ingeniera de software, el
ambiente de desarrollo, el ambiente de test, y las libreras estn de
acuerdo con el contrato.
3. Ser asegurado que los requerimientos aplicables al primer contrato son
pasados al subcontratista y que los productos de software del
subcontratista satisfacen los requerimientos del primer contrato.
Maria Victoria Anselmi
Page 81
201
2
Salidas
Como resultado de una exitosa implementacin del proceso de Verificacin del
software:
-
Actividades
El proyecto deber implementar las siguientes actividades de acuerdo con las
polticas aplicables de la organizacin y procedimientos con respecto al proceso
de verificacin de software.
Page 82
201
2
Page 83
201
2
Page 84
201
2
Salidas
Como resultado de una implementacin exitosa del proceso de validacin del
software:
-
Actividades
El proyecto deber implementar las siguientes actividades de acuerdo con las
polticas aplicables de la organizacin y procedimientos con respecto al proceso
de validacin de software.
Page 85
201
2
Page 86
201
2
Salidas
Como resultado de una exitosa implementacin del proceso de revisin del
software:
-
Actividades
El proyecto deber implementar las siguientes actividades de acuerdo con las
polticas aplicables de la organizacin y procedimientos con respecto al proceso
de Revisin de Software
Page 87
201
2
Page 88
f.
201
2
Salidas
Como resultado de una exitosa implementacin del proceso de Auditora de
software:
-
Actividades
El proyecto deber implementar las siguientes actividades de acuerdo con las
polticas aplicables de la organizacin y procedimientos con respecto al proceso
de Auditora de Software
Page 89
201
2
Page 90
201
2
Software
La norma IEEE 829 aplica a todos los sistemas basados en software, soporta
todos los procesos de ciclo de vida y sirve para sistemas que estn siendo
desarrollados, adquiridos, operados, mantenidos y/o reutilizados.
Cuando se realiza el proceso de test es importante examinar el software en sus
interacciones con otras partes del sistema. Esta norma identifica las
consideraciones que los procesos y tareas de test realizan para determinar la
exactitud y otros atributos como integridad, precisin, consistencia, y
testabilidad, y la documentacin resultante que aplica.
El propsito de esta norma es establecer un marco para los procesos,
actividades, tareas de test, en soporte de todos los procesos de ciclo de vida
software; definir tareas, inputs y outputs requeridos, identificar y las mnimas
tareas de pruebas correspondientes a los niveles de integridad definidos en un
esquema de cuatro niveles de integridad; definir el uso y contenidos del Plan
Maestro de Test y del Plan de Nivel de Test; y definir el uso y contenidos de
documentacin de test relacionada (Diseo de test, casos de test,
procedimientos de test, reporte de anomalas, log de test, reporte de nivel de
test, reporte provisional de test, y reporte maestro de test).
Objetivos de testing
Los sistemas basados en software se componen de software, hardware,
interfaces y operadores/usuarios.
Los procesos de test incluyen la consideracin de interacciones con todos los
otros componentes del sistema como medio ambiente, usuarios, hardware y
otro software. Adems proveen evidencia objetiva de que los sistemas basados
en software y sus productos asociados satisfacen los requerimientos de
sistema asignados, resuelven el problema adecuado y satisfacen el uso
pretendido y las necesidades del usuario.
El desarrollo de un cuerpo de evidencia razonable requiere equilibrio entre la
cantidad de tiempo utilizado y un set de condiciones y asunciones finitas de
sistema contra los cuales realizar las tareas de test. Cada proyecto debe definir
criterios para tener un cuerpo de evidencia razonable, cronograma de tiempos,
25 Vid. IEEE Standard for software and System Test Documentation, 2008, pp.18-21
Maria Victoria Anselmi
Page 91
201
2
Page 92
201
2
Niveles de integridad
Un nivel de integridad es un indicador de la relativa importancia del software
para las partes interesadas, de acuerdo con ciertos atributos establecidos tales
como complejidad, evaluacin de riesgos, nivel de seguridad, integridad de los
datos, performance deseada, confiabilidad, calidad, costos, tamao, y otras
caractersticas particulares del software.
Este estndar uso el concepto de niveles de integridad para determinar las
tareas de testing a ser realizadas mnimas recomendadas. Los procesos de test
y la documentacin resultante deben ser ajustados a los requerimientos y
aplicaciones especficos del sistema a travs de la seleccin de un nivel de
integridad.
Como ejemplo este estndar trae un esquema de niveles de integridad de
cuatro niveles, cuyas categoras son definidas basadas en la seriedad de las
consecuencias de un comportamiento errneo y en el potencial de mitigacin.
Cada nivel lleva asociada una palabra descriptiva:
Nivel 4: Catastrfico: el software debe ejecutarse bien o se producirn graves
consecuencias, sin posible mitigacin
Page 93
201
2
Procesos de test
Esta norma sigue la estructura en el estndar IEEE/EIA 12207.0-1996 para
describir los procesos: cada proceso tiene uno o ms actividades de soporte
que son ejecutadas por una o ms tareas. Es un mtodo top-down para
determinar que tareas son requeridas. Una vez que cada tarea ha sido
identificada, los inputs necesarios y outputs resultantes pueden ser
identificados. En el caso de este estndar, los inputs y outputs determinan que
documentacin de test es necesaria.
El testing es un conjunto de actividades orientadas a verificar el cdigo
ejecutable. No obstante, desde otras gestiones se pueden invocar actividades
de testing para adelantar e ir preparando el proceso, como por ejemplo
Planificacin del testing.
En nuestro trabajo hemos analizado la norma ISO/IEC 12207 del ao 2008. Sin
embargo la norma IEEE 829 es anterior a esta, por lo cual soporta procesos de
la norma IEEE 12207.0, los cuales son ligeramente diferentes a los de la ltima
versin.
Los procesos soportados en este caso son:
Gerenciamiento
-
Adquisicin
Suministro
Desarrollo
Operacin
Proceso de mantenimiento
Page 94
201
2
No todos los proyectos de software incluyen cada uno de estos procesos, para
estar en conformidad con la actual norma, los procesos de test necesitan
incluir solo los procesos del ciclo de vida utilizados por el proyecto. El grado de
intensidad y rigor en la realizacin y documentacin de la tarea son
proporcionales al nivel de integridad.
Proceso de Gerenciamiento
El proceso de gerenciamiento de test incluye la preparacin de los planes de
ejecucin de los procesos de test.
Una vez iniciada la implementacin de los planes, ocurren las siguientes
actividades:
Page 95
201
2
Proceso de Adquisicin
El proceso de adquisicin comienza con la definicin de las necesidades para
adquirir un sistema, producto de software o servicio de software.
El proceso continua con la preparacin y edicin de un RFP (requerimiento de
propuesta) y con la seleccin de un proveedor. Termina con el gerenciamiento
del proceso de adquisicin a travs de la aceptacin del sistema, producto o
servicio de software. Las tareas de test son ejecutadas a travs del proceso de
adquisicin para darle soporte. Las tareas van desde identificacin de la
documentacin requerida del proveedor en el RFP y el contrato para la
ejecucin del test de aceptacin.
Page 96
201
2
Proceso de Suministro
El proceso de suministro se inicia sea por una decisin de preparar una
propuesta para responder a un RFP de un adquiriente o mediante la firma y la
creacin de un contrato con el adquiriente para proveer el sistema basado en
software, producto de software o servicio.
El proceso continua con la determinacin de procedimientos y recursos
necesarios para gerenciar el proyecto incluyendo la preparacin del plan del
proyecto, de la ejecucin de los planes a travs de la entrega del sistema
basado en software, producto de software o servicio al adquiriente.
El esfuerzo de test usa el proceso de suministro para continuar determinando
el alcance de los esfuerzos de test. La actividad de plan de test usa los
requerimientos del contrato, incluyendo el cronograma general para revisar y
actualizar la planificacin de las interfaces de test entre el proveedor y el
adquiriente.
Proceso de Desarrollo
El proceso de desarrollo consiste en las actividades y tareas del grupo de
desarrollo. Cubre las actividades de desarrollo de anlisis de requerimientos,
diseo, codificacin, integracin de componentes, testing, instalacin, y
aceptacin, relacionadas con el software o el producto de sistema basado en
software.
Las actividades de test verifican los productos de estas actividades de
desarrollo. Las actividades de test descriptas en este estndar estn
Maria Victoria Anselmi
Page 97
201
2
Actividad: concepto
La actividad de concepto representa la identificacin de una implementacin
especfica para resolver un problema de las partes interesadas o cubrir sus
necesidades. Una arquitectura preliminar de sistema puede ser identificada y
el anlisis de los requerimientos del sistema puede comenzar durante esta
actividad. Durante esta actividad la arquitectura del sistema es seleccionada, y
los requerimientos de sistema son asignados a los componentes de hardware,
software e interfaz de usuario. El objetivo del esfuerzo de test es revisar los
documentos de concepto y requerimientos para comprender mejor las
necesidades del usuario.
Los esfuerzos de test realizan segn sea apropiado a los niveles de integridad,
estas mnimas tareas recomendadas:
a. Revisin de la documentacin de concepto para conocimientos del tester
de las necesidades del usuario.
b. Revisin de los documentos de requerimientos del sistema
c. Generacin preliminar de la matriz de trazabilidad de pruebas
d. Identificacin el nivel de integridad
Actividad: requerimientos
En la actividad de requerimientos se definen los requerimientos funcionales y
no funcionales, seguidos por las interfaces externas al software, requerimientos
de seguridad, definiciones de datos, documentacin de usuario del sistema y
del software, requerimientos de instalacin y aceptacin, requerimientos de
operacin y ejecucin de los usuarios, y requerimientos de mantenimiento.
Durante esta actividad las actividades de testing participan en la verificacin
de los requerimientos de software.
El objetivo del esfuerzo de test en este caso es la verificacin de los
requerimientos de software, verificando la testabilidad y de los
requerimientos asignados, as como tambin ayudando a identificar
ambigedades, poca claridad o requerimientos faltantes.
Maria Victoria Anselmi
Page 98
201
2
Actividad: diseo
En la actividad de diseo los requerimientos del sistema son transformados en
arquitectura y diseo detallado para cada componente de software.
El diseo incluye bases de datos e interfaces. Se crea el diseo de arquitectura
del software y del sistema, y el diseo detallado del sistema. El objetivo del
esfuerzo de test en este caso es continuar con la planificacin de las pruebas.
El esfuerzo de test realiza de acuerdo con el nivel de integridad seleccionado
las tareas mnimas recomendadas:
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
Actividad: implementacin
En la actividad de implementacin el diseo es implementado y se genera el
cdigo, las estructuras de base de datos, y las representaciones de las
ejecuciones relacionadas.
El diseo tambin puede ser implementado en personalizaciones o
configuraciones de componentes o sistemas ya codificados. Esta actividad
incluye creacin o modificacin de software y testing.
Maria Victoria Anselmi
Page 99
201
2
de
Actividad: test
En la actividad de test propiamente dicha se cubre la integracin de los
componentes de software, pruebas de aceptacin de software, integracin del
sistema, y pruebas de aceptacin del sistema. El objetivo es verificar que los
requerimientos de software y de sistema estn satisfechos con la ejecucin de
las pruebas de integracin de componentes, sistema y aceptacin. Las
versiones y releases del software son probados por progresin, es decir
pruebas de caractersticas nuevas y corregidas; y por regresin, es decir
pruebas para asegurar que no han ocurrido cambios indeseados.
El esfuerzo de test realiza de acuerdo con el nivel de integridad seleccionado
las tareas mnimas recomendadas:
a) Ejecucin de pruebas de integracin de componentes
b) Evaluacin de los resultados de las pruebas de integracin de
componentes
c) Preparacin del reporte de las pruebas de integracin de componentes
d) Ejecucin de las pruebas de sistema
e) Evaluacin de los resultados de las pruebas de sistema
f) Preparacin del reporte de las pruebas de sistema
g) Ejecucin delas pruebas de aceptacin
Maria Victoria Anselmi
Page 100
h)
i)
j)
k)
201
2
Proceso de operacin
El proceso de operacin cubre la operacin del producto de software y el
soporte de operacin a los usuarios. La actividad de operacin realiza testing
operacional, operacin del sistema y soporte de usuarios.
Page 101
201
2
Proceso de mantenimiento
El proceso de mantenimiento se activa cuando el sistema basado en software o
el producto de software sufren alguna modificacin en el cdigo y
documentacin asociada debido a algn problema, necesidad de mejora o
adaptacin.
La actividad de mantenimiento consiste en modificaciones, migracin o retiro
del sistema basado en software o producto de software durante el proceso de
operacin.
Las modificaciones sern tratadas como un proceso de desarrollo y sern
verificadas segn el proceso de gestin y desarrollo de esta misma norma.
Los niveles de integridad son evaluados durante el proceso de mantenimiento,
y pueden ser revisados apropiadamente para reflejar los requerimientos del
proceso de mantenimiento. Estas modificaciones pueden ser derivadas de
requerimientos especificados para corregir errores de software, para adaptarlo
a un ambiente de operacin cambiado o para responder a nuevos
requerimientos de usuario o mejoras.
Page 102
201
2
Page 103
201
2
Los usuarios de la norma pueden elegir agregar, combinar o eliminar todos los
documentos o tpicos de contenidos de documentacin basados en las
necesidades (y nivel de integridad) de sus sistemas individuales.
Cuando el contenido de la documentacin est cubierto en cualquier otro lado,
el esquema del documento puede ser llevado igualmente, haciendo un
esquema al otro documento en el lugar apropiado. Otra alternativa es modificar
el esquema para eliminar tpicos de contenido que no son utilizados. Puede ser
deseable para esquemas modificados proveer una lista de las referencias que
cubren los tpicos de contenido eliminados.
Un enfoque sugerido para adaptar la informacin provista a una circunstancia
especfica incluye consideraciones de:
a. Proveer una referencia a la informacin documentada en otro lugar
b. Eliminar los tpicos de contenido cubiertos por el proceso
c. Eliminar los tpicos de contenido cubiertos por herramientas
automatizadas
d. Combinacin o eliminacin de documentos
e. Combinacin o eliminacin de tpicos de contenido de documentos
Page 104
201
2
Alcance
Describe el propsito, goles y alcance del esfuerzo de pruebas del sistema o
software. Incluye la descripcin de cualquier adaptacin del estndar que ha
sido implementado. Se identifica el proyecto para el cual el plan se est
escribiendo y los procesos especficos y productos cubiertos por el esfuerzo de
test. Se describen las inclusiones, exclusiones, asunciones, limitaciones.
Es importante definir claramente los lmites del esfuerzo de test para cualquier
plan de test. Est implcito que las tareas de test reflejaran el enfoque global y
la metodologa de desarrollo. La documentacin requerida depender del
enfoque de test elegido.
Referencias
Se listan todos los documentos de referencia que aplican. Las referencias son
separadas en externas que son impuestas externamente al proyecto, e
internas que son impuestas dentro del proyecto.
Page 105
201
2
Page 106
201
2
MTP: General
Introduce las secciones subsiguientes. Esta seccin incluye el glosario de
trminos y acrnimos.
Tambin describe la frecuencia y el proceso por el cual el MTP es cambiado
creada su lnea de base.
Tambin puede contener una pgina de cambios, con el historial de todos los
cambios, fecha, razn, y quien lo realiz.
Page 107
201
2
LTP: introduccin
Introduce las secciones subordinadas siguientes. En esta seccin se identifica
el documento y se lo pone en contexto del esfuerzo de test y del ciclo de vida
especfico del proyecto. Esta seccin tambin identifica los tipos de test y las
condiciones para los niveles especficos de testing.
Alcance
Se realiza un resumen de los productos de software o tems de sistema y
caractersticas a ser testeadas en este nivel en particular. La necesidad de
cada tem y su historia debe ser incluida. Esta seccin puede ser una referencia
a partes del MTP, una adicin al este o reflejar cambios.
Referencias
Los datos son similares al identificador del documento maestro de test antes
comentado (MTP)
Page 108
201
2
Page 109
201
2
Enfoque
Describe el enfoque general para el nivel de testing. Para cada caracterstica
principal o grupo de caractersticas, se especifica el enfoque se asegurara que
estn adecuadamente testeados. El enfoque puede ser descripto con suficiente
detalle como para permitir la identificacin de las principales tareas de testing
y la estimacin del tiempo requerido para cada una.
Las caractersticas a ser testeadas, las caractersticas a no ser testeadas y el
enfoque suelen combinarse en una tabla llamada Matriz de test. Contiene un
identificador nico para cada requerimiento de test, un indicador de la fuente
del requerimiento y un resumen de los requerimientos y una identificacin de
uno o ms mtodos genricos de test, como por ejemplo caja negra, caja
blanca, anlisis o inspeccin.
Page 110
201
2
Especifica los criterios utilizados para suspender todos o una parte de las
actividades de testing en los tems de test asociados al plan. Especifica las
actividades de testing que deben ser repetidas cuando el testing es reanudado.
Entregables de test
Se identifica toda la informacin que ser entregada por esta actividad de test.
Los siguientes documentos pueden ser entregados: Plan de nivel de test,
Diseo de nivel de test, Casos de nivel de test; Procedimientos de nivel de test,
Log de nivel de test; Reportes de anomala, Reportes de estado de test de nivel
intermedio, Reporte de nivel de test, Reporte maestro de test.
Los datos de input y output de test pueden ser identificados como entregables.
Las herramientas de test tambin pueden ser incluidas
Se describe el proceso de entrega de la informacin completa a los individuos y
entidades organizativas que lo precisaran. Este documento puede ser una
referencia al Plan de gestin de la configuracin.
Esta descripcin de entrega no es necesaria de estar previamente cubierta en
el MTP y no ha habido cambios
LTP Gestin del test
Introduce las subsiguientes secciones subordinadas. Esta seccin describe las
actividades de test y tareas para el nivel especificado y las progresiones de
estas. Es aqu que la infraestructura, responsabilidades, y autoridad, interfaces
organizacionales, recursos, entrenamiento, cronograma, y riesgos son
identificados si no han sido identificados o descriptos en un nivel ms alto,
como por ejemplo MTP.
Page 111
201
2
Responsabilidad y autoridad
Identifica los individuos o grupos responsables de gestionar, disear, preparar,
ejecutar, presenciar, y chequear resultados de este nivel de testing, y para
resolver las anomalas encontradas. Adems identifica las personas
responsables de proveer los tems de test y las necesidades ambientales ya
identificadas.
Las partes responsables pueden incluir desarrolladores, testers, personal de
operacin, representantes de los usuarios, soporte tcnico, administradores de
datos, y soporte de calidad. Pueden participar a tiempo completo o a medio
tiempo y pueden tener responsabilidades primarias o secundarias.
Recursos y su asignacin
Delinea cualquier recurso adicional requerido que no haya ya sido
documentado por otras partes del plan. Incluye tanto recursos internos como
externos.
Entrenamiento
Maria Victoria Anselmi
Page 112
201
2
Riesgos y contingencias
Identifica los riesgos de problemas que pueden impactar adversamente en la
terminacin exitosa de las actividades de nivel de test planificadas. Especifica
los potenciales impactos de cada riesgo, con plan de contingencia para mitigar
o evitar el riesgo. Como los riesgos y contingencias que pueden estar vigentes
al momento de la liberacin de la primera versin del documento pueden
cambiar cuando contina el proyecto, pueden ser seguidos en un documento
separado que no est bajo control de aprobacin.
General
Introduce las secciones siguientes subordinadas. Describe los procedimientos y
mtricas de QA y contiene el glosario y la descripcin de la frecuencia y
procesos por los cuales es revisado el documento y creada una nueva lnea de
base.
Tambin puede contener una pgina con el historial de cambios.
Page 113
201
2
Mtricas
Se identifican las medidas especficas que van a ser recolectadas, analizadas y
reportadas. Las mtricas especificadas aqu son las que solo aplican a este
nivel de test particular. Puede ser una referencia a donde est documentado el
Plan de aseguramiento de la calidad o como parte de la documentacin en un
programa genrico de medidas.
Glosario
Es similar al glosario descripto en MTP
Page 114
201
2
Introduccin
Identifica la organizacin emisora, y los detalles de emisin. Incluye las
aprobaciones requeridas y el estado (BORRADOR/ORIGINAL) del documento. Es
ac donde el alcance es descripto e identificadas las referencias.
General
Esta seccin incluye el glosario y los procedimientos de cambio e historial del
documento.
Introduccin
La identificacin del documento, alcance y referencias son similares a las
descriptas para los documentos anteriores.
El contexto provee cualquier contexto requerido que no haya sido ya cubierto
por otras secciones del documento, como por ejemplo terceros realizando
testing a travs de internet.
La notacin por descripcin define cualquier esquema de numeracin, por
ejemplo escenarios y casos de prueba. En esta seccin se explica cualquiera de
estos esquemas.
Maria Victoria Anselmi
Page 115
201
2
General
Esta seccin y sus partes, tales como el glosario y el historial de cambios y
procedimientos son similares a los de los documentos anteriores.
Page 116
201
2
Page 117
201
2
Page 118
201
2
Page 119
201
2
UML
UML es ampliamente independiente del proceso, es decir, no est atado a
ningn ciclo de vida de software particular. Sin embargo, para obtener los
mayores beneficios de UML se debera considerar un proceso que sea:
-
Dirigido por casos de uso significa que los casos de uso son utilizados como el
artefacto primario para establecer el comportamiento deseado del sistema,
para verificar y validar su arquitectura, para realizar el testing, y para
comunicarse con las partes interesadas del proyecto.
Centrado en la arquitectura significa que la arquitectura del sistema es
utilizada como un artefacto primario para conceptualizar, construir, gerenciar y
evolucionar el sistema en desarrollo.
Un proceso iterativo es aqul que envuelve la gestin y el flujo de los releases
ejecutables. Un proceso incremental es aquel que envuelve la continua
integracin de la arquitectura del sistema para producir estos releases. Con
cada nuevo release abarcando mejoras incrementales por sobre el anterior.
Juntos, un proceso iterativo e incremental es dirigido por los riesgos, esto
significa que cada nuevo release se enfoca en atacar y reducir los riesgos ms
importantes para el xito del proyecto.
Este proceso dirigido por casos de uso, centrado en la arquitectura e
iterativo/incremental puede ser dividido en fases.
Una fase es el lapso de tiempo entre dos grande hitos en el proceso. Cuando un
grupo de objetivos bien definidos se alcanzan, los artefactos estn completos y
las decisiones estn hechas, para moverse a la fase siguiente
Hay cuatro fases en el ciclo de vida de desarrollo: comienzo, construccin y
transicin. Dentro de cada una de estas fases hay un nmero de iteraciones,
las cuales representan un ciclo completo de desarrollo, desde la captura de
requerimientos en anlisis, hasta la implementacin y testing, que resulta en la
liberacin de un proyecto ejecutable.26
26 Vid Rumbaug, Jacobson, Booch, The Unified Modeling Language User Guide,
Addison-Wesley, 1998, pp. 38 y ss.
Maria Victoria Anselmi
Page 120
201
2
Modelos de requerimientos
Modelo de anlisis
Modelo de diseo
Page 121
201
2
Modelo de implementacin
Modelo de pruebas
Page 122
201
2
Page 123
201
2
Page 124
201
2
TEST MANGER
Dentro de las herramientas de test comentaremos, basado en la investigacin
de Carolina Oberst en su trabajo de grado, el funcionamiento del Test Manager.
Page 125
201
2
Page 126
201
2
Diseo e implementacin
La actividad de Planning en Test manager abarca otras dos actividades de
proceso de Testing: Diseo e Implementacin.
Una vez definido que es lo que se va a testear, hay que definir cmo realizar el
testing. Esta pregunta es respondida por la actividad de Diseo.
El diseo del Test Case se puede realizar a partir de los Test Inputs, por ejemplo
los requerimientos. De esta forma el Test Case es independiente de la
implementacin de los requerimientos, y adems al haber un cambio en los
requerimientos sto se debe reflejar en el Test Case.
El diseo debe tener definido cules son las precondiciones, post condiciones y
cul es el criterio de aprobacin.
Una vez diseado el Test Case, est listo para ser implementado. Implementar
un Test Case implica crear un Test Script y asociarlo al Test Case.
Los Test Scripts son set s de instrucciones, que se pueden utilizar para navegar
la interfaz de usuario de una aplicacin para asegurar que todos los botones, y
Maria Victoria Anselmi
Page 127
201
2
Execution
Correr o ejecutar un test case significa correr la implementacin de cada test
case para validar el comportamiento del producto, asegurando que funcione
como se supone que debe hacerlo y que est hecho con la calidad necesaria.
En Test manager se pueden correr: Test Scripts Automticos, Test Scripts
Manuales, Test cases o Suites.
Suites son otra manera de implementar los Tests en Test Manager, muestran
una representacin jerrquica de last reas a testear, o de la carga de trabajo
que se quiere agregar a un sistema. Cada suite muestra los tems, como el
usuario o el grupo de computadoras; los recursos asignados a cada grupo; los
Test Scripts que cada grupo puede correr; y cuntas veces debe correr cada
Test Script. Se pueden utilizar tanto para tests de performance como
funcionales.
En esta etapa tambin se administran las configuraciones, para que los Test
Cases corran automticamente en computadoras que cumple con cierta
configuracin de software y hardware. Esto es para asegurarse que los Test
Cases funcionen correctamente en algn sistema operativo en especial, o
browser, etc. Tambin se podra pretender que funcionen correctamente en
combinaciones de sistemas operativos y browsers. Una vez creadas las
configuraciones, se pueden asociar a los Test Cases para crear Test Cases
configurados.
Mientras una Suite, un Test Case o un Test Script corre, es posible monitorear
su progreso. Test Manager crear Suites temporarias para ejecutar tanto Test
Scripts como Test Cases.
Test Manager permite:
-
Page 128
201
2
Page 129
201
2
ROBOT
La segunda herramienta que comentaremos es Robot, nos basaremos en la
investigacin de Max Garay en su trabajo de grado.
Que es Robot
Robot es una herramienta que forma parte del Rational Toolkit. Es un conjunto
de componentes para la automatizacin de testing de aplicaciones de tipo
cliente/servidor, as como tambin de aplicaciones de Internet. Soporta
aplicaciones que corran sobre Windows NT 4.0, Windows XP, Windows 2000,
Windows 98 y Windows Mc.
La funcionalidad de Robot permite desarrollar 2 tipos de scripts: GUI scripts y
Session scripts. Los primeros son para el testing funcional, mientras que los
scripts de sesin son para el testing de performance.
Page 130
Page 131
201
2
201
2
Funcionamiento de Robot
Rational RobotJ se concentra en testear HTML y aplicaciones Java de escritorio
o aplicaciones Java web.
Es una herramienta que permite ejecutar scripts, los cuales simulan las
acciones de un usuario que interacta con la GUI de la aplicacin en cuestin.
El mtodo que se utiliza para testear es el de la comparacin: tiene una lnea
de base que representa lo que se espera, y se ingresan puntos de verificacin
en la aplicacin. El ejecutarla, si estos coinciden, eso indica que est
funcionando como se espera, de lo contario habr que rever el sistema.
Rational Robot permite captar 3 tipos de scripts:
1. SQABasic scripts (utiliza el lenguaje MS-Basic)
2. RobotJ scripts (utiliza el lenguaje Java)
3. Virtual User scripts (utiliza el lenguaje C)
Scripts
Para comenzar a crear scripts es necesario tener un contenedor para guardarlo.
El ejecutar la aplicacin el usuario comienza a grabar un script, con las
acciones sobre la aplicacin. Luego, al ejecutar el script, las acciones corren
automticamente como si lo estuviera haciendo nuevamente. De esta manera
se puede ver cmo responde el sistema.
Verification Points
Proveen un baseline de las propiedades o datos de un objeto: si un punto de
verificacin falla se ha encontrado un defecto o un cambio en el sistema. El
RobotJ Verification Point comparator muestra los resultados reales y los
esperados, para poder detectar defectos o cambios que se hayan realizado.
Page 132
201
2
GUI Scripts
Cuando se graba un GUI script, Robot graba las acciones del usuario (teclas
oprimidas, clics, etc), y los puntos de verificacin.
Antes de comenzar a grabar se deben tomar ciertos recaudos: se deben
establecer datos iniciales y finales predecibles de los scripts, para luego poder
ser ejecutados en forma independiente unos de otros; se debe establecer el
entorno de testing; y se deben modularizar los scripts, para luego poder
modificarlos fcilmente o ubicar cambios con facilidad, y que sean fciles de
depurar.
Puntos de verificacin
Los puntos de verificacin, sin puntos en un script que se crean para confirmar
el estado de un objeto. Durante el perodo de grabacin, el punto de
verificacin captura informacin acerca del objeto y lo guarda como lnea de
base. Durante la ejecucin, el punto de verificacin recaptura la informacin y
la compara. Si el objeto no coincide con la informacin guardada, Robot crea
un archivo de datos reales, con la informacin real de objeto. Luego de la
ejecucin del script, los resultados de cada punto de verificacin aparecen el
en log de Test Manager. Si un punto de verificacin falla, se puede entonces ver
Page 133
201
2
por medio de comparadores los datos de la lnea de base y los reales, para as
determinar si las diferencias son intencionales o no.
Un punto de verificacin se guarda en el proyecto y siempre est asociado a un
script.
Timers
Robot permite insertar Timers de dos tipos, los que arrancan y los que frenan.
Sirven para grabar y escribir al archivo de log la duracin de los eventos de un
script. Miden el tiempo que lleva realizar una actividad. De esta manera se
pueden medir una variedad de tareas.
Los timers se pueden utilizar para:
-
Para ejecutar un script que incluye timers conviene configurar una opcin de
Robot para remover cualquier tiempo extra que Robot pueda tomarse y que
pueda retrasar la aplicacin.
Page 134
201
2
Scripts manuales
A pesar de que es ms fcil y ms rpido generar automticamente los scripts
con Robot, se pueden codificar manualmente usando el lenguaje de scripts
SQABasic, siendo el mismo Robot el que provee sta opcin.
Shell scripts
Un Shell script es un script que ejecuta otros scripts en secuencia. Antes de
crear un Shell script es necesario que se hayan grabado todos los scripts que
se intentan incluir. Los resultados de todos los scripts se guardan en el mismo
log para facilitar el anlisis de los resultados.
Page 135
201
2
Page 136
201
2
Grabacin de sesiones
Una sesin grabada con Robot contiene todas las consultas del cliente al
servidos y las respuestas del servidor realizadas desde que se comienza a
grabar hasta que se para la grabacin. Estas grabaciones generan scripts de
test que se guardan en un archivos de sesin.
En una sesin mltiple se pueden grabar: mltiples transacciones,
transacciones contra el mismo servidor o contra distintos servidores, diferentes
tipos de consultas.
Los archivos de sesin son guardados por default en el directorio TMS_Scripts
del datastore del proyecto.
Al trabajar con sesiones se puede: dividir la sesin en mltiples scripts,
regenerar los scripts de la sesin o ver las propiedades de la sesin.
Grabacin API
Con ste mtodo Robot graba las llamadas de API entre la aplicacin cliente y
el servidor. La grabacin se realiza en el cliente, como ocurre con los mtodos
Network y Proxy.
Es recomendable utilizar este mtodo si se accede a daros seguros de un
servidor Web y a que captura la informacin antes de que llegue al cable y sea
encriptada.
La grabacin API soporta clientes Windows NT, Windows 2000, y Windows XP.
No se deben especificar direcciones IP o nombres de red del cliente y el
servidor como en los mtodos Network y Proxy.
Grabacin Network
Con este mtodo Robot graba el trfico a niel de paquetes en la capa OSI
utilizando el modo de la tarjeta de red. La grabacin Network soporta
estndares cmo Ethernet, Token Ring, t FDDI (Fiber Distributed Data
Interface). En este mtodo, a diferencia del API, la grabacin ocurre en el cable
y no en el cliente.
Grabacin Proxy
Con este mtodo, el trfico cliente-servidor es ruteado va una computadora
Proxy. La grabacin de proxy ocurre en la capa OSI de la aplicacin. Se pueden
Maria Victoria Anselmi
Page 137
201
2
Grabacin custom
Para que este mtodo funcione es necesario que un adaptador de grabacin
custom y un adaptador generador de custom scripts estn instalados y
configurados.
La Grabacin
Informacin de autenticacin
Si se corre un test contra una base de datos que requiere un ID de usuario y
una contrasea, se debe proveer esta informacin cuando se graba el script y
cuando se ejecuta tambin. Durante la grabacin Robot detecta el ID de
usuario y si hay otra informacin del usuario, guarda esta informacin, pero no
la contrasea. Durante la ejecucin cuando se requiere un ID de usuario y una
contrasea, Robot encuentra el ID en el script y la contrasea en el datapool de
autenticacin asociado a este ID de usuario.
Comenzar a grabar
Para comenzar a grabar un script en una sesin se debe iniciar la grabacin
con el botn Record Session o por medio del men File>Record Session.
Cancelacin de scripts
Al cancelar el script durante la grabacin el script es eliminado, esto es de gran
utilidad si se cometen errores durante la grabacin de una sesin o si no se
quiere incluir actividades preliminares por ejemplo el logging.
Si no se ha dividido la sesin en mltiples scripts se pueden cancelar ambos, la
sesin y el script, y luego frenar la grabacin.
Cuando s se ha dividido la sesin en mltiples scripts se puede cancelar el
script actual, simplemente frenando la grabacin e ignorando la informacin
recin grabada. Los otros scripts grabados permanecern en la sesin.
Page 138
201
2
Para cancelar todos los scripts dentro de una sesin de mltiples scripts
simplemente se debe parar la grabacin y aceptar. Inmediatamente despus
de esto se debe cancelar la generacin de scripts que comienza.
Regrabar sesiones
Regrabar sesiones es comenzar a grabar una sesin sobre otra que ya contiene
scripts. Se puede borrar la sesin vieja y todos sus scripts o no. Grabar sobre
una sesin afecta a todos los scripts: para grabar slo sobre un script se debe
seleccionar el nombre del mismo cuando Robot lo solicita.
Maria Victoria Anselmi
Page 139
201
2
Page 140
201
2
Object properties: compara los datos de la lnea de base con los datos
que causaron la falla en el punto de verificacin Object Properties.
Text: compara los datos de la lnea de base con los datos que causaron
la falla para el punto de verificacin Alphanumeric.
Grid: compara los datos de la lnea de base con los datos que causaron
la falla para los puntos de verificacin Menu y Object Data.
Image: compara la imagen del baseline con la imagen que caus la falla
para el punto de verificacin Window image o Region image. Adems
permite ver inesperadas ventanas abiertas que provocan fallas durante
la ejecucin.
Datapools
Un datapool es un conjunto de datos de test que suministra valores a las
variables de un script durante la ejecucin. Se utilizan para que cada tester
virtual que corre el script pueda enviar datos reales al servidor y para que un
tester particular que realiza la misma transaccin varias veces pueda enviar
datos reales al servidor en cada transaccin.
Si se ejecuta un script una vez, probablemente no precise acceder a un
datapool, pero generalmente es necesario acceder a ellos, sobre todo cuando
se realizan tests funcionales y de performance, para simular que se realiza la
misma operacin una y otra vez, consecutiva y simultneamente.
Data Tests
Los data tests son los puntos de verificacin Object Data. El punto de
verificacin Object data soporta data tests para capturar los datos en los
objetos. Hay dos tipos de data tests, los Built-in, que vienen con Robot, y los
Custom, que son creados por el usuario.
Page 141
201
2
Plan Test
Model Test
Test Case
Test Procedure
Test Component
Defect
Evaluate Test
Test Designer
Component Engineer
Integration Tester
System Tester
Plan Test
Design Test
Implement Test
Perform Test
Evaluate Test
Page 142
201
2
Page 143
201
2
IEEE/EIA 12207 define estndares para los procesos del ciclo de vida del
software. Cada proceso tiene una serie de actividades y tareas a ser realizadas
para garantizar la calidad. Para esto hay procesos primarios y procesos de
soporte, que son los que ayudan a los procesos primarios a ser ejecutados con
calidad.
Dentro de los procesos de soporte se encuentran los procesos de verificacin,
validacin, revisin y auditora, que atravesando todo el proceso de desarrollo
garantiza la trazabilidad desde los requerimientos hasta el producto final
garantizando la adecuacin con las necesidades del cliente y la ausencia de
errores.
A diferencia de CMMI IEEE 12207 sugiere un proceso de adaptacin que, dentro
de ciertas condiciones, puede ser aplicado sobre los procesos presentados,
para que el usuario pueda definir su propio proceso siguiendo los lineamientos
de la norma. De este modo el cliente definir su propio proceso, y luego deber
por medio de los productos de trabajo demostrar que cumpli con lo
establecido.
Page 144
201
2
dentro de este marco delinea las diferentes tareas y documentos que son
necesarios en cada una de las actividades.
Dentro de los mtodos de testing que hemos analizado se puede apreciar el
modo particular en que se aplica el QUE establecido por CMMI y la norma
IEEE 12207, dentro del COMO presentado por IEEE 829.
Estas diferentes actividades estn dirigidas a verificar y validar el cdigo para
evitar errores, asegurando que el cdigo ejecutable se adece a los
requerimientos iniciales.
Por ltimo hemos analizado dos herramientas, Test Manager y Robot, que
ayudan a la aplicacin del COMO de todos estos procesos y mejores
prcticas, por medio de la automatizacin de pruebas y generacin de
documentos y logs de test, devolviendo los casos de prueba exitosos, los
errores, y permitiendo el anlisis del cdigo para debug y correccin.
Es decir, el modelo de CMMI, la norma IEEE 12207 y el modelo de UML
proponen mejores prcticas a realizar, mientras que la norma IEEE 829 propone
un modo concreto de realizarlo. Las herramientas analizadas, Robot y Test
manager facilitan la automatizacin de estos procesos. A travs de todos estos
enfoques vemos como se garantizan actividades de verificacin y validacin en
cada etapa de desarrollo, revisiones de requerimientos, revisin de trazabilidad
del cdigo con respecto a los requerimientos, y generacin de casos de prueba
que verifican que los requerimientos han sido implementados, y
correctamente. De este modo se apuntan a eliminar los errores en etapas
tempranas, evitando as su propagacin, arraigndose en el tiempo y
produciendo errores cada vez ms difciles de erradicar.
Page 145
201
2
CONCLUSIONES
Como hemos visto en los diferentes enfoques de aseguramiento de la calidad,
es importante contar con actividades especficas de verificacin y validacin a
lo largo de todo el ciclo de vida. Una continua validacin respecto de los
requerimientos, junto con el testing del cdigo, asegurarn no slo que el
producto sea construido con calidad respecto de los posibles errores en la
codificacin, sino tambin que ste sea construido de acuerdo a las
necesidades reales del cliente, y no se aleje, poco a poco, de los
requerimientos originales, desembocando en un producto que tal vez funcione
bien, pero no realiza lo que originalmente fue requerido.
Hay una imagen frecuentemente utilizada para describir este problema, que no
por mucho que haya sigo utilizada deja de ser representativa:
Page 146
201
2
desemboque en algo intil. Muchas veces los clientes no saben bien como
expresar sus necesidades, otras veces la persona encargada de interpretar el
requerimiento no tiene el suficiente conocimiento del proceso de negocio del
que se est tratando. Estos requerimientos iniciales son luego analizados e
interpretados por muchas otras personas en sus diferentes etapas generando,
de no existir los procesos de verificacin y validacin necesarios, una especie
de telfono descompuesto que lleva a un producto final inadecuado. Por eso es
que son necesarias las revisiones frecuentes, verificaciones y validaciones de
los requerimientos con el cliente, y en etapas posteriores verificacin y
validacin del cdigo, asegurando as que no se ha perdido la trazabilidad con
las necesidades originales.
Todos coincidimos en que la calidad es importante al construir un producto,
pero habitualmente las exigencias de fechas de entrega, la urgencia de los
clientes, es decir la falta de tiempo, y otras veces la falta de presupuesto
desembocan en recortes de actividades, habitualmente de planificacin y de
calidad.
Sin duda esto termina por ser an ms perjudicial, ya que se genera re-trabajo
en las etapas de mantenimiento que al ser generadas por una mala
interpretacin de los requerimientos o pruebas insuficientes quedan a cargo
del rea de desarrollo.
Incorporados en el proceso de desarrollo de software, los modelos y
herramientas que hemos analizado en el presente trabajo ayudan a evitar los
problemas mencionados, a travs de distintos enfoques que tienden a
minimizar los errores en cada una de las etapas.
Los modelos analizados pueden ser incorporados en el ciclo de vida del
software siguiendo la utilizacin de las mejores prcticas, procesos concretos
con actividades y tareas tendientes a asegurar la trazabilidad en la
construccin del software.
Las herramientas analizadas son una clara ayuda en la etapa de testing del
software, automatizando la verificacin del cdigo y generando reportes
automticos de errores, facilitando as los datos necesarios para el anlisis y
deteccin de errores.
Se podran realizar trabajos de investigacin sobre la importancia especfica de
la calidad en la planificacin, que diera lugar a una ejecucin garantizada de
las actividades de verificacin y validacin.
Tambin podran realizarse trabajos que profundizaran en las actividades de
gestin de errores, anlisis de causa y resolucin, evaluando los diferentes
Maria Victoria Anselmi
Page 147
201
2
orgenes de los errores, sean por estimaciones demasiado exigentes para las
actividades, falta de entrenamiento de los desarrolladores, o fallas en los
procesos de revisin.
Page 148
201
2
Bibliografa
Kit, Edward, Software Testing in the real world, ACM Press, 1995
Myers, Glenford J., El arte de probar el software, El Ateneo, 1984
Jacobson, Ivar, Object Oriented Software Engineering, Addison-Wesley,
1992
Booch, Grady; Rumbaugh James; Jacobson Ivar, The Unified Modeling
Language User Guide, Addison-Wesley, 1998
Rumbaugh James; Jacobson Ivar; Booch, Grady, The Unified Modeling
Language Reference Manual, Addison-Wesley, 1999
Jacobson Ivar; Booch, Grady; Rumbaugh
Development Process, Addison-Wesley, 1999
James,
Unified
Software
Page 149
201
2
2011-04-12, http://www.sei.cmu.edu/library/assets/whitepapers/Managing
%20Tech%20Debt.pdf
Zacharie Hall Rick Kazman, Daniel Plakosh, Joseph Giampapa,Kurt Wallnau;
Edge Enabled Systems, 2010-06-15,
http://www.sei.cmu.edu/library/assets/whitepapers/Edge_Enabled_Systems_AFC
EA_GMU_C4I.pdf
Acquisition Archetypes: Happy Path Testing, 2009-10-15,
http://www.sei.cmu.edu/library/assets/happy.pdf
David A. Fisher, Principles of Trust for Embedded Systems, March 2012,
http://www.sei.cmu.edu/reports/12tn007.pdf
Grady H. Campbell, Jr., Harry Levinson, Richard Librizzi, An Acquisition
Perspective on Product Evaluation, October 2011,
http://www.sei.cmu.edu/reports/11tn007.pdf
Ed Morris, William Anderson, Sriram Bala, David Carney, John Morley, Patrick
Place, Soumya Simanta; Testing in Service-Oriented Environments, March
2010, www.sei.cmu.edu/reports/10tr011.pdf
Page 150