SlideShare ist ein Scribd-Unternehmen logo
1 von 49
INDUCCION A QA TESTER
CONTENIDO
 Fundamentos de pruebas
 Pruebas a traves del ciclo de vida de software
 Técnicas de diseño de casos de pruebas
FUNDAMENTOS DE PRUEBAS
¿Porqué son necesarias las pruebas?
• Mejora de la calidad de un producto software:
El proceso de pruebas ayuda a suministrar/aportar al software los atributos deseados, por ejemplo retirar
defectos que conducen a fallos
• Reducción del riesgo de detectar errores:
Actividades de pruebas software adecuadas reducirán el riesgo de encontrar errores durante la fase de
operaciones software
• Satisfacer compromisos:
La ejecución de pruebas puede ser un requisito obligatorio por parte del cliente, debido a normas legales
así como al cumplimiento de estándares propios de una industria
• El coste de los defectos
La detección de errores en etapas tempranas permite la corrección de los mismos a costes reducidos
FUNDAMENTOS DE PRUEBAS
Causa de fallos del software
• Error humano:
Un defecto ha sido introducido en el código software, en los
datos o en los parámetros de configuración
Causas de error humano
Plazos, demandas excesivas debidas a la complejidad, distracciones
• Condiciones ambientales:
Cambios en las condiciones ambientales
Causas de condiciones ambientales negativas/adversas
Radiación, magnetismo, campos electromagnéticos, polución,
manchas solares, fallo de discos duros, fluctuaciones en el suministro
de energía eléctrica
FUNDAMENTOS DE PRUEBAS
De acuerdo a la norma ISO/IEC 9126 la calidad software consiste en:
• Atributos funcionales de calidad
- Funcionalidad incluye
 Adecuación
 Exactitud
 Interoperabilidad
 Seguridad
 Cumplimiento de funcionalidad
• Atributos no-funcionales de calidad
- Fiabilidad
- Usabilidad
- Eficiencia
- Mantenibilidad
- Portabilidad
FUNDAMENTOS DE PRUEBAS
Caso de prueba (“test case”), base de prueba (“test basis”)
• Caso de prueba (“test case”) según IEEE Std 829:
La definición de un caso de prueba incluye, al menos, la siguiente información (según IEEE Std 610)
 Precondiciones
 Conjunto de valores de entrada
 Conjunto de resultados esperados
 Poscondiciones esperadas
 Identificador único
 Dependencia de otros casos de prueba
 Referencia al requisito que será
 Forma en la cual se debe ejecutar el caso de prueba y verificar los resultados (opcional)
 Prioridad (opcional)
FUNDAMENTOS DE PRUEBAS
Caso de prueba (“test case”) según IEEE Std 829:
 Precondiciones (“preconditions”): situación previa a la ejecución de pruebas o características de un
objeto de pruebas antes de llevar a la práctica (ejecución) un caso de prueba
 Valores de entrada (“input values”): descripción de los datos de entrada de un objeto de pruebas
 Resultados esperados (“expected results”): datos de salida que se espera que produzca un objeto de
pruebas
 Poscondiciones (“post conditions”): características de un objeto de prueba tras la ejecución de
pruebas, descripción de su situación tras la ejecución de las pruebas
 Dependencias (“dependencies”): orden de ejecución de casos de prueba, razón de las dependencias
 Identificador distinguible (“distinct identification”): Identificador o código con el objeto de vincular, por
ejemplo, un informe de errores al caso de prueba en el cual ha sido detectado
 Requisitos (“requirements”): características del objeto de pruebas que el caso de prueba debe evaluar
FUNDAMENTOS DE PRUEBAS
Caso de prueba (“test case”), base de prueba (“test basis”)
• Base de prueba (“test basis” o “test base”):
Conjunto de documentos que definen los requisitos de un
componente o sistema. Utilizado como fundamento para el
desarrollo de casos de prueba.
FUNDAMENTOS DE PRUEBAS
Objetivos de las pruebas
• Detección de defectos
• Generación (logro) de confianza respecto del nivel de Calidad
• Aportación de información para la toma de decisiones
• Prevención de defectos
FUNDAMENTOS DE PRUEBAS
Pruebas y depuración (“debugging”)
FUNDAMENTOS DE PRUEBAS
Pruebas y depuración (“debugging”)
Probar y repetir la prueba (repetición de pruebas - “re-testing”)
son actividades propias del proceso de pruebas.
Las pruebas muestran los fallos
La repetición de pruebas (“re-testing”) verifica que el defecto
ha sido corregido
La depuración y la corrección de defectos son actividades propias del desarrollador
A través de la depuración los desarrolladores pueden reproducir
los fallos, analizar el estado del programa y detectar el defecto
correspondiente con el objeto de corregirlo
FUNDAMENTOS DE PRUEBAS
Proceso de pruebas básico
El proceso de pruebas está determinado por las siguientes fases:
• Planificación de pruebas y Control
• Análisis de pruebas y diseño de pruebas
• Implementación de pruebas y ejecución de pruebas
• Evaluación del criterio de finalización de pruebas y generación de informes de
pruebas
• Actividades de cierre de pruebas
FUNDAMENTOS DE PRUEBAS
Roles y responsabilidades
• Rol: Desarrollador
 Implementa requisitos
 Desarrolla estructuras
 Diseña y programa el software
 Su éxito consiste en la creación de un producto
• Rol: Probador (“Tester”)
 Planifica las actividades de
 pruebas.
 Diseña casos de prueba
 Su única preocupación es encontrar defectos
 Encontrar errores producidos por un desarrollador es su éxito
FUNDAMENTOS DE PRUEBAS
Características personales de un buen probador (“tester”)
• Aptitudes para la comunicación
 Necesarias para llevar malas noticias a los desarrolladores
 Necesarias para vencer estados de frustración
 Tanto cuestiones técnicas como prácticas, relativas al uso del
 sistema, deben ser entendidas y comunicadas
 Una comunicación positiva puede ayudar a evitar o facilitar
 situaciones difíciles
 Para establecer una relación de trabajo con los desarrolladores a corto plazo
