Академический Документы
Профессиональный Документы
Культура Документы
Testing de Software
Contenidos
Primera parte
Introduccin
software quality assurance, objetivos, visiones y modelos de calidad, definiciones, revisiones, aspectos
econmicos
conceptos bsicos de testing, temas esenciales, principios, aspectos sicolgicos y econmicos, proceso, estado
del arte v/s prctica
taxonoma de errores, debugging
Introduccin
software quality assurance, objetivos, visiones y modelos de calidad,
definiciones, revisiones, aspectos econmicos
conceptos bsicos de testing, temas esenciales, principios, aspectos
sicolgicos y econmicos, proceso, estado del arte v/s prctica
taxonoma de errores, debugging
Fundamentos
testing: definiciones, objetivos, casos de prueba
diseo de casos de prueba (black-box, white-box)
cobertura de white-box testing
estrategias, mtodos particulares de testing, testability, cleanroom
plan, especificacin, ejecucin y evaluacin de pruebas
Gestin
enfoques organizacionales, prcticas, tendencias, desafos
mejoramiento de procesos, costos y beneficios, mediciones
herramientas prcticas en el mercado, estndares, documentacin de testing
Temas Avanzados
pruebas de mutacin
pruebas de regresin
Calidad de software
Visiones de calidad
Visin trascendental
puede ser reconocida pero no definida
Visin del usuario
grado de adecuacin al propsito
Visin del productor
conformidad con la especificacin
Visin del producto
ligada a caractersticas inherentes del mismo
Visin basada en valor
cunto el cliente est dispuesto a pagar?
Page 1
Aseguramiento de
calidad de software
Reusabilidad
(Podr reusar alguna parte del software?)
Revisin
del
Producto
Transicin
del
Producto
Interoperabilidad
(Podr hacerlo interactuar
con otro sistema?)
Operacin
del
Producto
Grupo de SQA
Verificacin y validacin
Efecto de amplificacin
de defectos
Revisiones de software
Diseo preliminar
0
Diseo detallado
0% 10
6
4
10
6
4 x 1.5
x =
0%
37
25
Codificacin/prueba de unidad
10
94
27 x 3
x = 3 20%
25
94
Para la integracin
Prueba de integracin
Prueba de validacin
0
0
50% 47
50%
24
50%
12
0
Errores latentes
Sin revisiones
Page 2
Efecto de amplificacin
de defectos
Revisiones de software
objetivo
Detectar defectos en la lgica, funcin o implementacin
Diseo preliminar
0
0
Diseo detallado
70%
2
1
10
2
1 * 1.5
50%
15
25
Codificacin/prueba de unidad
5
5
24
10
10 * 3
60%
25
24
Para la integracin
Prueba de integracin
Prueba de validacin
0
0
50%
12
50%
50%
0
Errores latentes
Con revisiones
Revisiones de software
Revisiones de software
guas de accin
guas de accin
Inspecciones Fagan
Inspecciones Fagan
etapas
Planeacin -- preparacin logstica (materiales,
disponibilidades, fechas)
Overview -- conocimiento general, asignacin de roles
(autor, lector, tester, moderador)
Preparacin -- estudio del material a ser inspeccionado
Inspeccin -- bsqueda de defectos
Rework -- hacer las correcciones
Iteracin -- verificacin de lo realizado, y de la no
introduccin de efectos secundarios
Page 3
Medicin de calidad
confiabilidad (mtbf)
usabilidad (instalacin, aprendizaje, uso)
Conceptos bsicos de
testing
Anlisis costo/beneficio de
SQA
Page 4
Conceptos bsicos de
testing
Conceptos bsicos de
testing
Conceptos bsicos de
testing
Ejercicio
Testing no es:
Principios de testing
Principios de testing
Page 5
Aspectos econmicos
Aspectos econmicos
Proceso de testing
Proceso de testing
Planificacin
Anlisis de defectos
Completacin
Preparacin del equipamiento y los casos de prueba para uso posterior,
registro de documentacin
Identificacin
Estimacin ms detallada de los recursos requeridos
Especificacin
Descripcin de las pruebas a nivel funcional (propsito), y a nivel
detallado (ejecucin paso a paso)
Ejecucin
Desarrollo de las pruebas tanto automatizadas como manuales,
registrando los resultados
Page 6
Establecimiento de una
perspectiva prctica
Cmo se detectan
defectos?
Actitud adecuada
Page 7
Taxonoma de defectos
requerimientos
caractersticas y funcionalidad
estructura
datos
implementacin y cdigo
integracin
arquitectura del sistema y del software
definicin y ejecucin de pruebas
otros
Debugging
Segunda parte
Fundamentos
testing: definiciones, objetivos, casos de prueba
diseo de casos de prueba (black-box, white-box)
cobertura de white-box testing
estrategias, mtodos particulares de testing, testability, cleanroom
plan, especificacin, ejecucin y evaluacin de pruebas
Ejecucin de Casos
Casos
de
Prueba
Causas
Adicionales
Pruebas de
Regresin
Causas Sospechadas
Resultados
Correcciones
Causas
Identificadas
Depuracin
Depuracin
Testing de software
Testing de software
Objetivo: demoler el producto de software con el
propsito de detectar defectos
Es una actividad esencialmente destructiva, pero que
requiere mucha creatividad
Consiste en ejecutar un programa con la intencin de
encontrar un defecto
Configuracin
del software
Evaluacin
Errores
Resultados de
la prueba
Depuracin
Datos
de tasa
de error
Prueba
Configuracin
de prueba
Resultados
esperados
Correcciones
Modelo de
confiabilidad
Prediccin de
confiabilidad
Page 8
Principios de testing
Caso de prueba
Caja blanca
Existen dos estrategias fundamentales
caminos bsicos
estructuras de control
otros
Caja negra
clases de equivalencia
anlisis de fronteras
otros
Ejercicio
Page 9
BlackBlack-box testing
BlackBlack-box testing
equivalence partitioning
Es un proceso sistemtico que identifica un conjunto de
clases de pruebas representativas de grandes conjuntos
de otras pruebas posibles; la idea es que el producto
bajo prueba se comportar de la misma manera para
todos los miembros de la clase
Dos pasos
BlackBlack-box testing
BlackBlack-box testing
equivalence partitioning
equivalence partitioning
rango de valores vlidos: se define una clase vlida (dentro del rango) y
dos invlidas (en cada lado fuera del rango)
nmero de valores vlidos: idem
conjunto de valores vlidos: una clase vlida (dentro del conjunto) y
una clase invlida (fuera)
si se cree que cada input vlido es manejado de manera diferente, crear
una clase por cada input vlido
si se especifica una situacin must be, crear una clase vlida y una
invlida
BlackBlack-box testing
BlackBlack-box testing
equivalence partitioning
equivalence partitioning
Ejercicio: GOLFSCORE
Ejercicio
Page 10
BlackBlack-box testing
BlackBlack-box testing
boundaryboundary-value analysis
boundaryboundary-value analysis
Ejercicio: GOLFSCORE
para la especificacin de diseo funcional entregada en hoja aparte
determine una lista de valores frontera a ser probados
BlackBlack-box testing
BlackBlack-box testing
boundaryboundary-value analysis
error guessing
Ejercicio
BlackBlack-box testing
BlackBlack-box testing
error guessing
cause-effect
cause-effect graphing
Ejercicio
Page 11
BlackBlack-box testing
BlackBlack-box testing
otros
Syntax testing
Defectos potenciales
Graph matrix
Es solo una representacin ms simple de un grafo para organizar los
datos
BlackBlack-box testing
BlackBlack-box testing
Ejercicio
WhiteWhite-box testing
WhiteWhite-box testing
Page 12
WhiteWhite-box testing
WhiteWhite-box testing
While
If
Case
Until
WhiteWhite-box testing
WhiteWhite-box testing
1
Arco
procedure: sort
2,3
3
6
4,5
Regin
4
8
PDL
10
10
11
5
7a
11
WhiteWhite-box testing
a
x
7b
WhiteWhite-box testing
......
if a or b
then procedure x
else procedure y
endif
.......
Page 13
WhiteWhite-box testing
WhiteWhite-box testing
1
2,3
4,5
6
7
1-2-3-4-5-10-1-2-3-6-8-9-10-1-11
9
10
11
WhiteWhite-box testing
WhiteWhite-box testing
nmero de regiones
V(G) = e - n + 2, e son los arcos y n los nodos
V(G) = p + 1, p son los nodos predicados
WhiteWhite-box testing
WhiteWhite-box testing
2
10
12
3
11
4
13
5
6
8
7
9
Page 14
WhiteWhite-box testing
WhiteWhite-box testing
Casos de prueba
path 1:
path 2:
path 3:
Casos de prueba
path 4:
path 5:
path 6:
WhiteWhite-box testing
WhiteWhite-box testing
Ejercicio
WhiteWhite-box testing
WhiteWhite-box testing
condition testing
Es un mtodo de diseo de casos de prueba que ejercita las
condiciones lgicas contenidas en un mdulo de programa
Tipos de error:
Page 15
WhiteWhite-box testing
WhiteWhite-box testing
condition testing
condition testing
WhiteWhite-box testing
WhiteWhite-box testing
condition testing
condition testing
WhiteWhite-box testing
WhiteWhite-box testing
condition testing
Ejercicio
Page 16
WhiteWhite-box testing
WhiteWhite-box testing
WhiteWhite-box testing
WhiteWhite-box testing
proc x
B1;
do while C1
if C2
then
if C4
then B4;
else B5;
endif;
else
if C3
then B2;
else B3;
endif;
endif;
enddo;
B6;
end proc;
WhiteWhite-box testing
WhiteWhite-box testing
Ejercicio
Page 17
WhiteWhite-box testing
WhiteWhite-box testing
loop testing
loop testing
simples
concatenados
anidados
no estructurados
anidados
simples
concatenados
no estructurados
WhiteWhite-box testing
WhiteWhite-box testing
loop testing
loop testing
Loops anidados
WhiteWhite-box testing
WhiteWhite-box testing
loop testing
loop testing
Loops concatenados
Ejercicio
Loops no estructurados
en la medida de lo posible, estos loops deben ser rediseados
Page 18
WhiteWhite-box testing
WhiteWhite-box testing
test coverage
test coverage
WhiteWhite-box testing
WhiteWhite-box testing
test coverage
test coverage
Ejercicio: LIABILITY
WhiteWhite-box testing
test coverage
Testing GUIs
Ejercicio: LIABILITY
Page 19
Testing GUIs
Testing GUIs
ventanas (cont)
Testing GUIs
Testing GUIs
entrada de datos
Page 20
Estrategias de testing
Estrategias de testing
S
R
D
C
U
Page 21
Prueba de Unidad
Prueba de Integracin
Prueba de Validacin
ST
Estrategias de testing
Estrategias de testing
Estrategias de testing
Estrategias de testing
Para una implementacin exitosa de una estrategia de
testing se debe
Prueba de integracin
Diseo
Codificacin
Pruebas
de alto nivel
Requisitos
Prueba
de unidad
"Direccin" de prueba
Testing unitario
Estrategias de testing
Black-box y white-box testing v/s cobertura
pruebas de requerimientos (cobertura de requerimientos) y funcionales
(cobertura funcional) deberan utilizar black-box testing
pruebas internas (cobertura lgica) deben emplear white-box testing
Mdulo
Interfaz
Estructuras de datos locales
Condiciones lmite
Caminos independientes
Caminos de manejo de errores
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Casos de prueba
Pasos de unidad
Page 22
Testing unitario
Testing unitario
Testing unitario
Testing de integracin
Consideraciones
overhead asociado con mdulos stubs y drivers
mdulos con alta cohesin simplifican las pruebas unitarias
integracin top-down
integracin bottom-up
Integracin bottombottom-up
Integracin toptop-down
Mc
M1
Ma
D1
M2
M3
Mb
D2
D3
M4
Grupo 3
M5
M6
M7
Grupo 1
Grupo 2
M8
Integracin descendente
Integracin ascendente
Page 23
Testing de integracin
Testing de integracin
Integracin bottom-up
Testing de integracin
Testing de integracin
mbito de testing
plan de testing
fases de prueba e incrementos
calendario
software adicional
ambiente y recursos
procedimiento de prueba n (descripcin para incremento n)
orden de integracin
ambiente de prueba
herramientas o tcnicas especiales
descripcin de software adicional
casos de prueba
resultados esperados para incremento n
resultados reales de las pruebas
referencias
apndices
propsito
mdulos a ser probados
Testing de regresin
Testing de regresin
Page 24
Testing de validacin o
aceptacin
Testing de usabilidad
Involucra el hacer que los usuarios trabajen con un
producto de software y observar sus respuestas a l
Histricamente ha sido uno de los muchos componentes
de las pruebas de sistema ya que estn basados en
requerimientos, pero la tendencia es hacia darle un rol
ms prominente
Caractersticas a probar
Objetivo
determinar si el funcionamiento satisface al cliente/usuario
Pruebas alfa
conducidas en laboratorios del desarrollador por el usuario final
Pruebas beta
conducidas en ambientes de trabajo reales por usuarios finales,
generalmente amistosos; la prueba se desarrolla antes de la
distribucin general
Criterios de
completacin de testing
Testing de sistemas
.... hemos hecho suficiente testing para afirmar con un 95% de confianza
que la probabilidad de 1000 horas de CPU de operacin libre de fallas en
un ambiente probabilsticamente definido es por lo menos 0.995 ....
Testability
Cleanroom
Fundamentos tericos
especificacin y diseo formal
prueba de correctitud
testing estadstico
Page 25
Cleanroom
Especificacin
Funcin
Plan de pruebas
Uso
Especificacin Funcional
Especificacin de Uso
Planificacin
de Desarrollo
Incremental
Estructura de Cajas
Especificacin &
Diseo
Verificacin y
Correccin
Plan incremental de
desarrollo
Generacin
Estadstica de casos
de test
Casos de Test
Casos de Test
mtodos de testing
infraestructura (para desarrollo de testware y ejecucin de las pruebas)
automatizacin de las pruebas
software de apoyo
administracin de la configuracin
riesgos (presupuesto, recursos, plazos, entrenamiento, etc)
Testing Estadstico
Datos erroneos
Feedback
Certificacin de la
Calidad del Modelo
Plan de pruebas
Plan de pruebas
Plan de pruebas
Plan de prueba
propsito
prescribir el mbito, enfoque, recursos, y plazos de las actividades
de testing
esquema
identificador
introduccin
temes de prueba
caractersticas a ser probadas
caractersticas a no ser probadas
enfoque
criterios de aprobacin por tem
criterios de suspensin y requerimientos de continuacin
esquema (cont)
deliverables de testing
tareas de testing
necesidades ambientales
necesidades de personal y entrenamiento
calendario
riesgos y contingencias
aprobaciones
Plan de pruebas
Especificacin de pruebas
Ejercicio
Page 26
Especificacin de pruebas
Especificacin de pruebas
Ejercicio
esquema
identificador
introduccin
ubicacin del repositorio
convenciones de almacenamiento y acceso del repositorio
estructura/organizacin del repositorio
estndares
convenciones de agrupamiento y nombres para todos los archivos
Especificacin de pruebas
Especificacin de pruebas
Especificacin de pruebas
Especificacin de pruebas
Ejercicio
Page 27
Especificacin de pruebas
Especificacin de pruebas
Ejercicio
Ejecucin de pruebas
Especificacin de pruebas
Ejercicio
Ejecucin de pruebas
Ejecucin de pruebas
Logs de prueba
Ejercicio
propsito
proveer un registro cronolgico de detalles relevantes acerca de la
ejecucin de las pruebas
esquema
identificador
descripcin
entradas por actividades y eventos
Page 28
Ejecucin de pruebas
Ejecucin de pruebas
Ejercicio
propsito
documentar cualquier evento de la ejecucin de las pruebas que
requiera mayor investigacin
esquema
identificador
resumen
descripcin de incidentes
impacto
Evaluacin de pruebas
Tercera parte
Gestin
evaluacin de cobertura
evaluacin de defectos
evaluacin de efectividad de las pruebas
Preguntas claves
se continua o se detiene las pruebas?
qu pruebas adicionales se requieren, en caso de continuar?
cmo se crea el informe sumario final, en caso de detener las pruebas?
Enfoques
organizacionales
Enfoques
organizacionales
Page 29
Enfoques
organizacionales
Enfoques
organizacionales
Enfoques
organizacionales
Enfoques
organizacionales
Testing es parte de QA
Enfoques
organizacionales
Enfoques
organizacionales
Page 30
Enfoques
organizacionales
Enfoques
organizacionales
Criterios de seleccin
habilidad para rpida toma de decisiones
mejoramiento del trabajo en equipo
independencia, formalidad, imparcialidad, fortaleza, adecuacin de la
organizacin de testing
coordinacin de responsabilidades de testing y calidad
ayuda con los requerimientos de gestin de testing
propiedad de la tecnologa de testing
aprovechamiento de los recursos disponibles, especialmente humanos
impacto en motivacin y proyecciones profesionales
Dato importante
Prcticas y desafos
histricamente, 1:5-10
tendencias actuales, 1:3-4
buena administracin
buena comunicacin
buena gente
buenos controles
mediciones permanentes
Prcticas efectivas de
gestin de testing
Planificacin de pruebas
Definicin y gestin de objetivos de prueba
(requerimientos)
Monitoreo de avance de las pruebas
Seguimiento de calidad de productos y pruebas
Control de configuracin de las pruebas
Page 31
Costo de ejecutar
pruebas
Control de costos
Un objetivo fundamental es maximizar el rendimiento del
testing, i.e. maximizar el potencial para detectar defectos
y minimizar el nmero de pruebas realizadas
Adems de la deteccin de defectos, se agregan otros
objetivos:
Incluye
costo de setup previo
minimizar el tiempo y esfuerzo requerido para tareas como
configuracin de hardrware y software, establecimiento del
ambiente de prueba, identificacin de las pruebas a ejecutar
costo de ejecucin
minimizar el tiempo total de ejecucin, asistido (con intervencin
manual) y no asistido; determinar cunto testing de regresin se
ejecutar (riesgo v/s costo, costo de seleccin de un subset v/s
reduccin de costo de ejecucin)
costo posterior a la ejecucin
minimizar el tiempo y esfuerzo requerido para el anlisis y
documentacin de los resultados de las pruebas, desarme del
ambiente de prueba y restauracin del ambiente original
Costo de ejecutar
pruebas
Recomendaciones
Mediciones de testing
Page 32
Mediciones de testing
Mediciones de testing
Mediciones de testing
Herramientas de testing
complejidad
eficiencia de verificacin
cobertura de pruebas
estado de ejecucin de pruebas
informes de incidentes (defectos)
basadas en informes de incidentes
Herramientas de testing
Herramientas de testing
anlisis de complejidad
comprensin de cdigo
anlisis sintctico y semntico
captura/playback
anlisis de cobertura
pruebas de memoria
administracin de casos de prueba
simuladores y rendimiento
Para soporte
administracin de problemas
administracin de la configuracin
Page 33
Herramientas de testing
Herramientas de testing
Adquisicin
Fuentes
Bibliografa bsica
Claves
Otros relacionados
IEEE/ANSI Standard 1012-1986, Software Verification and Validation
Plans
IEEE/ANSI Standard 1028-1988, Software Reviews and Audits
IEEE/ANSI Standard 730-1989, Software Quality Assurance Plans
IEEE/ANSI Standard 610.12-1990, Glossary of Software Engineering
Terminology
Catlogos de
herramientas de testing
Otras fuentes
Conferencias
Journals y newsletters
Internet
newsgroup comp.software.testing
mltiples web sites
Page 34