fbpx
Wikipedia

Pruebas de software

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.

Diagrama que en forma gráfica, evoca la situación en la cual las opiniones y/o evaluaciones se concretan a través de una multitud de evaluadores y aportantes (crowdsourced testing), trabajando en forma abierta y participativa (crowdsourcing).

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.

Definición

Un caso de pruebas es una breve declaración de algo que debería ser probado. Es el mecanismo, manual o automático, de verificar si el comportamiento del sistema es el deseado o no.[1]

Historia

El objetivo de las pruebas es presentar información sobre la calidad del producto a las personas responsables de este. 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 en el que se desarrolla.[2]

El ambiente ideal de las pruebas 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 tales. 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.

Proceso de Desarrollo de Software

Tenemos el proceso de desarrollo en cascada, se denomina de este modo, ya que a cada salida de una etapa cae en la siguiente, es decir, las etapas se llevan a cabo una a continuación de la otra. Una de las peculiaridades de este proceso, es que no está previsto volver a una etapa anterior, es decir si se olvidó relevar algún requerimiento al comienzo, no tiene una alternativa para considerar este caso. Este proceso supone cada etapa independiente de las etapas anteriores.

También tenemos el desarrollo iterativo y creciente, se tiene las mismas etapas que en el Proceso de Desarrollo en Cascada, sin embargo, en este proceso, la etapa de relevamiento se divide en distintos sub conjuntos,y cada uno de estos sub conjuntos se construye de la misma forma que con el ciclo de vida en cascada. Se van desarrollando por partes que luego se integran, una vez finalizadas las mismas.

Otro Proceso de Desarrollo que tenemos es el Iterativo, en este tenemos las mismas etapas de desarrollo que los procesos anteriores, pero trabajamos sobre el todo, no necesariamente conocemos al comienzo todos los detalles del producto que queremos construir.

Y por último tenemos el desarrollo ágil de software, este es un proceso iterativo e incremental, se caracteriza por contar con iteraciones cortas y por no tener fases lineales, tipo cascada en cada iteración. Existen distintas metodologías Ágiles, que entre las más conocidas y utilizadas encontramos "Scrum" y "XP: Extreme Programming".

Pruebas estáticas

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

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.

Pruebas contra Especificación (ESRE)

Antes de entender para que les sirve a los probadores beta trabajar con el documento de especificación de requerimientos, debemos saber qué son las especificaciones de requerimientos (ESRE).

Las Especificaciones de Requerimientos son un documento clave en el desarrollo de Software. Cuando consideramos los ciclos de vida clásicos, tiene la descripción completa de lo que va a hacer el sistema sin describir cómo lo va a hacer. Estos documentos tienen una estructura en forma de reporte bastante definida, poseen carátula, historial de cambios, introducción, definiciones, acrónimos y abreviaturas, especificación de requerimientos funcionales, especificación de requerimientos no funcionales y casos de uso.

Los probadores beta se guían en este documento para validar si el sistema se comporta de la manera que indican las ESRE. Contiene información detallada sobre los requisitos funcionales y no funcionales que el Cliente desea en el sistema. También se pueden ejecutar casos de pruebas a partir de las especificaciones de requerimientos ya que estos resultan muy útiles porque son sencillos de seguir y se conocen de antemano los posibles resultados.

Tipos de pruebas por su ejecución

Enfoques de pruebas

Clasificación de las pruebas según lo que verifican

Pruebas funcionales

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

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 pruebas de Integración, luego las de pruebas de sistema, las de humo, las alpha, las beta y finalmente las de pruebas 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

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

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 escritas en software libre, código abierto o software privativo.[4]​ Estas herramientas podrán ser utilizadas para diferentes tipos de pruebas como por ejemplo:

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

Herramientas en código abierto

  1. Herramientas de gestión de pruebas
  • Bugzilla Testopia
  • FitNesse
  • qaManager
  • qaBook
  • RTH.[5]
  • Salome-tmf
  • Squash TM
  • Test Environment Toolkit
  • TestLink
  • Testitool
  • XQual Studio
  • Radi-testdir
  • Data Generator
  1. Herramientas para pruebas funcionales
  • Selenium
  • Soapui
  • Watir
  • WatiN (Pruebas de aplicaciones web en .Net)
  • Capedit
  • Canoo WebTest
  • Solex
  • Imprimatur
  • SAMIE
  • ITP
  • WET
  • WebInject
  1. Herramientas para pruebas de carga y rendimiento
  • JMeter
  • Gatling
  • FunkLoad
  • FWPTT load testing
  • loadUI

Herramientas comerciales

Herramientas de gestión de pruebas

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

Herramientas para pruebas funcionales

  • BASSP testConfig/testExecutor
  • Internet Macros
  • QA Wizard
  • QuickTest Pro
  • Ranorex
  • Rational Robot
  • Sahi
  • Silk Test
  • SoapTest
  • Squish
  • Test Complete
  • vTest

Herramientas para pruebas de carga y rendimiento

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

Véase también

Referencias

  1. Federico Toledo Rodríguez (2014). «Introducción a las pruebas funcionales». Introducción a las Pruebas de Sistemas de Información. Consultado el 15 de octubre de 2019. Abstracta. ISBN 9-789974-993853. 
  2. Kaner, Cem (17 de noviembre de 2001). . context-driven-testing.com (Lessons Learned in Software Testing) (en inglés). Archivado desde el original el 17 de noviembre de 2001. Consultado el 3 de febrero de 2018. «There are good practices in context, but there are no best practices.» 
  3. Barrientos, Pablo Andrés (04 de 2014). Enfoque para pruebas de unidad basado en la generación aleatoria de objetos. p. 101. Consultado el 28 de abril de 2014. 
  4. (html). Pandora FMS (en francés). 24 de abril de 2019. Archivado desde el original el 18 de junio de 2019. Consultado el 18 de junio de 2019. 
  5. RTH - Requirements and Testing Hub

Enlaces externos

  • Nueva tendencia y posible futuro del testing: el Crowd Testing
  • Context-driven Testing
  • www.testingeducation.org
  • ISO/IEC/IEEE 29119 Pruebas de Software (Grupo de Trabajo de AENOR AEN/CTN71/SC7/GT26)


  •   Datos: Q188522
  •   Multimedia: Software testing

pruebas, software, este, artículo, sección, tiene, referencias, pero, necesita, más, para, complementar, verificabilidad, este, aviso, puesto, noviembre, 2018, pruebas, software, inglés, software, testing, investigaciones, empíricas, técnicas, cuyo, objetivo, . Este articulo o seccion tiene referencias pero necesita mas para complementar su verificabilidad Este aviso fue puesto el 27 de noviembre de 2018 Las pruebas de software en ingles software testing son las investigaciones empiricas y tecnicas cuyo objetivo es proporcionar informacion objetiva e independiente sobre la calidad del producto a la parte interesada o stakeholder Es una actividad mas en el proceso de control de calidad Diagrama que en forma grafica evoca la situacion en la cual las opiniones y o evaluaciones se concretan a traves de una multitud de evaluadores y aportantes crowdsourced testing trabajando en forma abierta y participativa crowdsourcing Las pruebas son basicamente un conjunto de actividades dentro del desarrollo de software Dependiendo del tipo de pruebas estas actividades podran ser implementadas en cualquier momento de dicho proceso de desarrollo Existen distintos modelos de desarrollo de software asi como modelos de pruebas A cada uno corresponde un nivel distinto de involucramiento en las actividades de desarrollo Indice 1 Definicion 2 Historia 3 Proceso de Desarrollo de Software 3 1 Pruebas estaticas 3 2 Pruebas dinamicas 4 Pruebas contra Especificacion ESRE 5 Tipos de pruebas por su ejecucion 6 Enfoques de pruebas 7 Clasificacion de las pruebas segun lo que verifican 7 1 Pruebas funcionales 7 1 1 Niveles de prueba 7 2 Pruebas no funcionales 8 Herramientas para realizar pruebas de software 8 1 Herramientas en codigo abierto 8 2 Herramientas comerciales 8 2 1 Herramientas de gestion de pruebas 8 2 2 Herramientas para pruebas funcionales 8 2 3 Herramientas para pruebas de carga y rendimiento 9 Vease tambien 10 Referencias 11 Enlaces externosDefinicion EditarUn caso de pruebas es una breve declaracion de algo que deberia ser probado Es el mecanismo manual o automatico de verificar si el comportamiento del sistema es el deseado o no 1 Historia EditarEl objetivo de las pruebas es presentar informacion sobre la calidad del producto a las personas responsables de este Las pruebas de calidad presentan los siguientes objetivos encontrar defectos o bugs aumentar la confianza en el nivel de calidad facilitar informacion para la toma de decisiones evitar la aparicion de defectos Teniendo esta afirmacion en mente la informacion que puede ser requerida es de lo mas variada Esto hace que el proceso de testing sea completamente dependiente del contexto en el que se desarrolla 2 El ambiente ideal de las pruebas 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 practicas como tales Toda practica puede ser ideal para una situacion pero completamente inutil o incluso perjudicial en otra Por esto las actividades tecnicas documentacion enfoques y demas elementos que condicionaran las pruebas a realizar deben ser seleccionadas y utilizadas de la manera mas eficiente segun contexto del proyecto Proceso de Desarrollo de Software EditarTenemos el proceso de desarrollo en cascada se denomina de este modo ya que a cada salida de una etapa cae en la siguiente es decir las etapas se llevan a cabo una a continuacion de la otra Una de las peculiaridades de este proceso es que no esta previsto volver a una etapa anterior es decir si se olvido relevar algun requerimiento al comienzo no tiene una alternativa para considerar este caso Este proceso supone cada etapa independiente de las etapas anteriores Tambien tenemos el desarrollo iterativo y creciente se tiene las mismas etapas que en el Proceso de Desarrollo en Cascada sin embargo en este proceso la etapa de relevamiento se divide en distintos sub conjuntos y cada uno de estos sub conjuntos se construye de la misma forma que con el ciclo de vida en cascada Se van desarrollando por partes que luego se integran una vez finalizadas las mismas Otro Proceso de Desarrollo que tenemos es el Iterativo en este tenemos las mismas etapas de desarrollo que los procesos anteriores pero trabajamos sobre el todo no necesariamente conocemos al comienzo todos los detalles del producto que queremos construir Y por ultimo tenemos el desarrollo agil de software este es un proceso iterativo e incremental se caracteriza por contar con iteraciones cortas y por no tener fases lineales tipo cascada en cada iteracion Existen distintas metodologias Agiles que entre las mas conocidas y utilizadas encontramos Scrum y XP Extreme Programming Pruebas estaticas Editar Son el tipo de pruebas que se realizan sin ejecutar el codigo de la aplicacion Puede referirse a la revision de documentos ya que no se hace una ejecucion de codigo Esto se debe a que se pueden realizar pruebas de escritorio con el objetivo de seguir los flujos de la aplicacion Pruebas dinamicas Editar Todas aquellas pruebas que para su ejecucion requieren la ejecucion de la aplicacion Las pruebas dinamicas permiten el uso de tecnicas de caja negra y caja blanca con mayor amplitud Debido a la naturaleza dinamica de la ejecucion de pruebas es posible medir con mayor precision el comportamiento de la aplicacion desarrollada Pruebas contra Especificacion ESRE EditarAntes de entender para que les sirve a los probadores beta trabajar con el documento de especificacion de requerimientos debemos saber que son las especificaciones de requerimientos ESRE Las Especificaciones de Requerimientos son un documento clave en el desarrollo de Software Cuando consideramos los ciclos de vida clasicos tiene la descripcion completa de lo que va a hacer el sistema sin describir como lo va a hacer Estos documentos tienen una estructura en forma de reporte bastante definida poseen caratula historial de cambios introduccion definiciones acronimos y abreviaturas especificacion de requerimientos funcionales especificacion de requerimientos no funcionales y casos de uso Los probadores beta se guian en este documento para validar si el sistema se comporta de la manera que indican las ESRE Contiene informacion detallada sobre los requisitos funcionales y no funcionales que el Cliente desea en el sistema Tambien se pueden ejecutar casos de pruebas a partir de las especificaciones de requerimientos ya que estos resultan muy utiles porque son sencillos de seguir y se conocen de antemano los posibles resultados Tipos de pruebas por su ejecucion EditarPruebas manuales Pruebas automaticasEnfoques de pruebas EditarPruebas de Caja blancaPruebas de Caja negraTesting aleatorio 3 Clasificacion de las pruebas segun lo que verifican EditarPruebas funcionales Editar Articulo principal Pruebas funcionales Una prueba funcional es una prueba basada en la ejecucion revision y retroalimentacion de las funcionalidades previamente disenadas para el software requisitos funcionales Hay distintos tipos como por ejemplo Pruebas unitarias Pruebas de componentes Pruebas de integracion Pruebas de sistema Pruebas de humo Pruebas alpha Pruebas beta Pruebas de aceptacion Pruebas de regresion Niveles de prueba Editar Podemos considerar el proceso de pruebas funcionales como un proceso donde se va probando inicialmente lo de mas 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 pruebas de Integracion luego las de pruebas de sistema las de humo las alpha las beta y finalmente las de pruebas de aceptacion Las pruebas de regresion se puede considerar como la ejecucion normalmente automatica de las pruebas ya realizadas hasta el momento Pruebas no funcionales Editar Una prueba no funcional es una prueba cuyo objetivo es la verificacion de un requisito que especifica criterios que pueden usarse para juzgar la operacion de un sistema requisitos no funcionales como por ejemplo la disponibilidad accesibilidad usabilidad mantenibilidad seguridad rendimiento Podemos clasificar las pruebas no funcionales segun el tipo de requisito no funcional que abarcan Pruebas de compatibilidad Pruebas de seguridad Pruebas de Estres Pruebas de usabilidad Pruebas de rendimiento Pruebas de internacionalizacion y localizacion Pruebas de escalabilidad Pruebas de mantenibilidad Pruebas de instalabilidad Pruebas de portabilidadHerramientas para realizar pruebas de software EditarEl control de la calidad de software lleva consigo aplicativos que permiten realizar pruebas autonomas y masivas permitiendo asi la verificacion desde el punto de vista estatico y de caja blanca es decir pruebas donde se analiza el software sin ejecutar el software mediante el codigo fuente del mismo Podemos encontrar herramientas escritas en software libre codigo abierto o software privativo 4 Estas herramientas podran ser utilizadas para diferentes tipos de pruebas como por ejemplo Herramientas de gestion de pruebas Herramientas para pruebas funcionales Herramientas para pruebas de carga y rendimientoHerramientas en codigo abierto Editar Herramientas de gestion de pruebasBugzilla Testopia FitNesse qaManager qaBook RTH 5 Salome tmf Squash TM Test Environment Toolkit TestLink Testitool XQual Studio Radi testdir Data Generator Herramientas para pruebas funcionalesSelenium Soapui Watir WatiN Pruebas de aplicaciones web en Net Capedit Canoo WebTest Solex Imprimatur SAMIE ITP WET WebInject Herramientas para pruebas de carga y rendimientoJMeter Gatling FunkLoad FWPTT load testing loadUI Herramientas comerciales Editar Herramientas de gestion de pruebas Editar ApTest Manager HP Quality Center ALM PractiTest QA Complete QAS Test Case Studio qaBook SMARTS Silk Central SpiraTest T Plan Professional TestLog Zephyr Herramientas para pruebas funcionales Editar BASSP testConfig testExecutor Internet Macros QA Wizard QuickTest Pro Ranorex Rational Robot Sahi Silk Test SoapTest Squish Test Complete vTest Herramientas para pruebas de carga y rendimiento Editar JMeter ANTS Advanced NET Testing System Forecast HP LoadRunner IBM Rational Performance Test RPT Load Impact LoadStorm NeoLoad Silk Performer WebLOAD Professional Webserver Stress ToolVease tambien EditarIngenieria de software Automatizacion de pruebas Pruebas de humo informatica Pruebas de remojo informatica Referencias Editar Federico Toledo Rodriguez 2014 Introduccion a las pruebas funcionales Introduccion a las Pruebas de Sistemas de Informacion Consultado el 15 de octubre de 2019 Abstracta ISBN 9 789974 993853 Kaner Cem 17 de noviembre de 2001 The Seven Basic Principles of the Context Driven School context driven testing com Lessons Learned in Software Testing en ingles Archivado desde el original el 17 de noviembre de 2001 Consultado el 3 de febrero de 2018 There are good practices in context but there are no best practices Barrientos Pablo Andres 04 de 2014 Enfoque para pruebas de unidad basado en la generacion aleatoria de objetos p 101 Consultado el 28 de abril de 2014 8 outils de test en 2018 html Pandora FMS en frances 24 de abril de 2019 Archivado desde el original el 18 de junio de 2019 Consultado el 18 de junio de 2019 RTH Requirements and Testing HubEnlaces externos EditarNueva tendencia y posible futuro del testing el Crowd Testing Context driven Testing www testingeducation org ISO IEC IEEE 29119 Pruebas de Software Grupo de Trabajo de AENOR AEN CTN71 SC7 GT26 METRICA v3 en el CSAE Datos Q188522 Multimedia Software testingObtenido de https es wikipedia org w index php title Pruebas de software amp oldid 135845546, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos