Академический Документы
Профессиональный Документы
Культура Документы
INTRODUCCIN
3
Conceptos fundamentales del testeo de
1 software
ARIANE 5
4
Conceptos fundamentales del testeo de
1 software
POR QU SON NECESARIAS LAS PRUEBAS?
B. Boehm, 1981
5
Conceptos fundamentales del testeo de
1 software
CONCEPTOS BSICOS
Test (prueba)
(1) noun: activity by which a test item is evaluated and the outcomes
reported.
(2) verb (testing): set of activities conducted to facilitate discovery
and/or evaluation of properties of one or more test items.
system, software item, or work product (e.g. Establece una planificacin formal de las
requirements document, design specification) pruebas en que se define la secuencia de las
that is an object of testing. pruebas planificadas, quin debe realizar las y
cundo.
6
Conceptos fundamentales del testeo de
1 software
Funciona el telfono?
Funciona la suma?
Tcnicas
7
Conceptos fundamentales del testeo de
1 software
CONCEPTOS
PROPIEDAD SIGNIFICADO
Identificador Cdigo nico de la prueba
Valores de entrada Descripcin de los datos de entrada de un objeto de prueba
Resultados esperados Datos de salida que se espera se produzcan
Precondiciones Situacin previa a la ejecucin de la prueba o caractersticas
de un objeto de prueba antes de ejecutar un caso de prueba
Postcondiciones Caractersticas un objeto de prueba tras la ejecucin de la
prueba
Dependencias Relacin u orden de dependencia entre casos de pruebas
Acciones Pasos a llevar a cabo para ejecutar la prueba
Requisito vinculado Relacin de requisitos que se pretenden validar con la
ejecucin de la prueba
8
ndice
CICLO DE VIDA SOFTWARE: marco de referencia que define el enfoque general del desarrollo
software, indicando los procesos y actividades a realizar desde la definicin del producto
software hasta su finalizacin de uso; as como los entregables que se van a generar y entregar
al cliente (ISO 12207).
10
Niveles de Testing: la calidad en cada
2 etapa del ciclo de vida
CICLO DE VIDA SOFTWARE: marco de referencia que define el enfoque general del desarrollo
software, indicando los procesos y actividades a realizar desde la definicin del producto
software hasta su finalizacin de uso; as como los entregables que se van a generar y entregar
al cliente (ISO 12207).
Modelo en cascada (clsico) Modelo iterativo (RUP, XP, etc.)
Desarrollo y pruebas son dos ramas iguales. Cada nivel de desarrollo tiene su correspondiente
nivel de pruebas.
Definicin de Pruebas de
requisitos aceptacin
Diseo Pruebas de
Las pruebas (rama derecha) son funcional sist. sistema
diseadas en paralelo al desarrollo
(rama izquierda).
Diseo tcnico Pruebas de
sistema integracin
Las actividades del proceso de
pruebas tiene lugar a travs del ciclo Especificacin Pruebas de
de vida software completo componentes componentes
Codificacin
12
Niveles de Testing: la calidad en cada
2 etapa del ciclo de vida
Programacin Codificacin
o Creacin de cdigo ejecutable
13
Niveles de Testing: la calidad en cada
2 etapa del ciclo de vida
Pruebas de aceptacin
o Pruebas formales de los requisitos del cliente
Pruebas de integracin
Pruebas de
o Interfaces de componentes sistema
Codificacin
14
Niveles de Testing: la calidad en cada
2 etapa del ciclo de vida
Pruebas
unitarias
Codificacin
15
Niveles de Testing: la calidad en cada
2 etapa del ciclo de vida
Codificacin
16
Niveles de Testing: la calidad en cada
2 etapa del ciclo de vida
Codificacin
17
Niveles de Testing: la calidad en cada
2 etapa del ciclo de vida
Son pruebas para aceptar formalmente el software. Son las pruebas de sistema del
cliente/usuario.
Codificacin
18
ndice
ESTTICAS
documentacin y cdigo fuente.
20
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
OBJETIVO: mejorar la calidad del producto y reducir propagacin de errores entre fases
(modelo-v)
Especificacin
componentes
Verificacin
Codificacin
Desarrollo e integracin
21
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
OBJETIVO: Buscar errores en la especificacin de objetos de prueba (e.g. Cdigo fuente, script,
etc.) sin ejecutar el objeto de prueba.
Aspectos a detectar:
22
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Revisiones
ESTTICAS
TCNICAS PRUEBAS ASEGURAMIENTO DE LA CALIDAD Anlisis del flujo de control
Anlisis del flujo de datos
Mtricas compilador/analizador
DINMICAS
23
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Revisiones
ESTTICAS
TCNICAS PRUEBAS ASEGURAMIENTO DE LA CALIDAD Anlisis del flujo de control
Anlisis del flujo de datos
Mtricas compilador/analizador
CAJA NEGRA
DINMICAS
24
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
25
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
De manera general, la ejecucin de casos de prueba debera ser ejecutados con una baja
redundancia, pero con carcter completo.
26
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Consiste en dividir los valores de entrada en clases de datos para derivar casos de prueba.
Se asume que el resultado de una prueba con un valor representativo de cada CE equivale a
realizar la misma prueba con cualquier otro valor de la CE.
28
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
29
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
La experiencia demuestra que casos de prueba sobre condiciones lmite infieren mejores
resultado.
2. Generar tantos casos de prueba como sean necesarios para ejercitar las condiciones
lmites.
30
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
31
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
32
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Beneficios
Pruebas apropiadas para pruebas de aceptacin y
de sistema.
til para disear pruebas con el cliente/usuario
Puede ser combinadas con otras tcnicas basadas
en la especificacin
Desventajas
No es posible obtener casos de prueba ms all de
la informacin de los casos de uso.
33
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Prueba 5.
34
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Revisiones
ESTTICAS
TCNICAS PRUEBAS ASEGURAMIENTO DE LA CALIDAD Anlisis del flujo de control
Anlisis del flujo de datos
Mtricas compilador/analizador
Clases de equivalencia.
CAJA NEGRA Anlisis de valores lmite.
Pruebas de casos de uso.
Tablas de decisin, de transicin de estado, .
DINMICAS
35
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
El tester conoce la estructura interna del cdigo, i.e., la jerarqua de componentes, flujo de
control y datos, etc.
36
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Los mtodos de caja blanca requieren el apoyo de herramientas, lo que asegura la calidad de
las pruebas e incrementa su eficiencia.
Dada la complejidad de las mediciones necesarias para las pruebas de caja blanca, la ejecucin
manual implica: consumo de tiempo y recursos, dificultad en la implementacin y propensin a
errores.
37
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Los mtodos de caja blanca requieren el apoyo de herramientas, lo que asegura la calidad de
las pruebas e incrementa su eficiencia.
Dada la complejidad de las mediciones necesarias para las pruebas de caja blanca, la ejecucin
manual implica: consumo de tiempo y recursos, dificultad en la implementacin y propensin a
errores.
Cobertura de sentencias.
Cobertura de decisin.
Cobertura de condicin (simple y mltiple).
Cobertura de caminos.
38
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Tcnica basada en el anlisis del grfico del flujo de control (sentencias = nodos; flujo de
control = aristas). El foco de atencin es la sentencia del cdigo !!
Objetivo: lograr la cobertura de un porcentaje especfico (C0) de todas las sentencias. Cada
sentencia se debe ejecutar, al menos, una vez.
o C0 = 100% * (n sentencias ejecutadas / n total sentencias)
39
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
40
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
41
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Ejemplo:
Cuntos caminos consigue una cobertura
de precisin del 100%?
42
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Tipos:
43
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Cada subcondicin atmica de una sentencia condicional tiene que tomar, al menos una vez,
los valores verdadero ("true") y falso ("false").
Ejemplo: considerar la condicin A>2 OR B<6. En los casos de prueba para la cobertura de condicin
simple podran ser (por ejemplo):
44
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Todas las combinaciones que pueden ser creadas utilizando permutaciones de las
subcondiciones atmicas deben formar parte de las pruebas.
Ejemplo: considerar la condicin A>2 OR B<6. En los casos de prueba para la cobertura de condicin
mltiple podran ser (por ejemplo):
Con slo 4 casos de prueba se puede lograr
A = 6 (true) B = 9 (false) A>2 OR B<6 (true) una cobertura de condicin mltiple.
A = 6 (true) B = 2 (true) A>2 OR B<6 (true) o Se han creado todas las combinaciones
verdadero/falso.
A = 1 (false) B = 2 (true) A>2 OR B<6 (true)
o Se han logrado todos los posibles
A = 1 (false) B = 9 (false) A>2 OR B<6 (false)
resultados de la condicin.
n casos de prueba exponencial: 2n, donde n
= n condiciones atmicas
45
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Consiste en ejecutar todos los posibles cambios a travs de un programa. Esto puede
conducir a un n muy alto de casos de prueba.
Para una cobertura de decisin, un solo camino a travs de un bucle es suficiente. Sin
embargo, en la cobertura por caminos hay ms casos de prueba:
46
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Ejemplo:
o Cuntos casos de prueba para una cobertura de camino del
100%? 5 casos de prueba
47
Tcnicas de Testing: mtodos para
3 generar un caso de prueba
Ejemplo:
o Cuntos casos de prueba para una cobertura de camino del
100%? 5 casos de prueba
ESTTICAS Revisiones
TCNICAS PRUEBAS ASEGURAMIENTO DE LA CALIDAD
Clases de equivalencia.
CAJA NEGRA
aceptacin
CAJA BLANCA
Cobertura de sentencias.
Cobertura de decisin.
Cobertura de condicin (simple y mltiple). Pruebas unitarias
Cobertura de caminos. y de integracin
49
ndice
51
Herramientas de testing: el soporte
4 para automatizar actividades de testing
52
Herramientas de testing: el soporte
4 para automatizar actividades de testing
Herramientas Comerciales
Herramientas de gestin de pruebas
HP Quality Center/ALM
QA Complete
qaBook
T-Plan Professional
SMARTS
QAS.Test Case Studio
PractiTest
SpiraTest
TestLog
ApTest Manager
Zephyr
Herramientas para pruebas funcionales Herramientas para pruebas
QuickTest Pro de carga y rendimiento
Rational Robot HP LoadRunner
Sahi LoadStorm
SoapTest NeoLoad
Test Complete WebLOAD Professional
QA Wizard Forecast
Squish ANTS Advanced .NET Testing System
vTest Webserver Stress Tool
Internet Macros Load Impact
Herramientas de calidad del
Producto Software
ChecKing QA
Kiuwan
Google CodePro Analytix
.Simian
53
Herramientas de testing: el soporte
4 para automatizar actividades de testing
Herramientas Comerciales
Herramientas Todo en Uno
Test Studio Una herramienta para pruebas
de rendimiento, carga, pruebas automticas,
gestin de pruebas y test exploratorio.
54
Herramientas de testing: el soporte
4 para automatizar actividades de testing
http://testlink.org
http://demo.testlink.org
55
Herramientas de testing: el soporte
4 para automatizar actividades de testing
http://www.seleniumhq.org/
56
Herramientas de testing: el soporte
4 para automatizar actividades de testing
http://www.seleniumhq.org/
57
Herramientas de testing: el soporte
4 para automatizar actividades de testing
http://jmeter.apache.org
58
Herramientas de testing: el soporte
4 para automatizar actividades de testing
http://jmeter.apache.org
http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/388
59
Herramientas de testing: el soporte
4 para automatizar actividades de testing
http://nemo.sonarqube.org/
60
Herramientas de testing: el soporte
4 para automatizar actividades de testing
61
Herramientas de testing: el soporte
4 para automatizar actividades de testing
https://sonarqubehispano.org
62
ndice
La calidad del producto, junto con la calidad del proceso, es uno de los
aspectos ms importantes actualmente en el desarrollo de Software.
Relacionada con la calidad del producto,
64
Mtricas de testing: midiendo la calidad
5 del software
Introduccin a la medicin
Aportaciones de la medicin a la resolucin de problemas
65
Mtricas de testing: midiendo la calidad
5 del software
Necesidad de medir
No se puede controlar lo que no se puede medir. (DeMarco)
No se puede predecir lo que no se puede medir. (Fenton y
Pfleeger)
Ingeniera del software: aplicacin de una aproximacin
sistemtica, disciplinada y cuantificable al desarrollo del
software. (Glosario IEEE)
La medicin posibilita la mejora de la calidad.
Objetivos de la medicin
Entender lo que ocurre.
Controlar lo que ocurre en los proyectos.
Mejorar los productos y los procesos.
Toma
Mtrica Informacin de
proporciona facilita
objetiva decisiones
66
Mtricas de testing: midiendo la calidad
5 del software
67
Mtricas de testing: midiendo la calidad
5 del software
Tipos de escala
Nominal: lista de las diferentes posiciones que puede adoptar la variable, pero sin que ello signifique
ningn tipo de orden o de relacin. (Cereal cultivado: trigo, maz, centeno, etc. )
Ratio (cociente o razn): se conservan las propiedades de todos los anteriores pero adems se
aade la existencia de un cero real, con lo que se hacen posible ciertas operaciones matemticas,
como la obtencin de proporciones o cocientes. (Longitud: 20 metros es el doble de 10 metros. Existe
el valor real de cero de longitud).
68
Mtricas de testing: midiendo la calidad
5 del software
Entidad: objeto que va a ser caracterizado mediante una medicin de sus atributos. (Ej: persona). (ISO/IEC
15939)
Atributo: caracterstica medible de una entidad. (Ej: altura).
Medicin: proceso objetivo y emprico por el que se asignan nmeros o smbolos a atributos de entidades del
mundo real con objeto de describirlas (Fenton y Kitchenham, 1991).
Mtrica: evaluacin del grado en el cual un producto o proceso posee un atributo determinado (extensin,
cantidad, dimensiones, capacidad o tamao) (IEEE, 1993).
Escala: conjunto de valores que permite establecer valores entre medidas. Con frecuencia dicho conjunto es
continuo, est ordenado y viene delimitado por un punto inicial y otro final.
Mtrica directa e indirecta:
Una mtrica es directa si se puede medir directamente del atributo y su valor no depende de la medida
de otros atributos (longitud, longitud del cdigo fuente, duracin del proceso de prueba, nmero de
defectos...).
Una mtrica es indirecta si comprende la medicin de varios atributos, es decir, si deriva de otros
atributos (volumen, productividad, estabilidad de requisitos, densidad de defectos en un mdulo, etc.)
(Wohlin et al. 2000).
Mtrica objetiva y subjetiva: una mtrica es objetiva si su valor no depende del observador y es subjetiva
en caso contrario.
Indicador: mtrica o combinacin de mtricas que proporcionan comprensin acerca del proceso, proyecto o
producto. (Pressman) (Nmero de alumnos que aprueban en primera convocatoria)
69
Mtricas de testing: midiendo la calidad
5 del software
Proceso de medicin
70
Mtricas de testing: midiendo la calidad
5 del software
71
Mtricas de testing: midiendo la calidad
5 del software
Entidades:
Productos: componentes, entregas o documentos
resultantes de una actividad de proceso. (Ej. cdigo)
Procesos: atributos de actividades relacionadas con
el software. (Ej. etapa de anlisis)
Recursos: entidades requeridas por una actividad
del proceso. (Ej. recursos humanos)
72
Mtricas de testing: midiendo la calidad
5 del software
influyen en
73
Mtricas de testing: midiendo la calidad
5 del software
Alcance de las mtricas
Entidades y atributos
Producto Atributos internos Atributos externos
Las propiedades estructurales del software son atributos internos relacionados con la calidad del
producto. Los tipos de medidas estructurales son:
Flujo de control: secuencia en que se ejecutan las instrucciones.
Flujo de datos: seguimiento de cmo los datos se crean y se manejan por un programa.
Estructura de los datos: organizacin de los datos independiente del programa.
Los principales productos que resulta til medir son la especificacin, el diseo y el cdigo.
75
Mtricas de testing: midiendo la calidad
5 del software
76
Mtricas de testing: midiendo la calidad
5 del software
77
Mtricas de testing: midiendo la calidad
5 del software
Evaluacin de productos
Cada da son ms las organizaciones que muestran inters en asegurar o controlar la
calidad del producto software, y aunque cada una de ellas tiene caractersticas que
las diferencian del resto, de manera global se pueden clasificar en alguna de las
siguientes categoras:
Organismos de las Administraciones Pblicas, que tanto a nivel estatal como
autonmico o local,
cada da externalizan ms el desarrollo de software a otras empresas o factoras
de software, y que
necesitan disponer de un control de calidad que les permita verificar que el
software que reciben cumple los requisitos mnimos de calidad exigidos
y adems poder de esta manera gestionar de forma adecuada los acuerdos de
nivel de servicio pactados con los proveedores.
Empresas de software que externalizan, ya sea bajo el mtodo del nearshoring o bajo
el mtodo del offshoring, parte de sus procesos de desarrollo de software, y que deben
controlar tambin de forma continua la calidad del software que reciben.
Factoras y empresas desarrolladoras de software que estn interesadas en disponer
de un mecanismo que les permita asegurar la calidad del software que fabrican.
Factoras y empresas desarrolladoras de software que estn interesadas en asegurar
a sus clientes, mediante una verificacin y validacin independientes, la calidad de los
productos que les estn entregando.
78
Mtricas de testing: midiendo la calidad
5 del software
79
Mtricas de testing: midiendo la calidad
5 del software
80
Mtricas de testing: midiendo la calidad
5 del software
81
Mtricas de testing: midiendo la calidad
5 del software
82
Mtricas de testing: midiendo la calidad
5 del software
83
Mtricas de testing: midiendo la calidad
5 del software
84
Mtricas de testing: midiendo la calidad
5 del software
85
Mtricas de testing: midiendo la calidad
5 del software
86
Mtricas de testing: midiendo la calidad
5 del software
Especificar la evaluacin
Determinar las mtricas, tcnicas y herramientas que se utilizarn para llevar a cabo la
evaluacin.
Disear la evaluacin
Definir el plan con las actividades de evaluacin que se deben llevar a cabo
Ejecutar la evaluacin
Obtener las mediciones y aplicar los criterios de evaluacin determinados en las
actividades anteriores
Concluir la evaluacin
Analizar los resultados y elaborar un informe descriptivo para que la organizacin
evaluada conozca la calidad de su producto software
87
Mtricas de testing: midiendo la calidad
5 del software
Actividad 1: Establecer los requisitos de la evaluacin
El primer paso del proceso de evaluacin consiste en establecer
los requisitos de la evaluacin.
Tarea 1.1: Establecer el propsito de la evaluacin
Tarea 1.2: Obtener los requisitos de calidad del producto
Tarea 1.3: Identificar las partes del producto que se deben evaluar
Tarea 1.4: Definir el rigor de la evaluacin
Proveer a los profesionales de una gua sobre pruebas cubriendo todos los
aspectos del ciclo de vida (Conceptos, Vocabulario, Proceso, Documentacin y
Tcnicas).
Objetivos
Unificar estndares anteriores en uno solo
Cubrir el ciclo de vida completo
Aplicable a todo tipo de sistemas software
Consistente con otros estndares ISO
90
Procesos de testing: cmo integrar el
6 testeo en la metodologa
91
Procesos de testing: cmo integrar el
6 testeo en la metodologa
92
Procesos de testing: cmo integrar el
6 testeo en la metodologa
93
Procesos de testing: cmo integrar el
6 testeo en la metodologa
94
Procesos de testing: cmo integrar el
6 testeo en la metodologa
95
Procesos de testing: cmo integrar el
6 testeo en la metodologa
96
Procesos de testing: cmo integrar el
6 testeo en la metodologa
97
Procesos de testing: cmo integrar el
6 testeo en la metodologa
1. Binder, R., Testing Object-Oriented Systems, American Programmer, 7(4), 22-29, 1994.
2. Clemons RK, Project Estimation with Use Case Points Disponible en
http://www.stsc.hill.af.mil/CrossTalk/2006/02/0602Clemmons.pdf
3. Chidamber, S.R. y Kemerer, C.F., A metrics suite for object-oriented design ,IEEE Trans. Software Engineering, 20(6),
476-493, 1994.
4. Churcher, N.I. and Shepperd, M.J., Towards Conceptual Framework for Object-Oriented Metrics, ACM Software
Engineering Notes, 20 (2), 67-76, 1995.
5. Dolado, J.J. y Fernndez, L. (coordinadores). Medicin para la Gestin en la Ingeniera del Software. Ra-ma, 2000.
6. Fenton, N.E. y Pfleeger, S.L., Software metrics. A rigorous & practical approach , 1997.
7. Fenton, N.E. Y Kitchenham B., Validating Software Meaures, Journal of Software Testing, Verification and Reliability
1(2): 27-42, 1991
8. Genero M., Piattini M., Calero C. (coordinadores), Metrics for Software Conceptual Models, Imperial College Press, 2005.
9. IEEE Software Engineering Standards,. Standard 610.12-1990, 1993.
10.Lorenz, M. and Kidd, J., Object_oriented Software Metrics, Prentice Hall 1994.
11.McConnell, S., Desarrollo y gestin de proyectos informticos, Mc Graw Hill 1997.
12.Putnam, Lawrence H and Myers W., Five Core Metrics, DH Publishing, 2003
13.Pressman, R.S., Ingeniera del Software. Un enfoque prctico, Mc Graw Hill, 2010.
14.Snchez, S., Sicilia, M.A., Rodrguez, D. Ingeniera del Software. Un enfoque desde la gua SWEBOK. IBERGACETA
PUBLICACIONES, 2011.
15.Wohlin C. Et al. Experimentation in Software Engineering: An Introduction. Kluwer Academic Publisher, 2000
16.http://www.javiergarzas.com/calidad-software
17.http://www.javiergarzas.com/2012/03/herramientas-de-calidad-software.html
18.http://www.javiergarzas.com/herramientas-software-recomendadas
19.http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/388
20.http://testlink.org/
21.http://demo.testlink.org
22.http://iso25000.com/
23.JTC1/SC7: http://www.jtc1-sc7.org
24.Informacin ISO/IEC 29119: http://www.softwaretestingstandard.org
25.Red REPRIS http:// in2test.lsi.uniovi.es/repris/
26.http://www.softwaretestingstandard.org/
GRACIAS
Dr. Julin Alberto Garca Garca
Julian.garcia@iwt2.org
Dr. Francisco Jos Domnguez Mayo
fjdominguez@us.es