Pruebas de software

De Wikipedia, la enciclopedia libre
(Redirigido desde «Testeo de software»)
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 por su ejecución[editar]

Enfoques de pruebas[editar]

Clasificación de las pruebas según lo que verifican[editar]

Pruebas funcionales[editar]

Una prueba funcional es una prueba basada en la ejecución, revisión y retroalimentación de las funcionalidades previamente diseñadas para el software (requisitos funcionales). Hay distintos tipos como por ejemplo:

Niveles de prueba[editar]

Podemos considerar el proceso de pruebas funcionales como un proceso donde se va probando inicialmente lo de más bajo nivel y se van integrando y probando paulatinamente componentes hasta lograr un sistema completo totalmente probado. Por eso se dice que hay distintos niveles de prueba. Se empieza por las pruebas unitarias, luego las integrales, luego las de pruebas de sistema, las de humo, las alpha, las beta y finalmente las de aceptación.

Las pruebas de regresión se puede considerar como la ejecución (normalmente automática) de las pruebas ya realizadas hasta el momento.

Pruebas no funcionales[editar]

Una prueba no funcional es una prueba cuyo objetivo es la verificación de un requisito que especifica criterios que pueden usarse para juzgar la operación de un sistema (requisitos no funcionales) como por ejemplo la disponibilidad, accesibilidad, usabilidad, mantenibilidad, seguridad, rendimiento. Podemos clasificar las pruebas no funcionales según el tipo de requisito no funcional que abarcan:

Herramientas para realizar pruebas de software[editar]

El control de la calidad de software lleva consigo aplicativos que permiten realizar pruebas autónomas y masivas permitiendo así la verificación desde el punto de vista estático y de caja blanca, es decir pruebas donde se analiza el software sin ejecutar el software mediante el código fuente del mismo. Podemos encontrar herramientas Open Source (libres) o Comerciales (de pago). Estas herramientas podrán 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[editar]

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
    • WatiN (Pruebas de aplicaciones web en .Net)
    • Capedit
    • Canoo WebTest
    • Solex
    • Imprimatur
    • SAMIE
    • ITP
    • WET
    • WebInject

3) Herramientas para pruebas de carga y rendimiento

    • JMeter
    • Gatling
    • FunkLoad
    • FWPTT load testing
    • loadUI

Herramientas comerciales[editar]

1) Herramientas de gestión de pruebas

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

2) Herramientas para pruebas funcionales

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

3) Herramientas para pruebas de carga y rendimiento

    • HP LoadRunner
    • IBM Rational Performance Test (RPT)
    • LoadStorm
    • NeoLoad
    • WebLOAD Professional
    • Forecast
    • ANTS – Advanced .NET Testing System
    • Webserver Stress Tool
    • Load Impact
    • Silk Performer

Véase también[editar]

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]