• Experiencia
 Factores personales influyen en la ocurrencia de errores
 La experiencia ayuda a identificar dónde se pueden acumular errores
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Modelos de desarrollo software
• Pruebas a través del modelo-V general (Modelo de desarrollo secuencial):
El modelo-V general es el modelo de desarrollo software más
utilizado
Desarrollo y pruebas son dos ramas iguales
Cada nivel de desarrollo tiene su correspondiente nivel de pruebas
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Modelos de desarrollo software
• Pruebas a través del modelo-V general (Modelo de desarrollo secuencial):
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Modelos de desarrollo software
• Pruebas a través del modelo-V general (Modelo de desarrollo secuencial):
o Rama de desarrollo software
 Definición de requisitos
 Documentos de especificación
 Diseño funcional del sistema
 Diseño del flujo funcional del programa
 Diseño técnico del sistema
 Definición de arquitectura / interfaces
 Especificación de los componentes
 Estructura de los componentes
 Programación
 Creación de código ejecutable
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Modelos de desarrollo software
• Pruebas a través del modelo-V general (Modelo de desarrollo secuencial):
o Rama de pruebas software
 Pruebas de aceptación
 Pruebas formales de los requisitos del cliente
 Pruebas de sistema
 Sistema integrado, especificaciones
 Pruebas de integración
 Interfaces de componentes
 Pruebas de componente
 Funcionalidad del componente
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Modelos de desarrollo software
• Pruebas a través del modelo-V general (Modelo de desarrollo secuencial):
Verificación dentro del modelo-V general
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Modelos de desarrollo software
• Pruebas a través del modelo-V general (Modelo de desarrollo secuencial):
Validación dentro del modelo-V general
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Modelos de desarrollo software
• Pruebas en el modelo-W
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Modelos de desarrollo software
• Modelos iterativos: tipos de modelos iterativos:
 Modelo prototipado: desarrollo rápido de una representación del sistema que pudiera ser objeto de
uso, seguida de modificaciones sucesivas hasta que el sistema sea finalizado
 Desarrollo rápido de aplicaciones (“Rapid Application Development” - (RAD)): La interfaz de usuario se
implementa utilizando una funcionalidad previamente construida (“out-of-thebox ”) simulando la
funcionalidad que posteriormente será desarrollada
 Proceso unificado (“Rational Unified Process” - (RUP)): modelo orientado a objeto y producto de la
compañía Rational/IBM. Principalmente aporta el lenguaje de modelado UML y soporte al Proceso
Unificado
 Programación extrema (“Extreme Programming” - (XP)): el desarrollo y las pruebas tienen lugar sin una
especificación de requisitos formalizada
 SCRUM – descripción del proceso: Scrum es una metodología de trabajo iterativa e incremental para la
gestión de proyectos, desplegado principalmente en el desarrollo ágil de software
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Modelos de desarrollo software
• Modelos iterativos: Características:
 Cada iteración contribuye con una característica adicional del sistema a desarrollar
 Cada iteración puede ser probada por separado
 Las pruebas de regresión y la automatización de pruebas son elementos/factores de gran
relevancia
 En cada iteración, la verificación (relación con el nivel precedente) y la validación (grado de
corrección del producto dentro del nivel actual) se pueden efectuar por separado
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Niveles de prueba
Pruebas de componente:
Alcance
• Sólo se prueban componentes individuales
- Un componente puede estar constituido por un conjunto de
unidades más pequeñas
- Los objetos de prueba no siempre pueden ser probados en solitario
(de forma autónoma)
• Cada componente es probado de forma independiente
- Descubriendo fallos producidos por defectos internos
- Los efectos cruzados entre componentes quedan fuera del alcance
de estas pruebas
• Los casos de prueba podrán ser obtenidos a partir de:
- Especificaciones de componente
- Diseño software
- Modelo de datos
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Niveles de prueba
Pruebas de integración:
Alcance
• Las pruebas de integración asumen que los componentes ya han sido probados
• Las pruebas de integración comprueban la interacción mutua entre componentes (subsistemas) software entre sí:
- Interfaces con otros componentes
- Interfaces GUIs / MMIs
• Las pruebas de integración comprueban las interfaces con el entorno del sistema
- En la mayoría de los casos la interacción probada es el comportamiento del componente y el entorno simulado
- En condiciones reales factores adicionales del entorno pueden influir en el comportamiento del componente
• Los casos de prueba podrán ser obtenidos a partir de:
- Especificación de interfaces
- Diseño de la arquitectura (diseño)
- Modelo de datos
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Niveles de prueba
Pruebas de integración:
Alcance
• Será probado un (subsistema) sistema compuesto de componentes individuales
- Cada componente tiene una interfaz externa y/o interna que interactúa con otro componente del
(subsistema) sistema
• Son necesarios controladores de prueba (“drivers”) (los cuales
- aportan el entorno al proceso del sistema o subsistema)
- - Con el objeto de permitir o producir entradas y salidas del
- (subsistema) sistema
- Con el objeto de registrar datos
• Los controladores de pruebas (“drivers”) del componente podrán ser reutilizadas en estas
pruebas
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Niveles de prueba
Pruebas de sistema:
Alcance
• Prueba de un sistema integrado desde el punto de vista del Usuario
- Implementación completa y correcta de los requisitos
- Despliegue en el entorno real del sistema con datos reales
• El entorno de pruebas deberia coincidir con el entorno real
- No son necesarios stubs o controladores (“drivers”)
- Todas las interfaces externas son probadas en condiciones reales
- Emulación próxima al futuro entorno real del sistema
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Niveles de prueba
Tres enfoques para probar requisitos funcionales:
• Pruebas basadas en procesos de negocio:
- Cada proceso de negocio sirve como fuente para derivar/generar
pruebas
- El orden de relevancia de los procesos de negocio pueden ser aplicados para asignar prioridades a los casos de prueba
• Pruebas basadas en casos de uso:
- Los casos de prueba se derivan/generan a partir de las secuencias de usos esperados o razonables
- Las secuencias utilizadas con mayor frecuencia reciben una prioridad más alta
• Pruebas basadas en requisitos:
- Los casos de prueba se derivan de la especificación de requisitos
- El número de casos de prueba variará en función del tipo/profundidad de las pruebas basadas en la especificación de
requisitos
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Niveles de prueba
Pruebas de aceptación: Pruebas de aceptación de usuario
• Normalmente el cliente selecciona casos de prueba para las pruebas de aceptación
- Normalmente se verifica la adecuación al uso del sistema por parte de usuarios de negocio, “los clientes conocen su negocio”
• Las pruebas se realizan utilizando el entorno del cliente.
- El entorno del cliente puede producir nuevos fallos
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Niveles de prueba
Pruebas de aceptación: Pruebas de aceptación operativa
• Requiere que el software sea adecuado para su uso en un entorno de producción
- Integración del software en la infraestructura TI del cliente (Copias de seguridad/restauración de sistemas, reinicio, instalación,
capacidad de ser desinstalado, recuperación en caso de desastres, etc.)
- Gestión de usuarios, interacción con ficheros y estructuras de directorios en uso
- Compatibilidad con otros sistemas (otros ordenadores, servidores de base de datos, etc.)
- Tareas de mantenimiento
- Tareas de carga y migración de datos
- Comprobaciones periódicas de vulnerabilidades de seguridad
• Con frecuencia, las pruebas de aceptación operativa son realizadas por el administrador de sistemas del cliente
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Niveles de prueba
Pruebas de aceptación: Pruebas alpha y pruebas beta
• El cliente utiliza el software para hacer el tratamiento de sus procesos de negocio
cotidianos en las dependencias del proveedor [pruebas alpha – (“alpha testing”)] o en
sus propias dependencias [pruebas beta - (“beta testing”)]
• Se aporta información (“feedback”) respecto de problemas detectados, usabilidad, etc.
• Ventajas de las pruebas alpha y beta
- Reduce el costo de las pruebas de aceptación
- Se utilizan distintos entornos
- Involucran a un alto número de usuarios
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Tipos de pruebas
A. Pruebas funcionales (Objetivo: probar la función)
B. Pruebas no funcionales (Objetivo: probar las características del
producto)
C. Pruebas estructurales (Objetivo: probar la
estructura/arquitectura software)
D. Pruebas de asociadas al cambio (Objetivo: probar
después de cambios)
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Tipos de pruebas
A. Pruebas funcionales (Objetivo: probar la función)
- Los métodos de caja negra (“black box”) se utilizan en el diseño de
casos de prueba relevantes
- Las pruebas son para verificar los requisitos funcionales (establecidos
en las especificaciones, conceptos, casos de estudio, reglas de
negocio o documentos relacionados)
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Tipos de pruebas
B. Pruebas no funcionales (Objetivo: probar las características del
producto)
- Pruebas no funcionales típicas:
- Pruebas de carga(“load testing”) / pruebas de rendimiento
(“performance testing”) / pruebas de volumen (“volume testing”) /
pruebas de estrés (“stress testing”)
- Pruebas de las características de seguridad (efectos adversos) del
software(“Testing of safety features”)
- Prueba de fiabilidad y robustez (“reliability and robustness testing”)
- Pruebas de usabilidad (“usability testing”) / pruebas de configuración
(“configuration testing”)
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Tipos de pruebas
B. Pruebas no funcionales (Objetivo: probar las características del producto)
• Prueba de carga (“load test”)
- Sistema bajo carga (carga mínima, más usuarios/transacciones)
• Prueba de rendimiento (“performance test”)
- Rapidez con la cual un sistema ejecuta una determinada función
• Prueba de volumen (“volume test”)
- Procesamiento de grandes cantidades de datos / ficheros
• Prueba de estrés (“stress test”)
- Reacción a la sobrecarga / recuperación tras el retorno a una carga
normal
• Prueba de estabilidad (“stability test”)
- Rendimiento en “modo de operación continua”
• Prueba de robustez (“test for robustness”)
- Reacción a entradas erróneas o datos no especificados
- Reacción a fallos hardware / recuperación ante situaciones de
desastre
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Tipos de pruebas
B. Pruebas no funcionales (Objetivo: probar las características del producto)
• Pruebas de cumplimiento
- Cumplir normas y reglamentos (interno / externo)
• Pruebas de usabilidad
- Estructurado, comprensible, fácil de aprender por parte del usuario
• Otros aspectos no funcionales de calidad:
- Portabilidad: adaptabilidad, reemplazabilidad, instalabilidad, coexistencia, cumplimiento de
portabilidad
- Mantenibilidad: analizabilidad, modificabilidad, estabilidad, testabilidad, cumplimiento de
mantenibilidad
- Fiabilidad: madurez, tolerancia a fallos, recuperabilidad, cumplimiento de fiabilidad
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Tipos de pruebas
C. Pruebas estructurales (Objetivo: probar la estructura/arquitectura software)
Objetivo: Cobertura
- Análisis de la estructura de un objeto de prueba (enfoque: caja blanca)
- La finalidad de las pruebas es medir el grado en el cual la estructura del objeto de prueba ha sido
cubierto por los casos de prueba
PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE
Tipos de pruebas
D. Pruebas de asociadas al cambio (Objetivo: probar después de cambios)
- Objetivo: probar el objeto después de cambios
- Después de que un objeto de pruebas o el entorno de su sistema ha sido objeto de modificación los
resultados de pruebas asociadas al cambio resultan inválidos: las pruebas deben ser repetidas
- Dos razones para modificar el software
- Corrección de errores
- Extensión funcional
- Debido a los efectos secundarios de la funcionalidad extendida o nueva, es necesario también repetir
pruebas de áreas adyacentes
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Pruebas de caja negra (“black box”) y caja blanca (“White box”)
- Las pruebas dinámicas se dividen en dos categorías/grupos.
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnica: caja negra (“black box”)
• El probador observa el objeto de prueba como una caja negra
- La estructura interna del objeto de prueba es irrelevante o
desconocida
• Los casos de prueba se obtienen a partir del análisis de la especificación
(funcional y no funcional) de un componente o sistema
- Prueba del comportamiento entrada / salida (“input / output”)
• ¡La funcionalidad es el foco de atención!
• La técnica de caja negra también se denomina
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnicas basadas en la especificación o de caja negra
• Métodos de caja negra:
- Partición de equivalencia (segmentación de equivalencia) o clase de equivalencia
- Análisis de valores límite
- Tablas de decisión & gráficos causa-y-efecto
- Pruebas de transición de estado
- Pruebas de caso de uso
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnicas basadas en la especificación o de caja negra
• Métodos de caja negra:
o Partición de equivalencias
 Consiste en clasificar las entradas de datos del sistema en grupos que presentan un
comportamiento similar, por lo cual serán procesados de la misma forma.
 Se pueden definir particiones tanto para datos válidos como no válidos (datos que deben ser
rechazados por el sistema).
 Las particiones también pueden definirse en función de las salidas de datos, valores internos,
valores relacionados antes o después de ciertos eventos, y también para los valores que
reciben las interfaces.
 A partir de allí se definen pruebas para cubrir todos o parte de las particiones de datos
válidos y datos inválidos.
 Es aplicable a entradas de datos realizadas por personas o vía interfaces con otros sistemas.
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnicas basadas en la especificación o de caja negra
• Métodos de caja negra:
o Análisis de valores limites
 Parte del principio que el comportamiento al borde de una partición de datos tiene
mayores probabilidades de presentar errores (bugs).
 Los valores máximos y mínimos de una partición son sus valores borde.
 Aplican tanto para datos inválidos como inválidos.
 Al incluirlas en el diseño de casos de prueba, se define una prueba por cada valor
borde.
 La capacidad de identificar defectos de esta técnica es alta, ser pueden revisar las
especificaciones funcionales para identificar datos interesantes.
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnicas basadas en la especificación o de caja negra
• Métodos de caja negra:
o Tablas de decisión
 Las tablas de decisión son una herramienta útil para documentar reglas de negocio de alta
complejidad que el sistema debe cumplir.
 Las tablas de decisión se crean a partir del análisis de la especificación funcional y la
identificación de estas reglas de negocio.
 Las condiciones de entrada y acciones se expresan a menudo en términos de verdadero o
falso.
 La tabla de decisión contienen las condiciones desencadenantes, que son la combinación de
valores de verdadero o falso para cada entrada de datos, así como la acción que resulta de
cada combinación.
 Cada columna de la tabla corresponde con una regla de negocio que representan la
combinación de condiciones, y las acciones que resultan.
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnicas basadas en la especificación o de caja negra
• Métodos de caja negra:
o Transición entre estados
 Un sistema puede presentar diferentes comportamientos según su estado actual o
eventos previos.
 Este aspecto del sistema se puede representar en un diagrama de transición entre
estados.
 El diagrama de estados, permite al Tester visualizar los estados, transiciones, entradas
de datos o eventos que las desencadenan y las acciones que pueden resultar.
 Una tabla de estados, muestra las relaciones entre los estados y las entradas de datos.
Puede ayudar a identificar posibles transacciones inválidas.
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnicas basadas en la especificación o de caja negra
• Métodos de caja negra:
o Pruebas de casos de uso
 Los casos de uso describen las interacciones entre actores (que pueden ser usuarios o
sistemas) que producen un resultado que agrega algún valor. A partir de estos se
pueden derivar casos de prueba.
 Tienen precondiciones que deben cumplirse para que estos funcionen de forma exitosa.
 Los casos de uso terminan con post-condiciones, que son resultados observables y
estado del sistema después de la ejecución.
 Son útiles para definir las pruebas de aceptación, en las que participa el usuario o
cliente.
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnicas basadas en la estructura o de caja blanca (“White box ”)
• Técnicas de caja blanca (“white box”):
- Se centran en los detalles procedimentales del software, por lo que su diseño está
fuertemente ligado al código fuente. El ingeniero de pruebas escoge distintos valores
de entrada para examinar cada uno de los posibles flujos de ejecución del programa y
cerciorarse de que se devuelven los valores de salida adecuados.
- Sólo se puede probar código existente. Habiendo funciones faltantes, este hecho no
puede ser detectado. Sin embargo el código muerto o superfluo puede ser detectado
con las pruebas de caja blanca
- Principalmente, los métodos de caja blanca son utilizados en pruebas de bajo nivel
como pruebas de componente o pruebas de integración
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnicas basadas en la estructura o de caja blanca (“White box ”)
• Técnicas de caja blanca (“white box”):
- Pruebas de sentencia y cobertura (“statement testing and coverage”)
- Pruebas de decisión y cobertura (“decision testing and coverage”)
- Pruebas de condición y cobertura (“condition testing and coverage”)
- Pruebas de cobertura de camino y (“path testing coverage”)
TÉCNICAS DE DISEÑO DE PRUEBAS
Categorías de las técnicas de diseño de prueba
Técnicas basadas en la estructura o de caja blanca (“White box ”)
• Principales Tipos de Cobertura
- Cobertura de sentencia (“statement coverage”)
 -Porcentaje de sentencias ejecutables que han sido practicadas por los casos de prueba
 También puede ser aplicado a módulos, clases, elementos de un menú, etc.
- Cobertura de decisión (= cobertura de rama) (“decisión coverage = branch coverage”)
 Porcentaje de resultados de decisión que han sido practicados por los casos de prueba
- Cobertura de camino (“path coverage”)
 Porcentaje de caminos de ejecución que han sido practicados por casos de prueba
- Cobertura de condición (“condition coverage”)
 Porcentaje de todos los resultados individuales de condición que afectan de forma independiente al
resultado de una decisión que ha sido practicada por casos de prueba
 La cobertura de condición se presenta en distintos grados, por ejemplo, cobertura de condición simple,
cobertura de condición múltiple y cobertura de condición múltiple mínima

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-AutomationMindfire Solutions
 
End to end testing - strategies
End to end testing - strategiesEnd to end testing - strategies
End to end testing - strategiesanuvip
 
User Story Maps: Secrets for Better Backlogs and Planning
 User Story Maps: Secrets for Better Backlogs and Planning User Story Maps: Secrets for Better Backlogs and Planning
User Story Maps: Secrets for Better Backlogs and PlanningAaron Sanders
 
Intro to Visual Test Automation with Applitools Eyes
Intro to Visual Test Automation with Applitools Eyes Intro to Visual Test Automation with Applitools Eyes
Intro to Visual Test Automation with Applitools Eyes Applitools
 
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de PruebasGlobant
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testingSoftheme
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - FundamentosLucas Amaral
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
Strategies For Software Test Documentation
Strategies For Software Test Documentation Strategies For Software Test Documentation
Strategies For Software Test Documentation Vishwak Solution
 
Accessibility in Low-Code: Applications with no Limits
Accessibility in Low-Code: Applications with no LimitsAccessibility in Low-Code: Applications with no Limits
Accessibility in Low-Code: Applications with no LimitsOutSystems
 
Agile Requirements & Design
Agile Requirements & DesignAgile Requirements & Design
Agile Requirements & DesignMike Cottmeyer
 
test-plan-template-05.pdf
test-plan-template-05.pdftest-plan-template-05.pdf
test-plan-template-05.pdfgintpt
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projectssriks7
 
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream FlowLearn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream FlowDevOps.com
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Leonard Fingerman
 
Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentationCarl Bruiners
 

Was ist angesagt? (20)

Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Softwaretesting
SoftwaretestingSoftwaretesting
Softwaretesting
 
End to end testing - strategies
End to end testing - strategiesEnd to end testing - strategies
End to end testing - strategies
 
User Story Maps: Secrets for Better Backlogs and Planning
 User Story Maps: Secrets for Better Backlogs and Planning User Story Maps: Secrets for Better Backlogs and Planning
User Story Maps: Secrets for Better Backlogs and Planning
 
Intro to Visual Test Automation with Applitools Eyes
Intro to Visual Test Automation with Applitools Eyes Intro to Visual Test Automation with Applitools Eyes
Intro to Visual Test Automation with Applitools Eyes
 
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - Fundamentos
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
Strategies For Software Test Documentation
Strategies For Software Test Documentation Strategies For Software Test Documentation
Strategies For Software Test Documentation
 
Agile metrics
Agile metricsAgile metrics
Agile metrics
 
Accessibility in Low-Code: Applications with no Limits
Accessibility in Low-Code: Applications with no LimitsAccessibility in Low-Code: Applications with no Limits
Accessibility in Low-Code: Applications with no Limits
 
Agile Requirements & Design
Agile Requirements & DesignAgile Requirements & Design
Agile Requirements & Design
 
test-plan-template-05.pdf
test-plan-template-05.pdftest-plan-template-05.pdf
test-plan-template-05.pdf
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projects
 
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream FlowLearn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 
Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentation
 
