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

Pruebas de software
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]

Thumb
Diagrama que ilustra cómo, en las pruebas basadas en multitudes (crowdsourced testing), la evaluación recae en un gran número de colaboradores mediante un esquema abierto y participativo (crowdsourcing).

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

Definición

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

Enfoques de pruebas

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:

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]

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

  1. Gestión de pruebas
  • Bugzilla Testopia
  • FitNesse
  • qaManager
  • qaBook
  • RTH[8]
  • Salome-tmf
  • Squash TM
  • Test Environment Toolkit
  • TestLink
  • Testitool
  • XQual Studio
  1. Pruebas funcionales
  1. 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

Referencias

Enlaces externos

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads