Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PruebasSoftware PDF
PruebasSoftware PDF
Pruebas de Software
Pruebas de Software
26
.................................................................................................... 31
Objetivos .................................................................................................. 31
Beneficios ................................................................................................. 32
Formales vs Informales .............................................................................. 33
Condiciones para comenzar ......................................................................... 33
Checklists guas en revisiones...................................................................... 34
REFERENCIAS .................................................................................................. 34
Pruebas 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.
Testing: es la ejecucin de programas de software con el objetivo de detectar
defectos y fallas. Proceso destructivo, sdico.
Test Exitoso: aquel que detecta errores
Test No exitoso: aquel que no los detecta
Problema psicolgico, requiere un cambio de actitud ya que naturalmente somos
constructivos.
Error: una equivocacin de una persona al desarrollar alguna actividad de desarrollo
de software.
Defecto: se produce cuando una persona comete un error.
Falla: es un desvo respecto del comportamiento esperado del sistema, puede
producirse en cualquier etapa
Notas:
Defecto es una vista interna, lo ven los desarrolladores. Falla es una vista externa, la
ven los usuarios.
Pruebas de Software
Pruebas de Software
Pruebas de Software
50 $
Diseo
Codificacin
Pruebas
100 $
Mantenimiento
Satisfaccin
del cliente y
usuarios
Pruebas de Software
PRINCIPIOS [1]
1. Una parte necesaria de un test es la definicin de los resultados esperados
2. Un programador debe evitar probar su propio desarrollo
3. Una organizacin no debe probar sus propios desarrollos
4. Revise los resultados de los test en profundidad
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
7. No tirar los test a la basura a menos que el programa sea basura
8. No planear esfuerzos de pruebas asumiendo que no se encontrarn errores
9. La probabilidad de encontrar errores en una seccin de un programa es
proporcional al nmero de errores ya encontrados en esa seccin
10. El testing constituye una tarea creativa e intelectualmente desafiante
Pruebas de Software
NIVELES DE PRUEBAS
Test Unitarios
Test de Funcionalidad
Test de Sistema
Test de Aceptacin
Test de Instalacin
Niveles de pruebas
Test
Objetivo
Participantes
Ambiente
Mtodo
Unitario
Detectar errores
en los datos,
lgica, algoritmos
Programadores
Desarrollo
Caja Blanca
Integracin
Detectar errores
de interfaces y
relaciones entre
componentes
Programadores
Desarrollo
Caja Blanca,
Top Down,
Bottom Up
Funcional
Detectar errores
en la
implementacin de
requerimientos
Testers, Analistas
Desarrollo
Funcional
Sistema
Detectar fallas en
el cubrimiento de
los requerimientos
Testers, Analistas
Desarrollo
Funcional
Aceptacin
Detectar fallas en
la implementacin
del sistema
Testers,
Analistas, Cliente
Productivo
Funcional
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 Fiabilidad
Pruebas de Software
Test de Recuperacin
Test de Documentacin
Test de Mantenibilidad
La joroba de dolor
Inversin inicial
Sistemas legacy
Temor
Viejos hbitos
Qu debera automatizarse
Pruebas de Software
Manual
Test de
Presentacin
Test de
Aceptacin
Test Unitarios y de
Componentes
Qu no debera automatizarse
Pruebas de usabilidad
Pruebas exploratorias
Seleccionar herramientas
Institucionalizar
Pruebas de Software
10
Clientes/Usuarios
Clientes/Analistas
Tests de
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
Pruebas
Aceptacion
Cliente
Desarrollo de
requerimientos
Pruebas de
Sistema
Diseo de
Arquitectura
Pruebas
Funcionales
Pruebas de
Integracin
Diseo Detallado
Pruebas Unitarias
Desarrolladores
Testers
Codificacin
Modelo actualizado
class VV_Temprano
Pruebas
Aceptacion
Cliente
Desarrollo de
requerimientos
Pruebas de
Sistema
Diseo de
Arquitectura
Pruebas de Sistema
Diseo / Pre
Ejecucin
Pruebas de
Integracin
Pruebas de
Integracin Diseo
/ Ejecucin
Diseo Detallado
Pruebas Funcionales
Diseo / Pre
Ejecucin
Pruebas
Funcionales
Testers
Pruebas Unitarias
Pruebas Unitarias
Diseo / Ejecucin
Codificacin
Desarrolladores
Pruebas de Software
12
Clientes/Usuarios
Clientes/Analistas
Tests de
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
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
Entrada
Es imposible
probar con
todas las
entradas
posibles.
Creamos
clases de
equivalencia.
Condicin de entrada
Sistema bajo
Prueba
Salida
Clases de Equivalencia
Clase de equivalencia
vlida
Clase de equivalencia
invlida
Valores < 1
Rango de
valores (1, 99)
Pruebas de Software
Valores > 99
15
Caja Blanca
-00
+00
Pruebas con acceso al cdigo fuente (datos y lgica). Se trabaja con entradas, salidas
y el conocimiento interno.
Pruebas de Software
16
Valores lmite
Pruebas de Software
17
Test VL
Test VL N
VL
Test VL + N
Ejemplo:
Pruebas de Software
18
Condicin Entrada
Costo del
proyecto
Clase Equivalencia
Test
Id Test
1
costo = 150000.00
Valor cero (0)
costo = 0.00
3
Valor < 0
costo = - 1000.00
Decisiones / Condiciones
Condicin
Lgica
Costo >=
100000.00
Condicin a probar
true
Test
Prueba con entrada
costo = 150000.00
false
costo = 60000.00
2
Costo <
100000.00
true
costo = 60000.00
false
costo = 150000.00
3
Costo >=
50000.00
true
costo = 150000.00
false
costo = 10000.00
Valores Lmites
Lmite
Valor
100000.00
Condicin a probar
=
Test
Prueba con entrada
costo = 100000.00
>
costo = 100001.00
<
costo = 99999.00
2
50000.00
costo = 50000.00
>
costo = 50001.00
<
costo = 49999.00
Pruebas de Software
19
Pruebas de funcionalidad
o
Aspectos claves
Buena especificacin
Modelo de dominio
Pruebas de aplicacin
o
Aspectos claves
Test de Funcionalidad
Caso de Test
Defectos
1..*
Test Unitario
Procedimiento
de Test
1..*
Otros Test
Componente de
Test
1..*
1..*
Activos de pruebas
XXX_TestCase
Alternativas Casos
Uso
Evaluacion
Test
JUnit
JUnit
JUnit
Plan de Test
ABM_TestCase
UseCaseX_TestCase
Plan de Test
EMPRESA
Application_TestCase
Pruebas de Software
20
Roles
Analista
Tester
Programador
Caractersticas
Pruebas de Software
21
Fixture Clases
Pruebas de Software
22
Pruebas de Software
descripcion
Framework de pruebas
Control de Procesos
duracion monto
cantidadPagos ?
90
20000
1
180
60000
2
Framework de control
Sistema a Medida
360
360
150000
0
3
0
Sistema Grande
360
-10
Sistema Grande
360
100000
Sistema Grande
360
50000
23
Pruebas de Software
24
Historia de test
Pruebas de Software
25
Pruebas de Software
26
Pruebas de Software
27
Pruebas de Software
28
PLANIFICACIN
Planificacin General
Objetivos
Criterios de Completitud
Cronograma
Responsabilidades
Planificacin Tcnica
Herramientas
Infraestructura
Procedimientos
No garantiza buenos test (2), condiciona a veces a escribir test exitosos (no
detectan errores)
8.12 %
Diseo de Arquitectura
26.92 %
Diseo Detallado
22.44 %
Codificacin
26.05 %
Integracin
8.98 %
Pruebas
2.76 %
Pruebas de Software
29
4.73 %
Pruebas de Software
30
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
Moderador
Lector
Autor
Anlisis
Diseo
Cdigo
Gerente
Inspector
Anotador
Pruebas de Software
32
Formal
Objetivos
Informal
Detectar errores
Detectar errores
Verificar re trabajo
Discutir alternativas de
solucin
Focalizada en demostrar
cmo los productos cubren
los requerimientos
Decisiones
Decisiones concensuadas
Responsable
Moderador entrenado
Autor
Asistentes
Pares y responsables
tcnicos, sin registrar
Material
Mtricas
Requeridas
Opcionales
Procedimiento
Formalmente registrado
Informal
Entrenamiento
No requerido
Requerimientos
Diseo
Cdigo
Activos a
Inspeccionar
ERS
EDA, EDD
Fuentes
Material
requerido para el
grupo
Entrenamiento realizado
EERS
Documento de visin
acordado
Ckecklists
Entrenamiento realizado
ERS
EDA
Entrenamiento realizado
Fuentes
Estndares
definidos
EDD
Checklists
Checklists
Mdulos seleccionados
segn criterio definido
Cdigo compilado sin
errores
Validacin
Pruebas
Entrenamiento realizado
ERS
Procedimientos de
Pruebas de Software
33
Activos a
Inspeccionar
Material
requerido para el
grupo
validacin
Pruebas
Procedimientos
Entrenamiento realizado
Test Checklists
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