Tipos de pruebas de software

En este artículo, puede encontrar una gran cantidad de información útil sobre los tipos y herramientas de prueba de software, que se utilizan durante sus implementaciones.

¿Qué es un tipo de prueba de software?

Hoy en día, no existe una definición generalmente aceptada del «tipo de prueba de software». No es infrecuente que los métodos, niveles o incluso las técnicas de diseño de prueba se definan como el tipo de prueba. Por ejemplo, a veces, las pruebas de caja blanca, las pruebas de integración o incluso las pruebas de límites se consideran tipos de prueba.

Es necesario referirse a fuentes oficiales para evitar interpretaciones ambiguas. La Junta Internacional de Calificación de Pruebas de Software (ISTQB) es la organización internacional respetable que ofrece certificaciones en pruebas de software, que son reconocidas en todo el mundo.

De acuerdo con la definición de ISTQB, los tipos de prueba son “Medios para definir claramente el objetivo de un cierto nivel para un programa o proyecto”. El probador se centra en un objetivo de prueba particular durante la ejecución del caso de prueba. Dependiendo de sus objetivos, hay cuatro tipos de pruebas de software:

  • Pruebas funcionales
  • Pruebas no funcionales
  • Pruebas estructurales
  • Pruebas relacionadas con el cambio

Por supuesto, hay muchos subtipos de pruebas. Puedes verlos en la imagen de abajo:

tipos de pruebas de software
Entonces, sepamos más sobre todos los tipos de pruebas.

Pruebas funcionales

Las pruebas funcionales verifican que cada función de la aplicación de software funciona de acuerdo con la especificación de requisitos. Pruebas funcionales muestra “Lo que hace el sistema”. El objetivo de esta prueba es verificar si el sistema es funcionalmente perfecto.

Cinco pasos deben tenerse en cuenta en las pruebas funcionales:

  • Preparación de datos de prueba basados en las especificaciones de funciones.
  • Los requisitos del negocio son las entradas a las pruebas funcionales.
  • Descubrir el resultado de las funciones basadas en especificaciones funcionales;
  • La ejecución de casos de prueba.
  • Observe las salidas reales y esperadas.

Hay dos perspectivas en las que la funcionalidad de prueba se puede hacer desde la prueba basada en requisitos y

Pruebas basadas en procesos de negocio.

Pruebas basadas en requisitos Se realiza en estricta conformidad con los requisitos definidos.

Pruebas basadas en procesos de negocio Se realiza de acuerdo con el conocimiento basado en el uso comercial diario del sistema.

Ventajas de las pruebas funcionales:

  • Las pruebas funcionales simulan el uso real del sistema.
  • Se ejecuta en las condiciones cercanas a las del cliente.
  • No se realizan suposiciones de la estructura del sistema al proporcionar pruebas funcionales.
  • Es fácil hacer pruebas manuales.

Limitaciones de las pruebas funcionales:

  • Existe la alta posibilidad de pruebas redundantes.
  • Los errores lógicos en el software podrían perderse al proporcionar pruebas funcionales.

Es fácil encontrar y utilizar herramientas para pruebas funcionales. Los más conocidos son: Selenio (aplicación web y de escritorio), Robotium (Aplicación Android), Proyecto de prueba de Linux, JUYIT Sprinter de Hewlett Packard Entreprise (prueba manual), Navegador de navegación (Pruebas tanto automatizadas como manuales), Usuariosnap (prueba manual).

Tipos de pruebas no funcionales

Tipos de pruebas no funcionales Se ocupan de los requisitos no funcionales. Las pruebas no funcionales ayudan a estimar la preparación de un sistema de acuerdo con los diferentes criterios que no están cubiertos por las pruebas funcionales. A diferencia de las pruebas funcionales, muestra “Qué bueno funciona el sistema”.
Consideremos la variedad de subtipos de pruebas no funcionales.

Pruebas de interfaz de usuario (UI) tiene como objetivo garantizar que la interfaz gráfica de usuario de la aplicación cumpla con las especificaciones. Esto ayuda a evaluar elementos de diseño como el diseño, colores, fuentes, tamaños de fuente, etiquetas, cuadros de texto, formato de texto, títulos, botones, listas, iconos, enlaces y contenido.

Enfoques para la prueba de la interfaz de usuario: el manual, registro y respuesta, basado en el modelo.

Las herramientas y marcos especiales más populares para la prueba de UI: FitNesse, iMacros, IU codificada, Jubula LoadUI.
Pruebas de experiencia de usuario (UX) tiene como objetivo verificar la interacción del cliente con los productos y servicios de la compañía. En realidad, UX es mucho más que la interfaz visual de su producto. Contiene:

  • Las impresiones que el cliente retira de la interacción con el producto o servicio.
  • El proceso que debe seguir el cliente para descubrir el producto o servicio de la compañía.
  • La secuencia de acciones que realiza el cliente a medida que interactúa con la interfaz.

Las herramientas y marcos especiales para pruebas de UX: Usabilla, Omnigraffle, Visual Web Optimizer, UXPin, Huevo loco.
Pruebas de almacenamiento verifica la aplicación bajo prueba, almacena los datos relevantes en los directorios correctos y tiene suficiente espacio para evitar la terminación inesperada debido a un espacio en disco insuficiente. Ayuda a determinar si la aplicación utiliza o no más memoria que la que se estima que ocupa el espacio en disco puede causar un tiempo de inactividad significativo.

Las herramientas se utilizan a menudo para pruebas de almacenamiento: HCIbench, Iometer, Utilidad Diskspd.
Pruebas operativas tiene como objetivo evaluar un sistema o componente en su entorno operativo. Al usarlo, podemos garantizar el cumplimiento del sistema y los componentes en el entorno operativo estándar de la aplicación.

Las pruebas operativas están relacionadas con el comportamiento de la implementación del sistema. Estas pruebas se centran principalmente en la preparación operativa del sistema, que se supone imita el entorno de producción.

Pruebas de seguridad tiene como objetivo garantizar que el sistema de información proteja los datos y mantenga la funcionalidad según lo previsto. Pruebas de penetración y pruebas de vulnerabilidad. Son las especies de tipos de pruebas de seguridad.

Pruebas de penetración es la simulación de ataque de fuente maliciosa, que permite evaluar la seguridad de un sistema informático o red.

Pruebas de vulnerabilidad tiene como objetivo evaluar la cantidad de riesgos involucrados en el sistema para reducir la probabilidad del evento. Ayuda a prevenir problemas que pueden afectar la integridad y estabilidad de la aplicación.

Las herramientas como Retina CS Community, OWASP Zed Attack Proxy, Veracode, Google Nogotofail, y Mapa SQL Se utilizan a menudo para pruebas de seguridad.

Pruebas de configuración realizado para verificar el sistema con cada una de las configuraciones de software y hardware compatibles:

  • Configuración del sistema operativo: Win 7 32 bit / 64 bit, Win 8 32 bit / 64 bit, Win 7 32 bit / 64 bit, Win 8 32 bit / 64 bit.
  • Configuración de la base de datos: Oracle, DB2, MySql, MSSQL Server, Sybase.
  • Configuración del navegador: IE 10, IE 11, Mozilla Firefox, Google Chrome.

Hay diferentes tipos de pruebas de configuración, tales como Pruebas de conversión, pruebas en varios navegadores, pruebas de portabilidad binariayPruebas multiplataforma.

Prueba de conversión asegura la conversión correcta de los datos de los sistemas existentes para su uso en sistemas de reemplazo.

Prueba de navegador cruzado realizado para verificar el trabajo correcto de la aplicación o el sistema en diferentes configuraciones de navegador: Mozilla Firefox, Google Chrome, Internet Explorer y Opera, etc.

A diferencia de las pruebas de navegador cruzado, Pruebas multiplataforma tiene como objetivo evaluar el trabajo de la aplicación en diferentes sistemas operativos: Windows, iOS / Mac OS, Linux, Android y BlackBerry, etc.

Pruebas de portabilidad binaria ayuda a evaluar la portabilidad del software mediante la ejecución del software en diferentes plataformas y entornos. Se utiliza para confirmar una especificación de Interfaz binaria de aplicación (ABI).

Las herramientas principales que se utilizan a menudo para todo tipo de pruebas de configuración: BrowserStack, CrossBrowserTesting por Smart Bear, Tornasol, Navegador, Rational Clearcase de IBM,  Ghostlab.
Pruebas de localización realizado para adaptar una aplicación globalizada a una cultura / localidad particular. Este proceso implica la traducción de todas las cadenas de idioma nativo al idioma de destino y la personalización de la GUI para que sea adecuado para el mercado objetivo. Pruebas de globalización y Pruebas de internacionalización Son de su tipo.

Pruebas de globalización verifica la funcionalidad adecuada del producto con cualquiera de las configuraciones culturales / locales usando cada tipo de entrada internacional posible.

Pruebas de internacionalización Verifica la correcta externalización de contenido en diferentes idiomas y ubicaciones.

La localización se realiza generalmente utilizando una combinación de recursos internos, contratistas independientes y servicios de alcance completo de una compañía de localización. Aquí hay algunas herramientas para proporcionar pruebas de localización :berenjena, Babylon.NET por Redpin, y gato inteligente.
Pruebas de rendimiento tiene la intención de determinar cómo funciona un sistema en términos de capacidad de respuesta y estabilidad bajo una carga determinada. Los tipos de pruebas de rendimiento: Pruebas de estrés, pruebas de carga, pruebas de estabilidad, pruebas de volumen, pruebas de concurrencia, pruebas de escalabilidad, pruebas de resistencia, etc.
Estimaciones de pruebas de estrés el comportamiento de un sistema en o más allá de los límites de su carga de trabajo anticipada.

Prueba de carga Realizado para evaluar el comportamiento de un sistema al aumentar la carga de trabajo.

Pruebas de estabilidad tiene como objetivo verificar si la aplicación puede tener un rendimiento continuo dentro o justo por encima del período aceptable.

Prueba de volumen permite analizar el rendimiento del sistema aumentando el volumen de datos en la base de datos. Verifica que los valores puedan aumentar de tamaño con el tiempo (como los recuentos acumulados, los registros y los archivos de datos), pueden ser acomodados por el programa y no harán que el programa deje de funcionar o se degrade.

Pruebas de concurrencia se realiza para identificar los defectos en una aplicación cuando varios usuarios inician sesión en la aplicación. Al usarlo, tenemos la capacidad de identificar y medir los problemas en los parámetros del sistema, como el tiempo de respuesta, el rendimiento, los bloqueos / puntos muertos o cualquier otro problema asociado con la concurrencia.

Pruebas de escalabilidad evalúa la capacidad del sistema para crecer al aumentar los diferentes indicadores, como la carga de trabajo por usuario, el número de usuarios concurrentes o el tamaño de una base de datos.

Pruebas de resistencia Define problemas que pueden ocurrir con la ejecución prolongada. Evalúa el comportamiento de un sistema cuando se da una carga de trabajo significativa de forma continua.

Pruebas de rampa es el tipo de prueba de resistencia, que consiste en elevar una señal de entrada continuamente hasta que el sistema se descompone.

Apache JMeter, HP LoadRunner, Ejecutante de seda de Micro Focus, WebLOAD, y Gatling Se utilizan a menudo para realizar diferentes tipos de pruebas de rendimiento.

Pruebas de recuperación tiene como objetivo evaluar la capacidad del sistema para recuperarse de fallas, fallas de hardware u otros problemas catastróficos. Es realizado por los equipos de pruebas.

TestDisk, Recuva por Piriform, Wise Data Recovery por WiseCleaner y Restauración por softonic Son las principales herramientas especiales para pruebas de recuperación.

Pruebas de compatibilidad comprueba la compatibilidad de la aplicación en diferentes entornos: hardware, software, sistema operativo, entorno de red. Hay dos tipos de este tipo de pruebas:Compatibilidad hacia atrás, Compatibilidad hacia adelante pruebas.

Compatibilidad con versiones anteriores las pruebas garantizan una nueva versión del producto para continuar trabajando con el producto anterior.

Compatibilidad hacia adelante La prueba proporciona la conexión con la versión futura del producto.

