0% encontró este documento útil (0 votos)
15 vistas30 páginas

Estrategias de Testing de Software

Cargado por

mxicaya
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas30 páginas

Estrategias de Testing de Software

Cargado por

mxicaya
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Exposicion

Testing
Introducción
El testing en el aseguramiento de la calidad de software es
esencial para garantizar que los productos funcionen correctamente
y cumplan con los requisitos esperados. A través del testing,
se identifican y corrigen errores, asegurando que el software sea
fiable y eficiente antes de su lanzamiento. Este proceso,
que incluye pruebas manuales y automatizadas, es crucial
para entregar productos de alta calidad que
satisfagan las necesidades de los usuarios.
Definiciones
Testing de Software: Es el proceso de evaluación de un sistema o aplicación para detectar
defectos y asegurar que cumple con los requisitos especificados.

Pruebas Funcionales: Evaluación del comportamiento funcional de un sistema o


componente mediante la ejecución de casos de prueba diseñados para verificar que
cumple con los requisitos funcionales.

Pruebas No Funcionales: Pruebas que evalúan aspectos no funcionales de un sistema,


como la usabilidad, rendimiento, seguridad, etc.

Pruebas Unitarias: Pruebas realizadas a nivel de componente o unidad individual para


verificar su correcto funcionamiento de manera aislada.

Pruebas de Integración: Verificación de la interacción entre componentes o sistemas para


asegurar que funcionan correctamente en conjunto.
Pruebas de Regresión: Pruebas realizadas para asegurar que los cambios en el código no
afectan negativamente a funcionalidades existentes.

Pruebas de Aceptación: Pruebas realizadas para validar si un sistema cumple con los
criterios de aceptación definidos por el usuario final.

Pruebas Automatizadas: Proceso de ejecución de pruebas utilizando herramientas o


scripts automatizados para aumentar la eficiencia y la cobertura de las pruebas.
Testing Manual: Es un proceso en el cual los testers evalúan manualmente una
aplicación para identificar errores, defectos y problemas en su funcionamiento.
Se basa en la experiencia del usuario y la intuición del tester, permitiendo una
evaluación flexible y detallada.

Ventajas Desventajas

Flexibilidad y Tiempo y Costo a


Adaptabilidad Largo Plazo
Aplicable a Interfaces Propenso a Errores
Cambiantes Humanos
Experiencia del Escalabilidad Limitada
Usuario Documentación
Costo Inicial Bajo Inconsistente
Testing Automatizado: Involucra el uso de herramientas y scripts para ejecutar
pruebas automáticamente, garantizando precisión y rapidez en pruebas
repetitivas. Es eficaz para grandes proyectos y pruebas continuas, eliminando la
variabilidad humana y acelerando el proceso de testing.

Ventajas Desventajas

Eficiencia y Rapidez Costo Inicial Alto


Consistencia y Falta de Flexibilidad
Precisión Limitado a Casos
Escalabilidad Predefinidos
Rentabilidad a Largo Curva de Aprendizaje
Plazo
Testing Funcional
El Testing Funcional se enfoca en verificar que las funciones del software operen de acuerdo con los requisitos
especificados. Evalúa el comportamiento del sistema sin preocuparse por la estructura interna del código.

Pruebas de Caja Negra


Las pruebas de caja negra evalúan la funcionalidad del software sin tener conocimiento de su estructura interna. Estas pruebas se enfocan
en las entradas y salidas del sistema para verificar si genera los resultados esperados de acuerdo con las especificaciones establecidas.

Pruebas de Caja Blanca


Las Pruebas de Caja Blanca se basan en el conocimiento del código fuente del software. Se enfocan en la estructura interna del
programa, verificando la lógica, las condiciones y los flujos de datos.
Pruebas de Regresión
Las Pruebas de Regresión aseguran que los cambios recientes en el código no hayan afectado negativamente las
funcionalidades existentes. Se ejecutan después de cada modificación o actualización.

Pruebas Unitarias
Las Pruebas Unitarias verifican la funcionalidad de componentes individuales del software, como funciones o métodos.
Son fundamentales para detectar errores tempranos en el desarrollo.
Testing No Funcional
El Testing No Funcional evalúa aspectos del software que no están relacionados con la funcionalidad específica, como
el rendimiento, la seguridad y la usabilidad. Su objetivo es garantizar que el sistema cumpla con los requisitos de
calidad en estas áreas.

Pruebas de Rendimiento
Las Pruebas de Rendimiento analizan cómo el software responde bajo diversas cargas de trabajo. Evalúan la velocidad, la capacidad de respuesta y la estabilidad del sistema en
condiciones normales y extremas.

Pruebas de Seguridad
Las Pruebas de Seguridad se enfocan en identificar vulnerabilidades en el software. Evalúan la capacidad del sistema para protegerse contra ataques, accesos no
autorizados y otras amenazas de seguridad.

