豆豆友情提示:这是一个非官方 GitHub 代理镜像,主要用于网络测试或访问加速。请勿在此进行登录、注册或处理任何敏感信息。进行这些操作请务必访问官方网站 github.com。 Raw 内容也通过此代理提供。
Skip to content

Pruebas-de-Software/VerificacionVsValidacion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 

Repository files navigation

✅ Verificación & Validación

En desarrollo de software, es fundamental distinguir entre Validación y Verificación, ya que cada una aborda una dimensión distinta del aseguramiento de calidad.


✅ Validación

La validación consiste en asegurarse de que los requisitos correspondan efectivamente al problema a resolver. Es decir, busca comprobar que la aplicación sirve para el propósito con el cual fue solicitada.

¿Estamos resolviendo el problema correcto?

Este proceso se enfoca en detectar problemas en la especificación de requisitos y asegurar que el producto haga lo que se espera de él en la realidad del usuario.

🛠️ ¿Cómo se puede realizar la validación?

  • Contrastando los requisitos con las necesidades reales del usuario o cliente.
  • A través de entrevistas, feedback directo o simulaciones de uso.
  • Validando el alcance mediante escenarios de uso reales y casos de negocio.
  • Preguntando de forma reiterativa: ¿Esto es lo que realmente necesitan?

✅ Verificación

La verificación consiste en asegurarse de que el software cumple con los requisitos especificados. En otras palabras, se trata de confirmar que el producto corresponde a lo que se definió en su diseño y documentación.

¿Estamos resolviendo correctamente el problema?

La verificación demuestra que el producto se está haciendo como se dijo que se iba a hacer, siguiendo lo acordado previamente en los artefactos del proceso de desarrollo.

¿Cómo se puede realizar la verificación?

  • Contrastando artefactos entre sí (por ejemplo, diseño vs implementación, requisitos vs pruebas).
  • Ejecutando pruebas que permitan comprobar el cumplimiento de cada requisito.

🧪 Ejemplo:

// Ejemplo de función en Java
public int calculateDiscount(int price, String category) {
  // Lógica de ejemplo aquí
}

La función anteiro calcula un descuento basado en el precio y la categoría de producto. A simple vista, parece directa. Pero si queremos validar y verificar correctamente esta función, debemos formular una serie de preguntas.


✅ Validación: ¿Estamos resolviendo el problema correcto?

Asegurarse de tener las respuestas correctas a estas preguntas es parte de la validación del programa. Antes de implementar esta función, deberíamos responder preguntas como:

  1. ¿Cuáles son las categorías válidas? ¿"Electrónica", "Alimentos", "Ropa"? ¿Hay otras?
  2. ¿Cuál es el porcentaje de descuento para cada categoría? ¿Estas reglas pueden cambiar?
  3. ¿Se permiten precios negativos? ¿Qué hacer si el valor es 0?
  4. ¿El descuento se aplica sobre el precio neto o incluye impuestos?
  5. ¿Qué debe pasar si la categoría es nula o no válida?
  6. ¿Hay un tope máximo o mínimo para el descuento?
  7. ¿Cómo se comporta el sistema si el precio es muy alto o muy bajo?
  8. ¿Este cálculo se debe usar en contexto internacional con otras monedas?

Estas preguntas permiten validar que la lógica que estamos construyendo tenga sentido para el negocio y el contexto.


✅ Verificación: ¿Estamos resolviendo correctamente el problema?

Es importante tener en cuenta que sería literalmente imposible probar exhaustivamente cada combinación de entrada. Debemos escoger un conjunto verificable. Para verificar el correcto funcionamiento del código, se deben definir casos de prueba específicos:

ID Entrada Salida esperada Descripción
TC01 calculateDiscount(10000, "Electrónica") 9000 10% de descuento sobre electrónica
TC02 calculateDiscount(5000, "Alimentos") 4750 5% de descuento
TC03 calculateDiscount(2000, "Ropa") 1600 20% de descuento
TC04 calculateDiscount(-1000, "Electrónica") Error o 0 Valor negativo
TC05 calculateDiscount(1000, null) Error o 1000 Categoría no válida
TC06 calculateDiscount(0, "Ropa") 0 Precio cero
TC07 calculateDiscount(1000000, "Lujo") 1000000 Categoría desconocida (sin descuento)
TC08 calculateDiscount(1000, "ropa") Error o 1000 Case sensitivity
TC09 calculateDiscount(1000, "") Error o 1000 Categoría vacía
TC10 calculateDiscount(999999999, "Electrónica") Evaluar comportamiento extremo Límite superior

💻 Ejercicios asociados a Validación y Verificación

📅 Segundo semestre 2025

📦 Gestión de Entradas para Micro-Eventos

Requisito:

Una productora local nos ha solicitado una aplicación sencilla para gestionar las entradas de sus micro-eventos (charlas, talleres y shows pequeños). Nos piden algo práctico y funcional que les permita cargar eventos, vender y devolver entradas, y ver un resumen claro de lo que viene y de lo que ya está agotado. La aplicación debe ser simple de operar y estar protegida por un inicio de sesión básico.

Requerimientos:

CRUD de Eventos: Permitir crear, consultar, actualizar y eliminar eventos. Cada evento debe registrar nombre, descripción, fecha, categoría (por ejemplo, “Charla”, “Taller”, “Show”), precio de entrada (entero) y cupos disponibles. Gestión de Cupos: Permitir vender entradas (Simulación de venta. Disminuye cupos disponibles sin permitir ventas por sobre el cupo) y devolver/anular entradas (aumenta cupos disponibles). Filtrado y Búsqueda: Permitir filtrado de eventos. Generación de Reportes: Mostrar un resumen con: total de eventos registrados, suma de cupos disponibles en todos los eventos y eventos agotados.

Autenticación: Proteger el acceso con usuario y contraseña, de modo que solo usuarios autenticados puedan crear, editar, eliminar eventos y registrar ventas/devoluciones.

📄[>>Ver detalle caso]

📅 Primer semestre 2025

📦 Inventario Bodega

Requisito:

Un emprendedor nos ha solicitado una aplicación sencilla para gestionar su inventario de productos en la bodega de su negocio. Nos ha dicho que, con tanta tecnología, necesita algo práctico y funcional.

Requerimientos:

CRUD de Productos: Permitir a los usuarios agregar, consultar, actualizar y eliminar productos del inventario. Cada producto debe tener un nombre, descripción, cantidad disponible, precio unitario y categoría (por ejemplo, "Electrónica", "Ropa", "Alimentos", etc.). Gestión de Stock: Permitir actualizar la cantidad de productos cuando se vendan o se reciban nuevas unidades. Filtrado y Búsqueda Generación de Reportes: Mostrar un resumen con el total de productos en inventario, el valor total del inventario y los productos agotados. Autenticación: Proteger el acceso con un sistema de autenticación por nombre de usuario y contraseña.

📄[>>Ver detalle caso]

Mejores respuestas


📅 Segundo semestre 2024

📝 Gestión de Tareas

Requisito:

"Un cliente nos ha solicitado una aplicación para gestionar sus tareas, algo muy sencillo nos ha dicho, más en estos tiempos con tanta tecnología":

Gestión de Tareas: Desarrollar un sistema que permita a los usuarios crear, consultar, actualizar y eliminar tareas a través de la línea de comandos. Cada tarea debe tener un título, una descripción, una fecha de vencimiento, y una etiqueta que facilite la organización (por ejemplo, "urgente", "trabajo", "personal", otros).

Filtrado y Búsqueda: Incluir funcionalidades para que los usuarios puedan filtrar y buscar tareas en función de varios criterios, como la fecha de vencimiento, etiquetas o estado de la tarea (pendiente, en progreso, completada).

Gestión de Estados de Tareas: Implementar un sistema de gestión de estados para las tareas que permita a los usuarios marcar una tarea como "en progreso" o "completada". Las tareas completadas pueden ser archivadas y consultadas posteriormente.

Autenticación: Proteger el acceso al sistema con un mecanismo de autenticación mediante un nombre de usuario y contraseña.

📄[>>Ver detalle caso]

Mejores respuestas


📅 Primer semestre 2024

🔒 My Pass

Requisito:

Mypass es un programa que permite almacenar contraseñas de forma segura y generar contraseñas seguras. El programa permite al usuario crear una cuenta, iniciar sesión, agregar contraseñas, ver contraseñas guardadas y un generador de contraseñas. Las contraseñas se almacenan de forma encriptada en una base de datos. El programa cuenta con un menú de opciones que permite al usuario navegar por las diferentes funcionalidades del programa.

📄[>>Ver detalle caso]

Mejores respuestas


About

Conceptos de Validación y Verificación, problemas resueltos y documentación

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors