SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Similar a 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
 

Similar a 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
 

Último

Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 

Último (20)

Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 

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