Pruebas de Usabilidad
Las Pruebas de Usabilidad miden lo fácil y eficiente que es para los usuarios interactuar con el software. Evalúan aspectos como la simplicidad de la interfaz, la
intuitividad de los controles y la satisfacción general del usuario.
Testing de Aceptación del
Usuario (UAT)
El Testing de Aceptación del Usuario es la fase final del proceso de testing en la que el cliente o usuario final valida que el
software cumple con sus expectativas y requisitos. Es la última verificación antes de que el producto sea lanzado al
mercado.

Objetivo Importancia
El UAT es esencial
El objetivo principal
porque es la validación
del UAT es garantizar
final que asegura que
que el sistema sea
el producto cumple
adecuado para su
con las expectativas
propósito desde la
del cliente antes de su
perspectiva del usuario
lanzamiento. Un UAT
final. Permite al cliente
exitoso reduce el
confirmar que todas
riesgo de fallos en
las funcionalidades
producción y aumenta
trabajan según lo
la satisfacción del
esperado en un
cliente.
entorno real.
Ciclo de Vida
del Testing
El ciclo de vida del testing, también
conocido como Software Testing Life Compuesto por las
Cycle (STLC), es un conjunto de
actividades realizadas durante el siguientes partes:
proceso de pruebas de software para Requisitos de Pruebas: Sirve para identificar las partes que serán
garantizar que el producto final cumpla probadas.
con los requisitos y funcione Planificación de pruebas: Se diseña la estrategia de pruebas con
correctamente. base al análisis del requisito analizado.
Diseño de casos de prueba: Se diseñan los casos de prueba
detallados que cubrirán todos los escenarios.
Configuración del ambiente: Se configura el ambiente de
pruebas donde se ejecutaran los casos.
Ejecucion de pruebas: se ejecutan los casos en el ambiente
preparado
Cierre de pruebas: Se evalua que se hayan cubierto todos los
requisitos
Mantenimiento: a medida que el software evoluciona las
pruebas tienen que evolucionar junto con el para cubrir las
partes necesarias.
Buenas
Practicas
Involucrar Al equipo de Testing
desde el Inicio:
Involucrar al equipo de pruebas desde
las primeras fases del desarrollo del
proyecto permite identificar problemas
desde el principio y asegurarse de que
los requisitos son claros y testeables. Entender los Requisitos:
Asegúrate de que todos los requisitos
están claramente definidos y son
comprensibles. Si hay dudas, es crucial
aclararlas antes de empezar a diseñar
los casos de prueba.
Automatizacion de Pruebas:
La automatización es clave para
pruebas repetitivas, como regresión o
pruebas de rendimiento. Esto ayuda a
ahorrar tiempo y a reducir el riesgo de
errores humanos.
Buenas
Practicas
Diseñar casos de Prueba Efectivos:
Los casos de prueba deben cubrir todos
los escenarios posibles, tanto positivos
como negativos. Prioriza las pruebas
basadas en el riesgo y en la criticidad de
las funcionalidades.
Revisar y Mantener los Casos de
Prueba:
Los casos de prueba deben cubrir todos
los escenarios posibles, tanto positivos
como negativos. Prioriza las pruebas
basadas en el riesgo y en la criticidad de
Gestión Eficaz de Defectos: las funcionalidades.
Documenta y clasifica los defectos de
manera detallada. Utiliza herramientas
de seguimiento de defectos para
monitorear su estado y asegurarte de
que todos los problemas se resuelven
antes de la liberación.
Buenas
Practicas
Pruebas en Ambientes Realistas:
Configura el ambiente de pruebas para
que refleje lo más fielmente posible el
ambiente en el que el software será
utilizado en producción.

Colaboración y Comunicación:
Fomenta la colaboración entre los
equipos de desarrollo, pruebas y
negocio. La comunicación abierta y
continua ayuda a resolver problemas
rápidamente y a alinear expectativas.
Pruebas Exploratorias:
Además de las pruebas planificadas,
realiza pruebas exploratorias para
descubrir defectos que los casos de
prueba formales podrían no cubrir. Esto
permite un enfoque más intuitivo y libre.
Buenas
Practicas
Documentación Clara:
Documenta claramente los resultados
de las pruebas, incluyendo los casos
fallidos, los defectos encontrados y las
decisiones tomadas. Esto facilita el
seguimiento y la referencia futura.
Pruebas de Regresion:
Cada vez que se realiza un cambio en el
software, ejecuta pruebas de regresión
para asegurarte de que las nuevas
modificaciones no han afectado
negativamente al resto del sistema.
Uso de Herramientas Adecuadas:
Utiliza herramientas de pruebas,
automatización, y gestión de defectos
que se adapten a las necesidades del
proyecto y que faciliten el trabajo del
equipo de pruebas.
Buenas
Practicas
Metricas y Evaluación Continua:
Utiliza métricas para evaluar la
eficiencia de las pruebas, como la tasa
de defectos, la cobertura de pruebas, y
el tiempo de resolución de defectos. Usa
esta información para mejorar
continuamente el proceso de pruebas. Estrategia de Pruebas Bien definida:
Desarrolla una estrategia de pruebas
que incluya un plan de pruebas
detallado, con tiempos estimados,
recursos necesarios, y una definición
clara del alcance.
Pruebas de Seguridad Y
Rendimiento:
Asegúrate de realizar pruebas de
seguridad y de rendimiento para
identificar vulnerabilidades y problemas
de escalabilidad antes de que el
software sea lanzado.
Ciclo de Vida
del Testing
Desafíos Comunes en Testing

TIEMPO Y
RECURSOS
LIMITADOS
CONTEXTO
CONTEXTO
Para manejar tiempos y recursos limitados sin comprometer la calidad en

CONTEXTO
el testing, es crucial priorizar las pruebas críticas que tienen mayor
impacto en el producto. Implementar la automatización de pruebas

CONTEXTO
repetitivas permite liberar recursos para áreas más complejas. Además,
realizar pruebas basadas en riesgos asegura que se cubran las partes
más vulnerables del sistema. Fomentar una colaboración eficiente entre

CONTEXTO
equipos también optimiza los recursos disponibles, garantizando que se
mantenga la calidad del software incluso bajo restricciones

CONTEXTO
DESAFÍOS COMUNES EN TESTING

AMBIGÜEDADES
EN LOS
REQUISITOS
CONTEXTO
CONTEXTO
Cuando los requisitos del software son ambiguos o poco claros, es

CONTEXTO
fundamental clarificarlos lo antes posible para evitar malentendidos en el
testing. Colaborar estrechamente con los stakeholders y los equipos de

CONTEXTO
desarrollo ayuda a identificar las áreas grises y a definir criterios de
aceptación claros. La creación de casos de prueba basados en escenarios
ayuda a explorar diferentes interpretaciones de los requisitos, lo que

CONTEXTO
permite identificar posibles problemas.

CONTEXTO
Desafíos Comunes en Testing

Manejo Datos
de Prueba
CONTEXTO
CONTEXTO
El manejo de datos de prueba es clave para realizar pruebas precisas y

CONTEXTO
repetibles. Generar datos de prueba realistas y variados permite cubrir
múltiples escenarios posibles. Es importante automatizar la generación

CONTEXTO
de estos datos para ahorrar tiempo y garantizar consistencia. Además,
mantener los datos actualizados y seguros es esencial, especialmente
cuando se trabaja con datos sensibles.

CONTEXTO
CONTEXTO
INTEGRACIÓN DE METODOLOGÍAS ÁGILES

El Agile testing es un enfoque de prueba de software.


Los principios ágiles implican la prueba continua
durante el ciclo de desarrollo de software para
entregar un producto de alta calidad a los usuarios
finales.
El concepto se basa en la idea de que la prueba no
debe ser una fase separada del desarrollo de
software, sino una parte fundamental del proceso
de desarrollo. Los agile testers y los equipos de TI
trabajan juntos para identificar áreas de mejora en
el software existente, analizar el feedback del cliente
y priorizar actualizaciones y características.
DevOps: La filosofía DevOps busca una integración
más fluida entre desarrollo y operaciones,
promoviendo ciclos de desarrollo más rápidos y una
entrega continua de software. En este contexto, el
testing es una parte integral del proceso de
desarrollo.

CI/CD (Integración Continua/Entrega Continua): En


entornos CI/CD, las pruebas se automatizan y se
ejecutan en cada etapa del desarrollo, integración y
entrega. Esto permite detectar y corregir defectos de
manera temprana y frecuente, lo que reduce el
riesgo de introducir errores en producción.
La Inteligencia Artificial (IA) está
mejorando la eficiencia del testing al
permitir la automatización inteligente de
pruebas. Los algoritmos de IA pueden
generar casos de prueba, identificar
patrones en defectos y adaptar las
pruebas según los cambios en el
software.
El testing es crucial para el éxito del software
porque asegura que el producto final cumpla con
los requisitos y expectativas del cliente. A través de
pruebas rigurosas, se identifican y corrigen
defectos, se valida la funcionalidad y se mejora la
calidad general del software. Un software bien
probado reduce el riesgo de fallos en producción,
minimiza los costos asociados con defectos y
contribuye a una mejor experiencia del usuario.
Integrantes
JEFFRY LEONEL MONTERROSO RODAS
CARNET 5990-13-15906

DAVID MOISES AVILA CERMEÑO


CARNET 5390-16-611

MANUEL DE JESUS XICAY AJSIVINAC


CARNE 1990-11-2968

JORGE LUIS REJOPACHI


CARNET 1290-14-6583

También podría gustarte