Browsershots y MultiBrowser Podría ser utilizado de forma gratuita para las pruebas de compatibilidad.

Pruebas de usabilidad realizado para evaluar un producto o servicio mediante la prueba con usuarios representativos. Ayuda a definir la capacidad del usuario para aprender a operar, preparar entradas para e interpretar salidas de un sistema o componente.

Pruebas de accesibilidad es el tipo de prueba de usabilidad que determina el nivel de uso fácil de un producto para las personas con discapacidades (sordas, ciegas, con discapacidad mental).

Las herramientas populares para las pruebas de usabilidad: Zoom de usuario, Reflector, Lazo11.

Pruebas estructurales

Pruebas estructurales verifica la implementación del programa o código a través de pruebas de la estructura del sistema de software o sus componentes. El probador se concentra en el trabajo del software durante las pruebas estructurales. Puede ser utilizado en todos los niveles de prueba.

Los principales objetivos de las pruebas estructurales.:

  • Identificación de deficiencias obvias.
  • Complementación de pruebas funcionales.
  • Para entender si falta algo en nuestra suite de pruebas.

Técnicas de ensayo estructural.:

  • La cobertura de la declaración verifica que cada instrucción en un programa se ejecute al menos una vez durante la prueba del programa.
  • La cobertura de ruta tiene como objetivo satisfacer los criterios de cobertura para cada ruta lógica a través del programa.
  • La cobertura de la sucursal verifica si cada condición de la rama del programa tiene valores verdaderos o falsos.
  • La cobertura de condición es similar a la cobertura de sucursal. La principal diferencia son las pruebas de cobertura de condición para las ramas condicionales y no condicionales.

Ventajas de las pruebas estructurales.:

  • Eliminación de código muerto
  • Existe la capacidad de descubrir errores en una etapa temprana.
  • Asegura la prueba de software más completa.
  • La prueba estructural no es el proceso que consume tiempo.

Desventajas de las pruebas estructurales:

  • Las pruebas estructurales son caras.
  • Requiere conocimiento del código.
  • Requiere el conocimiento sólido de la herramienta utilizada para la prueba.

Las herramientas especiales para ensayos estructurales: JBehave, Pepino,  JUIT, Cfix.

Pruebas relacionadas con el cambio

Pruebas relacionadas con el cambio se proporciona para garantizar que los errores erradicados previamente se hayan solucionado y para detectar errores que pueden haber aparecido accidentalmente en una nueva versión. De acuerdo con estos objetivos, hay dos subtipos de pruebas relacionadas con el cambio: Pruebas de confirmación (Re-pruebas) y Pruebas de regresión.
A menudo confunden las pruebas de confirmación con las pruebas de regresión. Como regla general, deben celebrarse uno tras otro. Aclaremos la diferencia entre estos subtipos de pruebas relacionadas con el cambio.

En primer lugar debes realizar Pruebas de confirmación para asegurarse de que el error ha sido eliminado con éxito. En pocas palabras, el caso de prueba que detectó originalmente el error se ejecuta de nuevo y esta vez debería pasar sin problemas.

Pruebas de regresión Consiste no solo en los casos de prueba de errores detectados. Se realiza no solo para verificar la corrección de errores, sino también para garantizar que no se hayan detectado o descubierto nuevos defectos después de los cambios.

Esperamos que la imagen a continuación lo ayude a comprender mejor el proceso de prueba relacionado con el cambio.

Cambiar tipos de pruebas relacionadas
Las herramientas para las pruebas relacionadas con el cambio: Selenio, HP Quick Test Professional,TestComplete, Prueba de conducción, SoapUI.
Ahora, tienes una idea acerca de muchos tipos de pruebas. Algunos de ellos son utilizados todos los días por una gran cantidad de especialistas, otros se usan muy raramente. De todos modos, la vida no es suficiente para aprender fundamentalmente cada tipo de prueba. Pero la práctica es la mejor manera de hacerlo. Espero que la información presentada aquí le ayude en su futura actividad de control de calidad. Sería genial conocer sus opiniones sobre los tipos de prueba en los comentarios.