Fundamentos del proceso de testing funcional III – (Pruebas de Sistema)

Fundamentos del proceso de testing funcional III – (Pruebas de Sistema)

Pruebas de Sistema

Definición

Las pruebas de sistema son una comprobación del sistema integrado completo respecto del cumplimiento de los requisitos específicos. Desde el punto de vista técnico ya se han probado todos los componentes y su interrelación – faltan las pruebas del sistema completo en condiciones de funcionamiento y desde el punto de vista del usuario. Se prueba:

  • El entorno
  • Las funciones
  • Se hacen pruebas de carga

¿Qué se prueba?

Pruebas del sistema integrado desde el punto de vista del usuario

  • Implantación completa y correcta de los requisitos definidos en el Documento de Especificación de Requisitos o en las Historias de Usuario. Se debe comprobar que se cumplen todos los requisitos
  • Implantación en un entorno real del sistema y con datos cercanos al funcionamiento real del sistema

El entorno de pruebas debería corresponderse con el entorno de producción, ser lo más similar posible

  • Se omiten los controladores de prueba y los stubs
  • Todas las interfaces externas del sistema se probarán bajo condiciones de producción
  • Debe realizarse en una recreación lo más exacta posible del entorno posterior de producción

Pero no se realiza ninguna prueba en el entorno de producción

  • Los errores surgidos pueden dañar el sistema productivo
  • El entorno del sistema está en movimiento – las pruebas no son reproducibles

¿Porqué y como se prueba?

Las pruebas del sistema deben validar el cumplimiento de los requisitos establecidos. En principio se prueba la calidad del software para el usuario. De acuerdo con la calidad de software según ISO 9126 las pruebas del sistema diferencian entre requisitos:

  • Funcionales
    • Funcionalidad
  • No funcionales
    • Fiabilidad
    • Usabilidad
    • Eficiencia
    • Mantenibilidad
    • Portabilidad

Requisitos funcionales

Cuestión: ¿Las características requeridas quedan implementadas por las funciones disponibles?

El sistema debe ser probado en los siguientes puntos:

  • Idoneidad
    • ¿Son adecuadas las funciones disponibles para la utilización prevista?
  • Precisión
    • ¿Se ejecutan las funciones correctamente (como estaba acordado)?
  • Interoperabilidad
    • ¿Se proporciona una interrelación libre de errores con el entorno del sistema?
  • Conformidad
    • ¿Se cumplieron las normas y preceptos?
  • Seguridad
    • ¿Están protegidos los datos / programas frente a accesos / pérdidas?

Las pruebas de los requisitos funcionales pueden incluir, pruebas basadas en riesgos y/o especificaciones de requisitos (Los casos de prueba se deducen a partir de la definición de requisitos y el número de casos de prueba varía en función de los requisitos), pruebas basadas en procesos de negocio (los procesos de negocio individuales sirven como base para la creación de los casos de prueba, se puede trasladar la importancia de los procesos a la priorización de casos de prueba), pruebas basadas en casos de uso (los casos de prueba se deducen a partir de los casos de uso – procesos habituales del usuario, aquellos casos de uso más frecuentes tendrán mayor prioridad en las pruebas) o cualquier otra descripción de alto nivel del comportamiento del sistema.

Requisitos no funcionales

Los requisitos no funcionales vienen especificados, entre otras, en la norma ISO 9126, los requisitos de ergonomía vienen descritos en la norma ISO 9241 (cap 10) – por ejemplo, tolerancia a fallos, facilidad de aprendizaje y adecuación de las tareas. El cumplimiento de estos requisitos es igual de importante pero a menudo difícil de probar y por ello están sometidos a un mayor riesgo. En la definición de requisitos no está siempre claro “como de bien” debe funcionar algo. A menudo tienen definiciones vagas (manejar sin problemas, pantallas claras, …), los requisitos no funcionales se dan a menudo de manera implicita y por ese motivo no se definen. De todos modos suele ser difícil una cuantificación de los requisitos no funcionales.

Se pueden diferenciar principalmente los siguientes tipos de pruebas no funcionales:

  • Pruebas de carga
    • Como se comporta el sistema bajo un numero creciente de usuarios/acciones (carga nominal)
  • Pruebas de rendimiento
    • Como de rápido es el sistema en determinadas funciones/casos de uso
  • Pruebas de volumen (masivas)
    • Como se comporta el sistema al procesar grandes cantidades de datos/archivos
  • Pruebas de seguridad de datos
    • Como de protegido está el sistema frente a accesos no autorizados, o como de protegidos están los datos antes accesos no autorizados o perdidas
  • Pruebas de estabilidad
    • Como se comporta el sistema en funcionamiento prolongado. Con que frecuencia se cae por unidad de tiempo
  • Pruebas de robustez
    • Comportamiento del sistema en el manejo de excepciones (entra incorrecta de datos, …). Comportamiento ante defectos de hardware y como se recupera al funcionamiento normal
  • Pruebas de compatibilidad
    • Interfaces hacia otros programas. Comportamiento en diferentes entornos de hardware, sistema operativo, ….
  • Pruebas de usabilidad
    • Como es de visible y comprensible el sistema. Facilidad de aprender su manejo por un usuario típico
  • Comprobación de la documentación
    • Concordancia de la documentación del programa con el sistema real. Claridad y comprensibilidad de la documentación
  • Comprobación de la mantenibilidad
    • Disponibilidad de documentación adecuada del desarrollo, los estándares preestablecidos de código han sido cumplidos, la arquitectura es modular, …


Trabaja con nosotros

Tanto si estás buscando trabajar full time, como suplementar tus actuales ingresos con desarrollos adicionales a los que estás haciendo en tu actual trabajo, o quieres implicarte en el desarrollo de proyectos opensource y apoyar a la comunidad, rellena el formulario que hay a continuación y nos pondremos en contacto contigo para ver los proyectos en los que podemos colaborar.

Scroll al inicio