QACampus PPT (STLC)
QACampus PPT (STLC)QACampus PPT (STLC)
QACampus PPT (STLC)
 

Ähnlich wie INDUCCION A QA TESTER.pptx

Curso Basico-Testing-03r003.pdf
Curso Basico-Testing-03r003.pdfCurso Basico-Testing-03r003.pdf
Curso Basico-Testing-03r003.pdfBarcodeBarcode
 
Unidad Metodologica 2
Unidad Metodologica 2Unidad Metodologica 2
Unidad Metodologica 2Luis Ascanio
 
Unidad Metodologica
Unidad MetodologicaUnidad Metodologica
Unidad MetodologicaLuis Ascanio
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas.. ..
 
Ingeniería del software 3
Ingeniería del software 3Ingeniería del software 3
Ingeniería del software 3enayluis
 
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe... Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...Federico Toledo
 
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Abstracta
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de softwareGomez Gomez
 
metodologias de sistemas
metodologias de sistemasmetodologias de sistemas
metodologias de sistemasROCASASO
 
02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevidaclaudiappaez
 
Tema5 la calidad del software
Tema5 la calidad del softwareTema5 la calidad del software
Tema5 la calidad del softwarefalconsrazor
 
Aseguramiento De Calidad Mp
Aseguramiento De Calidad MpAseguramiento De Calidad Mp
Aseguramiento De Calidad MpZonar
 

Ähnlich wie INDUCCION A QA TESTER.pptx (20)

Curso Basico-Testing-03r003.pdf
Curso Basico-Testing-03r003.pdfCurso Basico-Testing-03r003.pdf
Curso Basico-Testing-03r003.pdf
 
Unidad Metodologica 2
Unidad Metodologica 2Unidad Metodologica 2
Unidad Metodologica 2
 
Unidad Metodologica
Unidad MetodologicaUnidad Metodologica
Unidad Metodologica
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Pruebas - Fundamentos
Pruebas - FundamentosPruebas - Fundamentos
Pruebas - Fundamentos
 
Pruebas fundamentos
Pruebas fundamentosPruebas fundamentos
Pruebas fundamentos
 
Validación y Verificación de Software
Validación y Verificación de SoftwareValidación y Verificación de Software
Validación y Verificación de Software
 
Calidad de software y TDD
Calidad de software y TDDCalidad de software y TDD
Calidad de software y TDD
 
Is new
Is newIs new
Is new
 
Unidad 3 elaboracion de un proyecto (4)
Unidad  3   elaboracion de un proyecto (4)Unidad  3   elaboracion de un proyecto (4)
Unidad 3 elaboracion de un proyecto (4)
 
Ingeniería del software 3
Ingeniería del software 3Ingeniería del software 3
Ingeniería del software 3
 
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe... Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
metodologias de sistemas
metodologias de sistemasmetodologias de sistemas
metodologias de sistemas
 
02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevida
 
15_pruebaSW.ppt
15_pruebaSW.ppt15_pruebaSW.ppt
15_pruebaSW.ppt
 
Tema5 la calidad del software
Tema5 la calidad del softwareTema5 la calidad del software
Tema5 la calidad del software
 
Aseguramiento De Calidad Mp
Aseguramiento De Calidad MpAseguramiento De Calidad Mp
Aseguramiento De Calidad Mp
 
Modelo pruebas
Modelo pruebasModelo pruebas
Modelo pruebas
 

Kürzlich hochgeladen

activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.JonathanCovena1
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptNancyMoreiraMora1
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 

Kürzlich hochgeladen (20)

activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 

INDUCCION A QA TESTER.pptx

  • 1. INDUCCION A QA TESTER
  • 2. CONTENIDO  Fundamentos de pruebas  Pruebas a traves del ciclo de vida de software  Técnicas de diseño de casos de pruebas
  • 3. FUNDAMENTOS DE PRUEBAS ¿Porqué son necesarias las pruebas? • Mejora de la calidad de un producto software: El proceso de pruebas ayuda a suministrar/aportar al software los atributos deseados, por ejemplo retirar defectos que conducen a fallos • Reducción del riesgo de detectar errores: Actividades de pruebas software adecuadas reducirán el riesgo de encontrar errores durante la fase de operaciones software • Satisfacer compromisos: La ejecución de pruebas puede ser un requisito obligatorio por parte del cliente, debido a normas legales así como al cumplimiento de estándares propios de una industria • El coste de los defectos La detección de errores en etapas tempranas permite la corrección de los mismos a costes reducidos
  • 4. FUNDAMENTOS DE PRUEBAS Causa de fallos del software • Error humano: Un defecto ha sido introducido en el código software, en los datos o en los parámetros de configuración Causas de error humano Plazos, demandas excesivas debidas a la complejidad, distracciones • Condiciones ambientales: Cambios en las condiciones ambientales Causas de condiciones ambientales negativas/adversas Radiación, magnetismo, campos electromagnéticos, polución, manchas solares, fallo de discos duros, fluctuaciones en el suministro de energía eléctrica
  • 5. FUNDAMENTOS DE PRUEBAS De acuerdo a la norma ISO/IEC 9126 la calidad software consiste en: • Atributos funcionales de calidad - Funcionalidad incluye  Adecuación  Exactitud  Interoperabilidad  Seguridad  Cumplimiento de funcionalidad • Atributos no-funcionales de calidad - Fiabilidad - Usabilidad - Eficiencia - Mantenibilidad - Portabilidad
  • 6. FUNDAMENTOS DE PRUEBAS Caso de prueba (“test case”), base de prueba (“test basis”) • Caso de prueba (“test case”) según IEEE Std 829: La definición de un caso de prueba incluye, al menos, la siguiente información (según IEEE Std 610)  Precondiciones  Conjunto de valores de entrada  Conjunto de resultados esperados  Poscondiciones esperadas  Identificador único  Dependencia de otros casos de prueba  Referencia al requisito que será  Forma en la cual se debe ejecutar el caso de prueba y verificar los resultados (opcional)  Prioridad (opcional)
  • 7. FUNDAMENTOS DE PRUEBAS Caso de prueba (“test case”) según IEEE Std 829:  Precondiciones (“preconditions”): situación previa a la ejecución de pruebas o características de un objeto de pruebas antes de llevar a la práctica (ejecución) un caso de prueba  Valores de entrada (“input values”): descripción de los datos de entrada de un objeto de pruebas  Resultados esperados (“expected results”): datos de salida que se espera que produzca un objeto de pruebas  Poscondiciones (“post conditions”): características de un objeto de prueba tras la ejecución de pruebas, descripción de su situación tras la ejecución de las pruebas  Dependencias (“dependencies”): orden de ejecución de casos de prueba, razón de las dependencias  Identificador distinguible (“distinct identification”): Identificador o código con el objeto de vincular, por ejemplo, un informe de errores al caso de prueba en el cual ha sido detectado  Requisitos (“requirements”): características del objeto de pruebas que el caso de prueba debe evaluar
  • 8. FUNDAMENTOS DE PRUEBAS Caso de prueba (“test case”), base de prueba (“test basis”) • Base de prueba (“test basis” o “test base”): Conjunto de documentos que definen los requisitos de un componente o sistema. Utilizado como fundamento para el desarrollo de casos de prueba.
  • 9. FUNDAMENTOS DE PRUEBAS Objetivos de las pruebas • Detección de defectos • Generación (logro) de confianza respecto del nivel de Calidad • Aportación de información para la toma de decisiones • Prevención de defectos
  • 10. FUNDAMENTOS DE PRUEBAS Pruebas y depuración (“debugging”)
  • 11. FUNDAMENTOS DE PRUEBAS Pruebas y depuración (“debugging”) Probar y repetir la prueba (repetición de pruebas - “re-testing”) son actividades propias del proceso de pruebas. Las pruebas muestran los fallos La repetición de pruebas (“re-testing”) verifica que el defecto ha sido corregido La depuración y la corrección de defectos son actividades propias del desarrollador A través de la depuración los desarrolladores pueden reproducir los fallos, analizar el estado del programa y detectar el defecto correspondiente con el objeto de corregirlo
  • 12. FUNDAMENTOS DE PRUEBAS Proceso de pruebas básico El proceso de pruebas está determinado por las siguientes fases: • Planificación de pruebas y Control • Análisis de pruebas y diseño de pruebas • Implementación de pruebas y ejecución de pruebas • Evaluación del criterio de finalización de pruebas y generación de informes de pruebas • Actividades de cierre de pruebas
  • 13. FUNDAMENTOS DE PRUEBAS Roles y responsabilidades • Rol: Desarrollador  Implementa requisitos  Desarrolla estructuras  Diseña y programa el software  Su éxito consiste en la creación de un producto • Rol: Probador (“Tester”)  Planifica las actividades de  pruebas.  Diseña casos de prueba  Su única preocupación es encontrar defectos  Encontrar errores producidos por un desarrollador es su éxito
  • 14. FUNDAMENTOS DE PRUEBAS Características personales de un buen probador (“tester”) • Aptitudes para la comunicación  Necesarias para llevar malas noticias a los desarrolladores  Necesarias para vencer estados de frustración  Tanto cuestiones técnicas como prácticas, relativas al uso del  sistema, deben ser entendidas y comunicadas  Una comunicación positiva puede ayudar a evitar o facilitar  situaciones difíciles  Para establecer una relación de trabajo con los desarrolladores a corto plazo • Experiencia  Factores personales influyen en la ocurrencia de errores  La experiencia ayuda a identificar dónde se pueden acumular errores
  • 15. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Modelos de desarrollo software • Pruebas a través del modelo-V general (Modelo de desarrollo secuencial): El modelo-V general es el modelo de desarrollo software más utilizado Desarrollo y pruebas son dos ramas iguales Cada nivel de desarrollo tiene su correspondiente nivel de pruebas
  • 16. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Modelos de desarrollo software • Pruebas a través del modelo-V general (Modelo de desarrollo secuencial):
  • 17. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Modelos de desarrollo software • Pruebas a través del modelo-V general (Modelo de desarrollo secuencial): o Rama de desarrollo software  Definición de requisitos  Documentos de especificación  Diseño funcional del sistema  Diseño del flujo funcional del programa  Diseño técnico del sistema  Definición de arquitectura / interfaces  Especificación de los componentes  Estructura de los componentes  Programación  Creación de código ejecutable
  • 18. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Modelos de desarrollo software • Pruebas a través del modelo-V general (Modelo de desarrollo secuencial): o Rama de pruebas software  Pruebas de aceptación  Pruebas formales de los requisitos del cliente  Pruebas de sistema  Sistema integrado, especificaciones  Pruebas de integración  Interfaces de componentes  Pruebas de componente  Funcionalidad del componente
  • 19. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Modelos de desarrollo software • Pruebas a través del modelo-V general (Modelo de desarrollo secuencial): Verificación dentro del modelo-V general
  • 20. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Modelos de desarrollo software • Pruebas a través del modelo-V general (Modelo de desarrollo secuencial): Validación dentro del modelo-V general
  • 21. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Modelos de desarrollo software • Pruebas en el modelo-W
  • 22. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Modelos de desarrollo software • Modelos iterativos: tipos de modelos iterativos:  Modelo prototipado: desarrollo rápido de una representación del sistema que pudiera ser objeto de uso, seguida de modificaciones sucesivas hasta que el sistema sea finalizado  Desarrollo rápido de aplicaciones (“Rapid Application Development” - (RAD)): La interfaz de usuario se implementa utilizando una funcionalidad previamente construida (“out-of-thebox ”) simulando la funcionalidad que posteriormente será desarrollada  Proceso unificado (“Rational Unified Process” - (RUP)): modelo orientado a objeto y producto de la compañía Rational/IBM. Principalmente aporta el lenguaje de modelado UML y soporte al Proceso Unificado  Programación extrema (“Extreme Programming” - (XP)): el desarrollo y las pruebas tienen lugar sin una especificación de requisitos formalizada  SCRUM – descripción del proceso: Scrum es una metodología de trabajo iterativa e incremental para la gestión de proyectos, desplegado principalmente en el desarrollo ágil de software
  • 23. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Modelos de desarrollo software • Modelos iterativos: Características:  Cada iteración contribuye con una característica adicional del sistema a desarrollar  Cada iteración puede ser probada por separado  Las pruebas de regresión y la automatización de pruebas son elementos/factores de gran relevancia  En cada iteración, la verificación (relación con el nivel precedente) y la validación (grado de corrección del producto dentro del nivel actual) se pueden efectuar por separado
  • 24. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Niveles de prueba Pruebas de componente: Alcance • Sólo se prueban componentes individuales - Un componente puede estar constituido por un conjunto de unidades más pequeñas - Los objetos de prueba no siempre pueden ser probados en solitario (de forma autónoma) • Cada componente es probado de forma independiente - Descubriendo fallos producidos por defectos internos - Los efectos cruzados entre componentes quedan fuera del alcance de estas pruebas • Los casos de prueba podrán ser obtenidos a partir de: - Especificaciones de componente - Diseño software - Modelo de datos
  • 25. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Niveles de prueba Pruebas de integración: Alcance • Las pruebas de integración asumen que los componentes ya han sido probados • Las pruebas de integración comprueban la interacción mutua entre componentes (subsistemas) software entre sí: - Interfaces con otros componentes - Interfaces GUIs / MMIs • Las pruebas de integración comprueban las interfaces con el entorno del sistema - En la mayoría de los casos la interacción probada es el comportamiento del componente y el entorno simulado - En condiciones reales factores adicionales del entorno pueden influir en el comportamiento del componente • Los casos de prueba podrán ser obtenidos a partir de: - Especificación de interfaces - Diseño de la arquitectura (diseño) - Modelo de datos
  • 26. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Niveles de prueba Pruebas de integración: Alcance • Será probado un (subsistema) sistema compuesto de componentes individuales - Cada componente tiene una interfaz externa y/o interna que interactúa con otro componente del (subsistema) sistema • Son necesarios controladores de prueba (“drivers”) (los cuales - aportan el entorno al proceso del sistema o subsistema) - - Con el objeto de permitir o producir entradas y salidas del - (subsistema) sistema - Con el objeto de registrar datos • Los controladores de pruebas (“drivers”) del componente podrán ser reutilizadas en estas pruebas
  • 27. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Niveles de prueba Pruebas de sistema: Alcance • Prueba de un sistema integrado desde el punto de vista del Usuario - Implementación completa y correcta de los requisitos - Despliegue en el entorno real del sistema con datos reales • El entorno de pruebas deberia coincidir con el entorno real - No son necesarios stubs o controladores (“drivers”) - Todas las interfaces externas son probadas en condiciones reales - Emulación próxima al futuro entorno real del sistema
  • 28. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Niveles de prueba Tres enfoques para probar requisitos funcionales: • Pruebas basadas en procesos de negocio: - Cada proceso de negocio sirve como fuente para derivar/generar pruebas - El orden de relevancia de los procesos de negocio pueden ser aplicados para asignar prioridades a los casos de prueba • Pruebas basadas en casos de uso: - Los casos de prueba se derivan/generan a partir de las secuencias de usos esperados o razonables - Las secuencias utilizadas con mayor frecuencia reciben una prioridad más alta • Pruebas basadas en requisitos: - Los casos de prueba se derivan de la especificación de requisitos - El número de casos de prueba variará en función del tipo/profundidad de las pruebas basadas en la especificación de requisitos
  • 29. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Niveles de prueba Pruebas de aceptación: Pruebas de aceptación de usuario • Normalmente el cliente selecciona casos de prueba para las pruebas de aceptación - Normalmente se verifica la adecuación al uso del sistema por parte de usuarios de negocio, “los clientes conocen su negocio” • Las pruebas se realizan utilizando el entorno del cliente. - El entorno del cliente puede producir nuevos fallos
  • 30. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Niveles de prueba Pruebas de aceptación: Pruebas de aceptación operativa • Requiere que el software sea adecuado para su uso en un entorno de producción - Integración del software en la infraestructura TI del cliente (Copias de seguridad/restauración de sistemas, reinicio, instalación, capacidad de ser desinstalado, recuperación en caso de desastres, etc.) - Gestión de usuarios, interacción con ficheros y estructuras de directorios en uso - Compatibilidad con otros sistemas (otros ordenadores, servidores de base de datos, etc.) - Tareas de mantenimiento - Tareas de carga y migración de datos - Comprobaciones periódicas de vulnerabilidades de seguridad • Con frecuencia, las pruebas de aceptación operativa son realizadas por el administrador de sistemas del cliente
  • 31. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Niveles de prueba Pruebas de aceptación: Pruebas alpha y pruebas beta • El cliente utiliza el software para hacer el tratamiento de sus procesos de negocio cotidianos en las dependencias del proveedor [pruebas alpha – (“alpha testing”)] o en sus propias dependencias [pruebas beta - (“beta testing”)] • Se aporta información (“feedback”) respecto de problemas detectados, usabilidad, etc. • Ventajas de las pruebas alpha y beta - Reduce el costo de las pruebas de aceptación - Se utilizan distintos entornos - Involucran a un alto número de usuarios
  • 32. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Tipos de pruebas A. Pruebas funcionales (Objetivo: probar la función) B. Pruebas no funcionales (Objetivo: probar las características del producto) C. Pruebas estructurales (Objetivo: probar la estructura/arquitectura software) D. Pruebas de asociadas al cambio (Objetivo: probar después de cambios)
  • 33. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Tipos de pruebas A. Pruebas funcionales (Objetivo: probar la función) - Los métodos de caja negra (“black box”) se utilizan en el diseño de casos de prueba relevantes - Las pruebas son para verificar los requisitos funcionales (establecidos en las especificaciones, conceptos, casos de estudio, reglas de negocio o documentos relacionados)
  • 34. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Tipos de pruebas B. Pruebas no funcionales (Objetivo: probar las características del producto) - Pruebas no funcionales típicas: - Pruebas de carga(“load testing”) / pruebas de rendimiento (“performance testing”) / pruebas de volumen (“volume testing”) / pruebas de estrés (“stress testing”) - Pruebas de las características de seguridad (efectos adversos) del software(“Testing of safety features”) - Prueba de fiabilidad y robustez (“reliability and robustness testing”) - Pruebas de usabilidad (“usability testing”) / pruebas de configuración (“configuration testing”)
  • 35. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Tipos de pruebas B. Pruebas no funcionales (Objetivo: probar las características del producto) • Prueba de carga (“load test”) - Sistema bajo carga (carga mínima, más usuarios/transacciones) • Prueba de rendimiento (“performance test”) - Rapidez con la cual un sistema ejecuta una determinada función • Prueba de volumen (“volume test”) - Procesamiento de grandes cantidades de datos / ficheros • Prueba de estrés (“stress test”) - Reacción a la sobrecarga / recuperación tras el retorno a una carga normal • Prueba de estabilidad (“stability test”) - Rendimiento en “modo de operación continua” • Prueba de robustez (“test for robustness”) - Reacción a entradas erróneas o datos no especificados - Reacción a fallos hardware / recuperación ante situaciones de desastre
  • 36. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Tipos de pruebas B. Pruebas no funcionales (Objetivo: probar las características del producto) • Pruebas de cumplimiento - Cumplir normas y reglamentos (interno / externo) • Pruebas de usabilidad - Estructurado, comprensible, fácil de aprender por parte del usuario • Otros aspectos no funcionales de calidad: - Portabilidad: adaptabilidad, reemplazabilidad, instalabilidad, coexistencia, cumplimiento de portabilidad - Mantenibilidad: analizabilidad, modificabilidad, estabilidad, testabilidad, cumplimiento de mantenibilidad - Fiabilidad: madurez, tolerancia a fallos, recuperabilidad, cumplimiento de fiabilidad
  • 37. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Tipos de pruebas C. Pruebas estructurales (Objetivo: probar la estructura/arquitectura software) Objetivo: Cobertura - Análisis de la estructura de un objeto de prueba (enfoque: caja blanca) - La finalidad de las pruebas es medir el grado en el cual la estructura del objeto de prueba ha sido cubierto por los casos de prueba
  • 38. PRUEBAS A TRAVÉS DEL CICLO DE VIDA SOFTWARE Tipos de pruebas D. Pruebas de asociadas al cambio (Objetivo: probar después de cambios) - Objetivo: probar el objeto después de cambios - Después de que un objeto de pruebas o el entorno de su sistema ha sido objeto de modificación los resultados de pruebas asociadas al cambio resultan inválidos: las pruebas deben ser repetidas - Dos razones para modificar el software - Corrección de errores - Extensión funcional - Debido a los efectos secundarios de la funcionalidad extendida o nueva, es necesario también repetir pruebas de áreas adyacentes
  • 39. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Pruebas de caja negra (“black box”) y caja blanca (“White box”) - Las pruebas dinámicas se dividen en dos categorías/grupos.
  • 40. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnica: caja negra (“black box”) • El probador observa el objeto de prueba como una caja negra - La estructura interna del objeto de prueba es irrelevante o desconocida • Los casos de prueba se obtienen a partir del análisis de la especificación (funcional y no funcional) de un componente o sistema - Prueba del comportamiento entrada / salida (“input / output”) • ¡La funcionalidad es el foco de atención! • La técnica de caja negra también se denomina
  • 41. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnicas basadas en la especificación o de caja negra • Métodos de caja negra: - Partición de equivalencia (segmentación de equivalencia) o clase de equivalencia - Análisis de valores límite - Tablas de decisión & gráficos causa-y-efecto - Pruebas de transición de estado - Pruebas de caso de uso
  • 42. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnicas basadas en la especificación o de caja negra • Métodos de caja negra: o Partición de equivalencias  Consiste en clasificar las entradas de datos del sistema en grupos que presentan un comportamiento similar, por lo cual serán procesados de la misma forma.  Se pueden definir particiones tanto para datos válidos como no válidos (datos que deben ser rechazados por el sistema).  Las particiones también pueden definirse en función de las salidas de datos, valores internos, valores relacionados antes o después de ciertos eventos, y también para los valores que reciben las interfaces.  A partir de allí se definen pruebas para cubrir todos o parte de las particiones de datos válidos y datos inválidos.  Es aplicable a entradas de datos realizadas por personas o vía interfaces con otros sistemas.
  • 43. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnicas basadas en la especificación o de caja negra • Métodos de caja negra: o Análisis de valores limites  Parte del principio que el comportamiento al borde de una partición de datos tiene mayores probabilidades de presentar errores (bugs).  Los valores máximos y mínimos de una partición son sus valores borde.  Aplican tanto para datos inválidos como inválidos.  Al incluirlas en el diseño de casos de prueba, se define una prueba por cada valor borde.  La capacidad de identificar defectos de esta técnica es alta, ser pueden revisar las especificaciones funcionales para identificar datos interesantes.
  • 44. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnicas basadas en la especificación o de caja negra • Métodos de caja negra: o Tablas de decisión  Las tablas de decisión son una herramienta útil para documentar reglas de negocio de alta complejidad que el sistema debe cumplir.  Las tablas de decisión se crean a partir del análisis de la especificación funcional y la identificación de estas reglas de negocio.  Las condiciones de entrada y acciones se expresan a menudo en términos de verdadero o falso.  La tabla de decisión contienen las condiciones desencadenantes, que son la combinación de valores de verdadero o falso para cada entrada de datos, así como la acción que resulta de cada combinación.  Cada columna de la tabla corresponde con una regla de negocio que representan la combinación de condiciones, y las acciones que resultan.
  • 45. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnicas basadas en la especificación o de caja negra • Métodos de caja negra: o Transición entre estados  Un sistema puede presentar diferentes comportamientos según su estado actual o eventos previos.  Este aspecto del sistema se puede representar en un diagrama de transición entre estados.  El diagrama de estados, permite al Tester visualizar los estados, transiciones, entradas de datos o eventos que las desencadenan y las acciones que pueden resultar.  Una tabla de estados, muestra las relaciones entre los estados y las entradas de datos. Puede ayudar a identificar posibles transacciones inválidas.
  • 46. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnicas basadas en la especificación o de caja negra • Métodos de caja negra: o Pruebas de casos de uso  Los casos de uso describen las interacciones entre actores (que pueden ser usuarios o sistemas) que producen un resultado que agrega algún valor. A partir de estos se pueden derivar casos de prueba.  Tienen precondiciones que deben cumplirse para que estos funcionen de forma exitosa.  Los casos de uso terminan con post-condiciones, que son resultados observables y estado del sistema después de la ejecución.  Son útiles para definir las pruebas de aceptación, en las que participa el usuario o cliente.
  • 47. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnicas basadas en la estructura o de caja blanca (“White box ”) • Técnicas de caja blanca (“white box”): - Se centran en los detalles procedimentales del software, por lo que su diseño está fuertemente ligado al código fuente. El ingeniero de pruebas escoge distintos valores de entrada para examinar cada uno de los posibles flujos de ejecución del programa y cerciorarse de que se devuelven los valores de salida adecuados. - Sólo se puede probar código existente. Habiendo funciones faltantes, este hecho no puede ser detectado. Sin embargo el código muerto o superfluo puede ser detectado con las pruebas de caja blanca - Principalmente, los métodos de caja blanca son utilizados en pruebas de bajo nivel como pruebas de componente o pruebas de integración
  • 48. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnicas basadas en la estructura o de caja blanca (“White box ”) • Técnicas de caja blanca (“white box”): - Pruebas de sentencia y cobertura (“statement testing and coverage”) - Pruebas de decisión y cobertura (“decision testing and coverage”) - Pruebas de condición y cobertura (“condition testing and coverage”) - Pruebas de cobertura de camino y (“path testing coverage”)
  • 49. TÉCNICAS DE DISEÑO DE PRUEBAS Categorías de las técnicas de diseño de prueba Técnicas basadas en la estructura o de caja blanca (“White box ”) • Principales Tipos de Cobertura - Cobertura de sentencia (“statement coverage”)  -Porcentaje de sentencias ejecutables que han sido practicadas por los casos de prueba  También puede ser aplicado a módulos, clases, elementos de un menú, etc. - Cobertura de decisión (= cobertura de rama) (“decisión coverage = branch coverage”)  Porcentaje de resultados de decisión que han sido practicados por los casos de prueba - Cobertura de camino (“path coverage”)  Porcentaje de caminos de ejecución que han sido practicados por casos de prueba - Cobertura de condición (“condition coverage”)  Porcentaje de todos los resultados individuales de condición que afectan de forma independiente al resultado de una decisión que ha sido practicada por casos de prueba  La cobertura de condición se presenta en distintos grados, por ejemplo, cobertura de condición simple, cobertura de condición múltiple y cobertura de condición múltiple mínima