Pruebas de software

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Las pruebas de software (en inglés software testing) son las investigaciones empíricas y técnicas cuyo objetivo es proporcionar información objetiva e independiente sobre la calidad del producto a la parte interesada o stakeholder. Es una actividad más en el proceso de control de calidad.

Las pruebas son básicamente un conjunto de actividades dentro del desarrollo de software. Dependiendo del tipo de pruebas, estas actividades podrán ser implementadas en cualquier momento de dicho proceso de desarrollo. Existen distintos modelos de desarrollo de software, así como modelos de pruebas. A cada uno corresponde un nivel distinto de involucramiento en las actividades de desarrollo.

Historia[editar]

El objetivo de las pruebas es presentar información sobre la calidad del producto a las personas responsables de éste. Las pruebas de calidad presentan los siguientes objetivos: encontrar defectos o bugs, aumentar la confianza en el nivel de calidad, facilitar información para la toma de decisiones, evitar la aparición de defectos.

Teniendo esta afirmación en mente, la información que puede ser requerida es de lo más variada. Esto hace que el proceso de testing sea completamente dependiente del contexto[1] en el que se desarrolla.

El ambiente ideal de las pruebas de testing es aquel que es independiente del desarrollo del software, de esta manera se logra objetividad en las pruebas.

A pesar de lo que muchos promueven, no existen las "mejores prácticas" como tal. Toda práctica puede ser ideal para una situación pero completamente inútil o incluso perjudicial en otra.

Por esto, las actividades, técnicas, documentación, enfoques y demás elementos que condicionarán las pruebas a realizar, deben ser seleccionadas y utilizadas de la manera más eficiente según contexto del proyecto.

Pruebas estáticas[editar]

Son el tipo de pruebas que se realizan sin ejecutar el código de la aplicación.

Puede referirse a la revisión de documentos, ya que no se hace una ejecución de código. Esto se debe a que se pueden realizar "pruebas de escritorio" con el objetivo de seguir los flujos de la aplicación.

Pruebas dinámicas[editar]

Todas aquellas pruebas que para su ejecución requieren la ejecución de la aplicación.

Las pruebas dinámicas permiten el uso de técnicas de caja negra y caja blanca con mayor amplitud. Debido a la naturaleza dinámica de la ejecución de pruebas es posible medir con mayor precisión el comportamiento de la aplicación desarrollada.

Tipos de pruebas[editar]

Hay todo tipo de pruebas, pero nos centraremos en tres de ellas:

Pruebas de Compatibilidad[editar]

Son las pruebas que se realizarán en un software o aplicación determinado y que comprobarán que tu desarrollo es compatible con todos los navegadores de Internet y todos los sistemas convenientes. Estas pruebas son realmente importantes para que tu producto llegue a todos los usuarios que deberían de llegar y que todo el mundo pueda utilizarlo con lo que disponga en su equipo informático.

Pruebas de regresión[editar]

Se evalúa el correcto funcionamiento del software desarrollado frente a evoluciones o cambios funcionales. El propósito de éstas es asegurar que los casos de prueba que ya habían sido probados y fueron exitosos permanezcan así. Se recomienda que este tipo de pruebas sean automatizadas para reducir el tiempo y esfuerzo en su ejecución.

Pruebas de Integración[editar]

Es el nivel de pruebas posterior a las pruebas modulares de los componentes de un sistema. Se centra principalmente en probar la comunicación entre los componentes de un mismo sistema, comunicación entre sistemas o entre hardware y software.

Tipos de pruebas por su ejecución[editar]

Enfoques de pruebas[editar]

Niveles de pruebas[editar]

Pruebas funcionales[editar]

Pruebas no funcionales[editar]

Véase también[editar]

Podemos encontrar herramientas Open Source (gratuitas) o Comerciales (de paga). Estas herramientas podran ser utilizadas para diferentes tipos de pruebas como:

  1. Herramientas de gestión de pruebas
  2. Herramientas para pruebas funcionales
  3. Herramientas para pruebas de carga y rendimiento

Herramientas Open Source:

1) Herramientas de gestión de pruebas

    • Bugzilla Testopia
    • FitNesse
    • qaManager
    • qaBook
    • RTH (open source)
    • Salome-tmf
    • Squash TM
    • Test Environment Toolkit
    • TestLink
    • Testitool
    • XQual Studio
    • Radi-testdir
    • Data Generator

2) Herramientas para pruebas funcionales

    • Selenium
    • Soapui
    • Watir (Pruebas de aplicaciones web en Ruby)
    • WatiN (Pruebas de aplicaciones web en .Net)
    • Capedit
    • Canoo WebTest
    • Solex
    • Imprimatur
    • SAMIE
    • ITP
    • WET
    • WebInject

3) Herramientas para pruebas de carga y rendimiento

    • FunkLoad
    • FWPTT load testing
    • loadUI
    • jmeter

Herramientas comerciales:

1) Herramientas de gestión de pruebas

    • HP Quality Center/ALM 
    • QA Complete 
    • qaBook
    • T-Plan Professional
    • SMARTS 
    • QAS.Test Case Studio 
    • PractiTest 
    • SpiraTest 
    • TestLog
    • ApTest Manager 
    • Zephyr

2) Herramientas para pruebas funcionales

    • QuickTest Pro 
    • Rational Robot 
    • Sahi 
    • SoapTest 
    • Test Complete 
    • QA Wizard 
    • Squish 
    • vTest 
    • Internet Macros 

3) Herramientas para pruebas de carga  y rendimiento

    • HP LoadRunner
    • LoadStorm
    • NeoLoad
    • WebLOAD Professional
    • Forecast
  • ANTS – Advanced .NET Testing System
  • Webserver Stress Tool
  • Load Impact

Referencias[editar]

  1. http://context-driven-testing.com/
  2. Barrientos, Pablo Andrés (25 de abril de 2014). Enfoque para pruebas de unidad basado en la generación aleatoria de objetos. p. 101. Consultado el 28 de abril de 2014. 

Enlaces externos[editar]