¿Qué implica una prueba de sistema no funcional?

En las pruebas no funcionales, se prueban las características de calidad del componente o sistema. No funcional se refiere a aspectos del software que pueden no estar relacionados con una función específica o acción del usuario, como la escalabilidad o la seguridad. P.ej. ¿Cuántas personas pueden iniciar sesión a la vez? Las pruebas no funcionales también se realizan en todos los niveles, como las pruebas funcionales .

Las pruebas no funcionales incluyen:

  • Pruebas de fiabilidad
  • Pruebas de usabilidad
  • Pruebas de eficiencia
  • Pruebas de mantenibilidad
  • Prueba de portabilidad
  • Prueba de referencia
  • Pruebas de conformidad
  • Pruebas de documentación
  • Pruebas de resistencia
  • Prueba de carga
  • Pruebas de rendimiento
  • Pruebas de compatibilidad
  • Pruebas de seguridad
  • Pruebas de escalabilidad
  • Prueba de volumen
  • Pruebas de estrés
  • Pruebas de recuperación
  • Pruebas de internacionalización y pruebas de localización
  • Pruebas de confiabilidad: las pruebas de confiabilidad consisten en ejercer una aplicación para que se descubran y eliminen las fallas antes de implementar el sistema. El propósito de las pruebas de confiabilidad es determinar la confiabilidad del producto y determinar si el software cumple con los requisitos de confiabilidad del cliente.
  • Pruebas de usabilidad: en las pruebas de usabilidad, básicamente los probadores prueban la facilidad con la que se pueden usar las interfaces de usuario. Comprueba si la aplicación o el producto creado es fácil de usar o no.

Las pruebas de usabilidad incluyen los siguientes cinco componentes:

  • Capacidad de aprendizaje: ¿Qué tan fácil es para los usuarios realizar tareas básicas la primera vez que se encuentran con el diseño?
    • Eficiencia: ¿Qué tan rápido pueden realizar tareas los usuarios experimentados?
    • Memorabilidad: cuando los usuarios vuelven al diseño después de un período de no usarlo, ¿recuerda el usuario lo suficiente como para usarlo de manera efectiva la próxima vez, o tiene que comenzar de nuevo aprendiendo todo?
    • Errores: ¿Cuántos errores cometen los usuarios, qué tan graves son estos errores y con qué facilidad pueden recuperarse de los errores?
    • Satisfacción: ¿Cuánto le gusta al usuario usar el sistema?
  • Pruebas de eficiencia: las pruebas de eficiencia prueban la cantidad de código y los recursos de prueba requeridos por un programa para realizar una función en particular. Software Test Efficiency es el número de casos de prueba ejecutados divididos por unidad de tiempo (generalmente por hora).
  • Pruebas de mantenimiento: básicamente define lo fácil que es mantener el sistema. Esto significa que es fácil analizar, cambiar y probar la aplicación o el producto.
  • Pruebas de portabilidad: se refiere al proceso de probar la facilidad con la que un componente o aplicación de software puede moverse de un entorno a otro, por ejemplo, mover cualquier aplicación de Windows 2000 a Windows XP. Esto generalmente se mide en términos de la cantidad máxima de esfuerzo permitida. Los resultados se miden en términos del tiempo requerido para mover el software y completar las actualizaciones de documentación.
  • Pruebas de referencia: se refiere a la validación de documentos y especificaciones sobre los que se diseñarían los casos de prueba. La validación de la especificación de requisitos es la prueba de referencia.
  • Pruebas de cumplimiento: está relacionado con los estándares de TI seguidos por la compañía y es la prueba realizada para encontrar las desviaciones de los estándares prescritos por la compañía.
  • Pruebas de documentación: según la documentación de IEEE que describe los planes o los resultados de las pruebas de un sistema o componente, los tipos incluyen la especificación de casos de prueba, informe de incidentes de prueba, registro de prueba, plan de prueba, procedimiento de prueba, informe de prueba. Por lo tanto, la prueba de todos los documentos mencionados anteriormente se conoce como prueba de documentación.
  • Pruebas de resistencia: Las pruebas de resistencia implican probar un sistema con una carga significativa extendida durante un período de tiempo significativo, para descubrir cómo se comporta el sistema bajo un uso sostenido. Por ejemplo, en las pruebas de software, un sistema puede comportarse exactamente como se espera cuando se prueba durante 1 hora, pero cuando se prueba el mismo sistema durante 3 horas, problemas tales como pérdidas de memoria hacen que el sistema falle o se comporte al azar.
  • Prueba de carga: generalmente se realiza una prueba de carga para comprender el comportamiento de la aplicación bajo una carga esperada específica. La prueba de carga se realiza para determinar el comportamiento de un sistema tanto en condiciones normales como en condiciones pico. Ayuda a identificar la capacidad operativa máxima de una aplicación, así como cualquier cuello de botella y determinar qué elemento está causando degradación. Por ejemplo, si el número de usuarios está aumentado, ¿qué cantidad de CPU, memoria se consumirá, cuál es la red y el tiempo de respuesta del ancho de banda?
  • Pruebas de rendimiento: las pruebas de rendimiento son pruebas que se realizan para determinar qué tan rápido se desempeña algún aspecto de un sistema bajo una carga de trabajo particular. Puede servir para diferentes propósitos, como puede demostrar que el sistema cumple con los criterios de rendimiento. Puede comparar dos sistemas para encontrar cuál funciona mejor. O puede medir qué parte del sistema o carga de trabajo hace que el sistema funcione mal.
  • Pruebas de compatibilidad: las pruebas de compatibilidad son básicamente la prueba de la aplicación o del producto creado con el entorno informático. Comprueba si la aplicación o el producto de software creado es compatible con el hardware, el sistema operativo, la base de datos u otro software del sistema o no.
  • Pruebas de seguridad: las pruebas de seguridad consisten básicamente en verificar si la aplicación o el producto están protegidos o no. ¿Alguien puede venir mañana y hackear el sistema o iniciar sesión en la aplicación sin ninguna autorización? Es un proceso para determinar que un sistema de información protege los datos y mantiene la funcionalidad según lo previsto.
  • Prueba de escalabilidad: es la prueba de una aplicación de software para medir su capacidad de escalar en términos de cualquiera de sus capacidades no funcionales, como la carga soportada, el número de transacciones, el volumen de datos, etc.
  • Prueba de volumen: la prueba de volumen se refiere a probar una aplicación de software o el producto con una cierta cantidad de datos. Por ejemplo, si queremos realizar una prueba de volumen de nuestra aplicación con un tamaño de base de datos específico, debemos expandir nuestra base de datos a ese tamaño y luego probar el rendimiento de la aplicación en ella.
  • Pruebas de tensión: implica realizar pruebas más allá de la capacidad operativa normal, a menudo hasta un punto de ruptura, para observar los resultados. Es una forma de prueba que se utiliza para determinar la estabilidad de un sistema dado. Puso mayor énfasis en la robustez, disponibilidad y manejo de errores bajo una carga pesada, en lugar de lo que se consideraría un comportamiento correcto en circunstancias normales. Los objetivos de tales pruebas pueden ser asegurar que el software no se bloquee en condiciones de recursos computacionales insuficientes (como memoria o espacio en disco).
  • Pruebas de recuperación: las pruebas de recuperación se realizan para verificar qué tan rápido y mejor puede recuperarse la aplicación después de haber sufrido cualquier tipo de bloqueo o falla de hardware, etc. La prueba de recuperación es la falla forzada del software en una variedad de formas para verificar que La recuperación se realiza correctamente. Por ejemplo, cuando una aplicación recibe datos de una red, desconecte el cable de conexión. Después de un tiempo, vuelva a enchufar el cable y analice la capacidad de la aplicación para continuar recibiendo datos desde el punto en que desapareció la conexión de red. Reinicie el sistema mientras un navegador tiene un número definido de sesiones y verifique si el navegador puede recuperarlas todas o no.
  • Pruebas de internacionalización y pruebas de localización: la internacionalización es un proceso de diseño de una aplicación de software para que pueda adaptarse a varios idiomas y regiones sin ningún cambio. Mientras que la localización es un proceso de adaptación de software internacionalizado para una región o idioma específico mediante la adición de componentes específicos locales y la traducción de texto.

No es una lista exhaustiva pero:

Pruebas de rendimiento

Prueba de carga

Pruebas de seguridad / penetración

Localización

Recuperación

Una pequeña advertencia en la respuesta. Algunos requisitos de la lista anterior pueden aparecer como requisitos funcionales de un sistema. Por ejemplo, un usuario debería ver el sistema en español. Esto se convierte en una prueba funcional.