Top Qs
Línea de tiempo
Chat
Contexto
Pruebas de software
investigación realizada para proporcionar a las partes interesadas información sobre la calidad del producto o servicio de software bajo prueba y permitir que la empresa comprenda los riesgos de la implementación de software De Wikipedia, la enciclopedia libre
Remove ads
Las pruebas de software (en inglés, software testing) comprenden un conjunto de actividades técnicas y empíricas que verifican que un programa de software cumple los requisitos especificados y funciona según lo previsto. Su propósito es detectar fallos (bugs), errores o discrepancias, proporcionando retroalimentación que permita corregirlos o prevenirlos. Forman parte esencial del proceso de desarrollo de software y se relacionan estrechamente con las prácticas de control de calidad.[1]

Las pruebas se realizan en distintas etapas del ciclo de vida del desarrollo, de acuerdo con la metodología empleada, y adoptan diversos modelos y niveles de integración. Esta variedad ofrece flexibilidad para planificar y ejecutar actividades de prueba que se ajusten al contexto, la criticidad del producto y los objetivos de cada proyecto.
Remove ads
Un caso de prueba (del inglés, test case) es una especificación detallada que reúne los valores de entrada, las precondiciones, el procedimiento de ejecución, los resultados esperados y las poscondiciones necesarias para comprobar un objetivo concreto —por ejemplo, recorrer una ruta del programa o verificar un requisito funcional o no funcional—.[1]
Cada caso de prueba constituye el mecanismo, manual o automatizado, mediante el cual se decide si el comportamiento observado del sistema coincide con el esperado y, por tanto, si la prueba se aprueba o se rechaza. Los estándares de documentación de pruebas, como IEEE 829-2008 y su sucesor ISO/IEC/IEEE 29119-4, proporcionan plantillas y lineamientos formales para la redacción de casos de prueba.[2][3]
Historia
El objetivo fundamental de las pruebas es aportar información objetiva sobre la calidad del producto para que las personas responsables puedan tomar decisiones informadas. Entre los objetivos habituales se incluyen la detección de defectos, el aumento de la confianza en el nivel de calidad, la provisión de datos para la toma de decisiones y la prevención de errores futuros.[4]
La naturaleza y el alcance de la información requerida varían entre proyectos, por lo que el proceso de prueba depende en gran medida del contexto.[5] En consecuencia, las prácticas, la documentación y las técnicas de prueba deben seleccionarse y adaptarse al entorno específico: no existen «mejores prácticas» universales, sino buenas prácticas en contexto.
La independencia entre el equipo de pruebas y el de desarrollo contribuye a la objetividad de los resultados y minimiza sesgos potenciales.[cita requerida]
Proceso de desarrollo de software
Los enfoques de desarrollo condicionan el momento y la forma en que se realizan las pruebas:
- Desarrollo en cascada: las etapas se suceden de manera secuencial y, en teoría, sin retrocesos. Las pruebas se sitúan tradicionalmente al final del ciclo, lo que puede dificultar la corrección temprana de errores.
- Desarrollo iterativo e incremental: divide los requisitos en subconjuntos y los construye en ciclos sucesivos; cada incremento incluye su propio conjunto de pruebas.
- Desarrollo iterativo (proceso espiral, por ejemplo): permite revisar los requisitos a lo largo de todo el ciclo, incorporando pruebas en cada iteración.
- Métodos ágiles: procesos iterativos e incrementales con iteraciones cortas que integran pruebas continuas. Entre las metodologías más extendidas se encuentran Scrum y Extreme Programming.
Pruebas estáticas
Son las pruebas que se realizan sin ejecutar el código fuente. Incluyen la revisión de documentos, inspecciones de diseño y análisis estático de código.
Pruebas dinámicas
Requieren la ejecución de la aplicación. Permiten aplicar técnicas de caja negra y caja blanca, y medir con precisión el comportamiento del sistema durante su funcionamiento.
Pruebas contra especificación (ESRE)
Las Especificaciones de Requerimientos de Software (ESRE) describen de forma completa lo que el sistema debe hacer, sin detallar el cómo. Sirven de base para que los probadores (incluidos los probadores beta) validen si el software se comporta conforme a los requisitos funcionales y no funcionales definidos. A partir de las ESRE se pueden derivar casos de prueba detallados.
Tipos de pruebas por su ejecución
- Pruebas manuales
- Pruebas automáticas
Enfoques de pruebas
- Pruebas de caja blanca
- Pruebas de caja negra
- Pruebas exploratorias o aleatorias[6]
Clasificación de las pruebas según lo que verifican
Pruebas funcionales
Evalúan funciones específicas del software basadas en los requisitos funcionales. Entre los tipos más comunes se incluyen:
- Pruebas unitarias
- Pruebas de componentes
- Pruebas de integración
- Pruebas de sistema
- Pruebas de humo
- Pruebas alpha
- Pruebas beta
- Pruebas de aceptación
- Pruebas de regresión
Niveles de prueba
El flujo habitual va desde las pruebas unitarias, pasando por la integración y el sistema, hasta las pruebas de aceptación. Las pruebas de regresión consisten en volver a ejecutar casos existentes tras una modificación para comprobar que no se han introducido defectos.
Pruebas no funcionales
Verifican requisitos de calidad tales como disponibilidad, usabilidad, seguridad o rendimiento.[cita requerida]
- Pruebas de compatibilidad
- Pruebas de seguridad
- Pruebas de estrés
- Pruebas de usabilidad
- Pruebas de rendimiento
- Pruebas de internacionalización y localización
- Pruebas de escalabilidad
- Pruebas de mantenibilidad
- Pruebas de instalabilidad
- Pruebas de portabilidad
Herramientas para realizar pruebas de software
Las pruebas cuentan con numerosas herramientas —libres, de código abierto o propietarias— que abarcan gestión de pruebas, automatización funcional y pruebas de carga, entre otros ámbitos.[7]
Herramientas en código abierto
- Gestión de pruebas
- Bugzilla Testopia
- FitNesse
- qaManager
- qaBook
- RTH[8]
- Salome-tmf
- Squash TM
- Test Environment Toolkit
- TestLink
- Testitool
- XQual Studio
- Pruebas funcionales
- Pruebas de carga y rendimiento
- JMeter
- Gatling
- FunkLoad
- FWPTT
- loadUI
Herramientas comerciales
Gestión de pruebas
- ApTest Manager
- HP Quality Center/ALM
- PractiTest
- QA Complete
- SMARTS
- Silk Central
- SpiraTest
- TestLog
- Zephyr
Pruebas funcionales
- BASSP testExecutor
- Internet Macros
- QA Wizard
- QuickTest Pro
- Ranorex
- Rational Robot
- Sahi
- Silk Test
- Squish
- TestComplete
Pruebas de carga y rendimiento
- JMeter
- HP LoadRunner
- IBM Rational Performance Test
- Load Impact
- NeoLoad
- Silk Performer
- WebLOAD Professional
Véase también
- Ingeniería de software
- Automatización de pruebas
- Pruebas de humo (informática)
- Pruebas de remojo (informática)
Referencias
Enlaces externos
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads