Tipos de pruebas de software

 



!Hola!

Continuando con lo expuesto en el artículo anterior  niveles de pruebas de software el día de hoy les hablare sobre los tipos de prueba de software pruebas de software estas se pueden clasificar de acuerdo con la forma en que se realizan y de acuerdo con lo que evalúan.

De acuerdo con la forma en que se realizan las pruebas de software pueden ser:

Manuales: En estas el probador ejecuta la prueba sin ayuda de alguna herramienta de automatización, es decir, interactúa directamente con el sistema. Por ejemplo, si la tarea es evaluar el acceso a usuarios en una plataforma web, el probador deberá introducir los datos de prueba (el nombre y la contraseña) manual y directamente en los campos correspondientes y posteriormente hacer Click. Este tipo de prueba también busca probar el sistema desde la perspectiva del usuario final.

Automatizadas: Por otro lado, las pruebas automatizadas se realizan a través de una herramienta de software o una máquina, la cual ejecuta un script (Un archivo en donde se le da instrucciones a la maquino sobre como ejecutar la prueba, este se escribe en un lenguaje de programación) diseñado por el probador o algún miembro del equipo de desarrollo. Por ejemplo, en lugar de realizar la prueba como se menciono en el ejemplo anterior, le indicaríamos a la maquina como hacerla, es decir, a través del lenguaje de programación o cualquier otra herramienta, le señalaríamos a la máquina que hacer, en que orden ejecutara las instrucciones, como hacerlo y la información que utilizara para ejecutar las pruebas.

Algunas personas prefieren las pruebas automatizadas antes que las manuales, pero personalmente considero que ambos tipos de pruebas tienen su importancia, por ejemplo, no tiene sentido implementar pruebas automatizadas cuando se trata de un set de pruebas poco complejo, o se dispone de tiempo suficiente para hacer pruebas manuales, o en situaciones donde se tenga poco tiempo pero no se manejan las herramientas para la creación y ejecución de la pruebas automatizada, esto podría ser una gran desventaja para el proyecto, sin embargo, esta se pueden utilizar para realizar pruebas de regresión (estas se explicaran más adelante) cuando el sistema ha sufrido cambios, o si la evolución de ejecución de pruebas se vuelve un proceso complejo y repetitivito, cada alternativa tiene sus ventajas.

De acuerdo con lo que se evalúan los tipos de pruebas son:

Pruebas funcionales se enfocan en evaluar los requisitos funcionales previamente establecidos, es decir, se basan en lo que hace y no hace el sistema, si este cumple con los requerimientos especificados. Estas pruebas se subdividen en otras las cuales son:

Pruebas unitarias: El objetivo de estas pruebas es asegurarse que los componentes o módulos funcionen correctamente de manera individual de acuerdo con los requerimientos.

Prueba de integración: Verifican que la interacción entre los módulos como un conjunto funcione correctamente, por ejemplo, la integración de la base de datos con el modulo de registro de usuarios.

Prueba de Sistema: Estas se realizan con el objetivo de evaluar el funcionamiento del sistema o producto de software ya integrado por completo y si este cumple con lo establecido.

Prueba de aceptación: Estas pruebas se realizan para validar y verificar si el producto cumple con los criterios o estándares requeridos por el cliente y/o el usuario final.

Prueba de interfaz: Se ejecutan con el fin de asegurar el buen funcionamiento al combinar un sistema con otro. Por ejemplo, la combinación de una aplicación destinada a la educacion con una API que permita acceder a los videos disponibles en YouTube.

Pruebas basadas en cambios: Estas se realizan cuando el sistema ha sido modificado ya sea por la reparación de un defecto encontrado o por mantenimiento, estas pueden ser:

Pruebas de confirmación: Su objetivo es verificar que la función reparada o modificada funcione correctamente de acuerdo con lo establecido.

Pruebas de regresión: Por otro lado, las pruebas de regresión buscan asegurar que los cambios realizados en una parte del sistema no afectarán otras partes del este y sigan funcionando correctamente.

Como mencione anteriormente las pruebas funcionales se enfocan en que hace el sistema, para evaluar como cumple con su función estas las pruebas no funcionales, estas se enfocan en las características del comportamiento del sistema. También se subdividen en otras pruebas, las cuales son:

Prueba de rendimiento: Se observa el comportamiento del sistema bajo una determinada carga de trabajo, el objetivo es saber que tan rápido puede responder al ser utilizado por una cierta cantidad de usuarios.

Prueba de carga: Estas también evalúan el comportamiento del sistema ante una carga de trabajo, solo que en este caso no es especifica, el punto es saber cuánta carga puede manejar el sistema antes de generar una falla.

Prueba de seguridad: Se estudia que tan seguro el es sistema, como reaccionaria ante algún ataque ya sea interno o externo, que tan bien asegurada esta la información que este maneja y su propia estructura.

Prueba de compatibilidad: Se observa el comportamiento del sistema en las plataformas y dispositivos en los cuales serán utilizados, por ejemplo, una aplicación móvil diseñada para ser utilizada en la plataforma Android será probada en esta, o en caso de ser desarrollada para distintas plataformas, se evaluará su comportamiento en distintas plataformas.

Prueba de confiabilidad: Este tipo de prueba busca validar el desempeño de una aplicación en una tarea específica dentro de un periodo de tiempo determinado. Por ejemplo, que tanto tarda en enviarse un archivo a través de una aplicación de correos institucionales.

Prueba de usabilidad: Se evalúa que tan fácil de aprender y de utilizar es la herramienta desarrollada, cuanto tiempo le tomara al usuario final adaptarse a esta y que tan útil es esta para realizar las tareas de la organización. Estas se enfocan en:


  • Eficacia: Que tan capaz es el sistema para permitir a los usuarios finales cumplir con los objetivos específicos.
  • Eficiencia: El sistema permite a los usuarios navegar a través de las pantallas o vistas de este y la uniformidad en la aplicación.
  • Precisión: Los datos de la aplicación deben estar actualizados y ser verídicos, es decir, el sistema debe mantener la integridad de la información.
  • Satisfacción: El usuario final debe dar el visto bueno al sistema, este debe cumplir con las expectativas del cliente.

Pruebas de accesibilidad: Se realizan para asegurar que el sistema pueda ser utilizado por personas con necesidades particulares o discapacidad, como por ejemplo personas no videntes.

Pruebas de la fiabilidad: Su objetivo es establecer estadísticamente una medida sobre que tan fiable es el sistema en ejecución, estas se subdividen en:

  • Pruebas de robustez: Evalúan la tolerancia del sistema ante alguna falla externa a este como por ejemplo en el sistema operativo.
  •  Pruebas de recuperabilidad: Se enfocan la capacidad del sistema para restablecerse después de una falla ya sea de hardware o software.

Pruebas de mantenibilidad: Evalúan que tan fácil es darle mantenimiento al sistema, es decir, que tan fácil es de analizar, modificar o probar. Entre este tipo de pruebas se encuentran:

  • Pruebas dinámicas de mantenimiento: Se centran en los procedimientos para verificar que se alcancen los niveles de servicios requeridos, es decir, que los cambios hechos en el sistema realmente sean para mejorar.
  • Pruebas de mantenimiento correctivo: Mide que tanto tiempo se toma para corregir una falla en el sistema.
  • Pruebas de mantenimiento adaptativo: Mide tres aspectos del sistema el esfuerzo requerido para modificar el sistema y probar los cambios además de la respuesta del sistema ante esas modificaciones.

En el mundo de las pruebas de software existen una gran variedad de tipos de pruebas, estas son solo algunas de ellas, si conoces algunas además de las ya mencionadas te invito a dejarla en los cometarios y de esa forma contribuir con la comunidad de testers y QAs que apenas están iniciando en esta hermosa carrera.

Esto es todo por hoy, espero que este artículo te haya servido ya sea que estés empezando o seas un experto en el área, te invito a compartirlo con tus amigos y colegas, si tienes alguna pregunta u observación sobre el tema no dudes en dejarlo en la sección de comentarios.

¡Sígueme en LinkedIn Betania Jimenez!

 


¡Gracias por leer, Hasta la próxima!

 

 

Comentarios

Entradas más populares de este blog

Niveles de pruebas de software

7 principios de las pruebas de calidad de software

Conceptos básicos para un QA