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
Publicar un comentario