Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PruebasSoftware PDF
PruebasSoftware PDF
Pruebas de Software
Pruebas de Software 1
capacitacin y gua para el desarrollo de software
Pruebas de Software 2
capacitacin y gua para el desarrollo de software
Pruebas de Software
INTRODUCCIN
Definiciones [1]
Testing: es el proceso orientado a demostrar que un programa no tiene errores. 1 -
Imposible. 2 - Tentacin a disear tests que no detecten errores.
Testing: es la tarea de demostrar que un programa realiza las funciones para las
cuales fue construido.
Testing: es la tarea de probar que un programa realiza lo que se supone debe hacer.
An haciendo lo esperado, puede contener errores.
Notas:
Defecto es una vista interna, lo ven los desarrolladores. Falla es una vista externa, la
ven los usuarios.
Pruebas de Software 3
capacitacin y gua para el desarrollo de software
Filosofa y Economa
Justificacin
1. La realizacin de tareas de pruebas conlleva un costo asociado que puede
inducir a tomar decisiones de no realizarlas.
2. No realizarlas tambin conlleva un costo asociado.
El problema es determinar cul de estos costos es mayor.
Pruebas de Software 4
capacitacin y gua para el desarrollo de software
Pruebas de Software 5
capacitacin y gua para el desarrollo de software
1$
5$
20 $
Requerimientos
50 $
Diseo
Codificacin
Mantenimiento
Satisfaccin
del cliente y
usuarios
Pruebas de Software 6
capacitacin y gua para el desarrollo de software
PRINCIPIOS [1]
5. Los test deben incluir entradas invlidas e inesperadas as como las vlidas y
esperadas
6. Revisar un programa para verificar que hace lo que se espera que haga es slo
la mitad de la prueba; la otra mitad consiste comprobar que no haga lo que no
se espera
Pruebas de Software 7
capacitacin y gua para el desarrollo de software
NIVELES DE PRUEBAS
Test Unitarios
Test de Componentes / Test de Integracin
Test de Funcionalidad
Test de Sistema
Test de Aceptacin
Test de Instalacin
Niveles de pruebas
Test Objetivo Participantes Ambiente Mtodo
Unitario Detectar errores Programadores Desarrollo Caja Blanca
en los datos,
lgica, algoritmos
Integracin Detectar errores Programadores Desarrollo Caja Blanca,
de interfaces y Top Down,
relaciones entre Bottom Up
componentes
Funcional Detectar errores Testers, Analistas Desarrollo Funcional
en la
implementacin de
requerimientos
Sistema Detectar fallas en Testers, Analistas Desarrollo Funcional
el cubrimiento de
los requerimientos
TIPOS DE PRUEBAS
Test de Facilidad
Test de Volumen
Test de Stress
Test de Usabilidad
Test de Seguridad
Test de Performance
Test de Configuracin
Test de Insta labilidad
Test de Fiabilidad
Pruebas de Software 8
capacitacin y gua para el desarrollo de software
Test de Recuperacin
Test de Documentacin
Test de Mantenibilidad
Automatizacin
Prueba como criterio de diseo
Qu debera automatizarse
Pruebas unitarias y de componentes
Pruebas de funcionalidad sin interfaces de usuario
Pruebas de sistema con interfaces de usuario
Pruebas de Software 9
capacitacin y gua para el desarrollo de software
Manual
Test de
Presentacin
Test de
Aceptacin
Test Unitarios y de
Componentes
Qu no debera automatizarse
Pruebas de usabilidad
Pruebas exploratorias
Pruebas que no fallarn
Tareas nicas de fcil ejecucin manual y defcil automatizacin
Pruebas de Software 10
capacitacin y gua para el desarrollo de software
Clientes/Usuarios
Tests de
Clientes/Analistas
Aceptacin
Casos de Uso
Analistas/Testers Programadores
UnitTest::TestPagos() {
Pago pago = new Pago();
...
}
Tests de
Funcionalidad
Ambiente de
Pruebas
Analistas/Testers
QA
Pruebas de Software 11
capacitacin y gua para el desarrollo de software
Modelo tradicional
class VV_Tardio
Pruebas
Aceptacion
Cliente
Diseo de Pruebas de
Arquitectura Integracin
Desarrolladores Testers
Codificacin
Modelo actualizado
class VV_Temprano
Pruebas
Aceptacion
Cliente
Diseo de Pruebas de
Arquitectura Integracin
Pruebas Funcionales
Pruebas Unitarias
Diseo / Pre
Diseo / Ejecucin
Ejecucin
Codificacin
Desarrolladores
Pruebas de Software 12
capacitacin y gua para el desarrollo de software
Clientes/Usuarios
Tests de
Clientes/Analistas
Aceptacin
Casos de Uso
Analistas/Testers Programadores
UnitTest::TestPagos() {
Pago pago = new Pago();
...
}
Tests de
Funcionalidad
Servidor de IC
Tests Automatizados
QA
Pruebas de Software 13
capacitacin y gua para el desarrollo de software
MTODOS DE PRUEBA
Test incrementales
Testeo continuo, distribuye las pruebas de integracin en la integracin diaria del
cdigo compartido.
Top Down
Se requieren Stubs para suplantar los mdulos inferiores an no
implementados
Los Stubs se quitan a medida que se desarrollan los diferentes mdulos
Un test por mdulo que se suma
Realizar test de regresin sobre los mdulos
Desventajas
Se retraza la prueba del procesamiento real realizado generalmente en
mdulos de ms bajo nivel
Desarrollar Stubs que emulen a los mdulos es mucho trabajo
Bottom Up
Las pruebas comienzan en el ms bajo nivel con la integracin de
algoritmos que realizan procesamiento
Se escriben test que dan el contexto de ejecucin a los mdulos
Se prueban los mdulos
Se desarrolla e integran funcionalidades del mdulo superior y se repite
Desventajas
Hasta que se logra un nivel determinado, la aplicacin no es visible
Problemas asociados a volumen, recursos y tiempo se prueban en etapas
tardas
Pruebas de Software 14
capacitacin y gua para el desarrollo de software
Caja Negra
Pruebas funcionales sin acceso al cdigo fuente de las aplicaciones, se trabaja con
entradas y salidas
Sistema bajo
Entrada Salida
Prueba
Es imposible
probar con
todas las -00 6 -10 -9 -8 -6. 0 8 9 10 6 +00
entradas
posibles.
Creamos
clases de
equivalencia.
Clases de Equivalencia
Pruebas de Software 15
capacitacin y gua para el desarrollo de software
Caja Blanca
Pruebas con acceso al cdigo fuente (datos y lgica). Se trabaja con entradas, salidas
y el conocimiento interno.
+00
6
-00
Pruebas de Software 16
capacitacin y gua para el desarrollo de software
Valores lmite
Pruebas de Software 17
capacitacin y gua para el desarrollo de software
Test VL
Test VL N
Test VL + N
VL
Pruebas de Software 18
capacitacin y gua para el desarrollo de software
Clases de Equivalencia
Clases Condicin Entrada Clase Equivalencia Test Id Test
1 Costo del Valor positivo > 0.00 Prueba con entrada 1
proyecto costo = 150000.00
2 Valor cero (0) Prueba con entrada 2
costo = 0.00
3 Valor < 0 Prueba con entrada 3
costo = - 1000.00
Decisiones / Condiciones
Condicin Lgica Condicin a probar Test
1 Costo >= true Prueba con entrada 1
100000.00 costo = 150000.00
false Prueba con entrada 4
costo = 60000.00
2 Costo < true Prueba con entrada 4
100000.00 costo = 60000.00
false Prueba con entrada 1
costo = 150000.00
3 Costo >= true Prueba con entrada 1
50000.00 costo = 150000.00
false Prueba con entrada 5
costo = 10000.00
Valores Lmites
Lmite Valor Condicin a probar Test
1 100000.00 = Prueba con entrada 6
costo = 100000.00
> Prueba con entrada 1
costo = 100001.00
< Prueba con entrada 4
costo = 99999.00
2 50000.00 = Prueba con entrada 7
costo = 50000.00
> Prueba con entrada 1
costo = 50001.00
< Prueba con entrada 5
costo = 49999.00
Pruebas de Software 19
capacitacin y gua para el desarrollo de software
Procedimiento
Caso de Test de Test Componente de
Defectos
Test
1..* 1..* 1..* 1..*
Activos de pruebas
XXX_TestCase
Alternativas Casos JUnit
Uso JUnit
JUnit
Evaluacion
Test
Plan de Test
UseCaseX_TestCase
ABM_TestCase
Plan de Test
EMPRESA
Application_TestCase
Pruebas de Software 20
capacitacin y gua para el desarrollo de software
Herramienta
FIT Fitnesse (Framework for Integrated Tests)
Roles
Analista
Tester
Programador
Caractersticas
Administracin de tablas (orientada a NO programadores)
Perspectiva del negocio (validacin de requerimientos, reglas de negocio y flujo
de trabajo)
Pruebas de Software 21
capacitacin y gua para el desarrollo de software
Fixture Clases
Pruebas de Software 22
capacitacin y gua para el desarrollo de software
Pruebas de Software 23
capacitacin y gua para el desarrollo de software
Pruebas de Software 24
capacitacin y gua para el desarrollo de software
Historia de test
Pruebas de Software 25
capacitacin y gua para el desarrollo de software
Pruebas de Software 26
capacitacin y gua para el desarrollo de software
Pruebas de Software 27
capacitacin y gua para el desarrollo de software
Pruebas de Software 28
capacitacin y gua para el desarrollo de software
PLANIFICACIN
Planificacin General
o Objetivos
o Criterios de Completitud
o Cronograma
o Responsabilidades
Planificacin Tcnica
o Estndares de Casos de Pruebas
o Herramientas
o Infraestructura
o Procedimientos
Ejemplo:
Despus de las revisiones: 5 errores cada 100 lneas (mtricas)
Objetivos: 98% de codificacin, 95% de diseo
Programa: 10.000 lneas
Errores estimados: 10.000 / 100 * 5 = 500 errores.
Pruebas de Software 29
capacitacin y gua para el desarrollo de software
Inespecificados 4.73 %
Pruebas de Software 30
capacitacin y gua para el desarrollo de software
REVISIONES
Revisin rigurosa y en profundidad de un artefacto de software realizado con el fin de
detectar errores.
Objetivos
1. Detectar problemas de anlisis, diseo y cdigo en forma temprana
2. Definir y acordar criterios de retrabado para su resolucin
3. Verificar que se resolvi de acuerdo al criterio acordado
Pruebas de Software 31
capacitacin y gua para el desarrollo de software
Beneficios
1. Genera datos acerca del producto y el proceso de desarrollo
2. Genera conocimiento entre miembros del grupo de desarrollo
3. Aumenta la efectividad de la validacin y verificacin
4. Contribuye a la instalacin del concepto de calidad
Moderador
Lector
Autor
Anlisis
Diseo
Cdigo
Gerente
Inspector
Anotador
Pruebas de Software 32
capacitacin y gua para el desarrollo de software
Formales vs Informales
Atributo Formal Informal
Objetivos Detectar errores Detectar errores
Pruebas de Software 33
capacitacin y gua para el desarrollo de software
REFERENCIAS
1. The Art of Software Testing, Second Edition, Glenford J. Myers, John Wiley &
Sons, Inc., 2004.
2. Software Verification and Validation for Practitioners and Managers, Second
Edition, Steven R. Rakitin, Artech House, 2001.
3. Code Complete, Second Edition, Steve McConnell, Redmond, Wa.: Microsoft
Press, 2004.
4. Fit for Developing Software: Framework for Integrated Tests, Rick Mugridge,
Ward Cunningham, Prentice Hall PTR, 2005.
5. FitFitnesse, Pruebas de funcionalidad y aceptacin. Basado en una Wiki para
Java, http://fitnesse.org/
6. JMeter Apache Jakarta Project Pruebas de sistema,
http://jakarta.apache.org/jmeter/
Pruebas de Software 34