Testing de búsqueda
La búsqueda es una de las funcionalidades más usadas. Los usuarios esperan que funcione rápido, retorne resultados relevantes y maneje sus queries de forma elegante.
Tests funcionales de búsqueda
| Caso de prueba | Input | Comportamiento esperado |
|---|---|---|
| Coincidencia exacta | “iPhone 15 Pro” | Producto aparece en resultados |
| Coincidencia parcial | “iPhone” | Todos los productos iPhone aparecen |
| Sin resultados | “xyznonexistent123” | Mensaje amigable con sugerencias |
| Búsqueda vacía | (string vacío) | Mostrar todos los resultados o solicitar input |
| Caracteres especiales | <script>alert(1)</script> | Sanitizado, sin XSS |
| SQL injection | ' OR 1=1 -- | Manejado de forma segura |
| Query muy largo | 1000+ caracteres | Manejado correctamente |
Relevancia de búsqueda
Los resultados deben ordenarse por relevancia:
- Coincidencias exactas en título primero
- Coincidencias parciales en título segundo
- Coincidencias en descripción/contenido tercero
Filtros de búsqueda
Si la búsqueda soporta filtros (categoría, rango de precio, fecha):
- Aplicar un filtro — ¿los resultados se actualizan?
- Aplicar múltiples filtros — ¿se combinan correctamente?
- Remover un filtro — ¿los resultados vuelven correctamente?
- ¿Los conteos de filtros son precisos?
- ¿La URL se actualiza con el estado del filtro?
Testing de paginación
Tests principales de paginación
| Caso de prueba | Esperado |
|---|---|
| Primera página | Items 1-N, Anterior deshabilitado, Siguiente habilitado |
| Página del medio | Items correctos, ambos botones habilitados |
| Última página | Items restantes, Siguiente deshabilitado |
| Clic en número de página | Navega a página correcta |
| Total = 0 | Sin controles de paginación |
| Número negativo | Redirigir a página 1 |
| Página más allá del total | Mostrar última página o estado vacío |
Testing de ordenamiento
Verificación básica de sort
Para cada columna ordenable:
- Orden ascendente: Items en orden A-Z o bajo-a-alto
- Orden descendente: Items en orden Z-A o alto-a-bajo
- Indicador visual: Flecha muestra dirección actual
- Sort predeterminado: Carga inicial muestra orden esperado
Casos límite de sort
| Escenario | Qué verificar |
|---|---|
| Valores null/vacíos | ¿Dónde aparecen? ¿Primero? ¿Último? |
| Valores idénticos | ¿Se aplica sort secundario? |
| Números como strings | “2” vs. “10” — ¿numérico o alfabético? |
| Mayúsculas/minúsculas | “apple” vs. “Banana” — ¿sensible a case? |
Ejercicio práctico
Auditoría completa de funcionalidad
Realiza una auditoría integral:
- Tests positivos: Ejecuta flujos estándar y verifica resultados
- Tests negativos: Inputs inválidos, valores límite, condiciones de error
- Tests de integración: Flujo de datos entre componentes relacionados
- Tests de seguridad: Bypass de validación, intentos de acceso no autorizado
- Tests de performance: Tiempos de respuesta, comportamiento con red lenta
Documenta tus hallazgos
| # | Caso | Pasos | Esperado | Real | Estado | Severidad |
|---|---|---|---|---|---|---|
| 1 | [Descripción] | [Pasos] | [Esperado] | [Real] | Pasa/Falla | Alta/Media/Baja |
Errores comunes
- Consistencia de datos después de errores: ¿Los datos quedan consistentes?
- Botón atrás: ¿Resultados inesperados al presionar atrás?
- Modificación concurrente: Dos usuarios modificando los mismos datos
- Estados vacíos: Comportamiento sin datos
- Volumen máximo: Comportamiento con grandes cantidades de datos
Tips profesionales
Tip 1: Prueba con datos realistas incluyendo caracteres especiales y múltiples idiomas.
Tip 2: Enfócate más en los caminos infelices — ahí QA entrega más valor.
Tip 3: Mantén un checklist personal de bugs. Los patrones se repiten entre proyectos.
Puntos clave
- Testing sistemático cubre aspectos funcionales, de integración, seguridad y performance
- Casos negativos revelan más bugs que el testing positivo solo
- Verifica tanto UI como datos subyacentes
- Documenta con pasos de reproducción claros
- Construye checklists personales basados en patrones descubiertos