Tipos de Prueba de Software
Tipos de Prueba de Software
Tipos de Prueba de Software
1
¿Qué son los tipos de pruebas de software?
Los tipos de pruebas de software son técnicas utilizadas para evaluar la calidad y el
funcionamiento de un programa informático. Estas pruebas se realizan durante el desarrollo
y después de la finalización del software para garantizar que el programa cumple con los
requisitos y expectativas del usuario.
“El proceso que consiste en todas las actividades del ciclo de vida, tanto estáticas
como dinámicas relacionadas con la planificación, preparación y evaluación de
productos de software y productos relacionados con el trabajo para determinar que
cumplen los requisitos especificados, para demostrar que son aptos para el propósito
y para detectar defectos”.
Otra definición de prueba de software, según (Myers, Sandler, & Badgett, 2012):
Estas definiciones tienen algo en común, todas se centran en mayor o menor medida en la
detección de errores. Cuando se realizan pruebas a un programa se quiere aportar un valor
añadido a lo que se está probando, elevar la calidad y fiabilidad y este proceso conlleva a
tener que encontrar y eliminar los errores del programa.
2
¿Por qué es importante el conocer los tipos de pruebas?
En la actualidad el funcionamiento de casi todas las empresas depende en gran medida del
software, las pruebas de software son seguramente la actividad más común de control de
calidad realizada en los proyectos de desarrollo o mantenimiento de aplicaciones y
sistemas. Conocer los tipos de pruebas representan una actividad fundamental en el
desarrollo de software y, en muchos casos, suponen prácticamente el único medio
empleado en los proyectos para la verificación y validación del software (Fernández Sanz,
2005).
Según (Andrade R., 2021), el conocimiento de los tipos de pruebas de software tiene
algunos beneficios como:
3
¿Cuáles son los tipos de pruebas?
La disciplina de pruebas es una de las más costosas del ciclo de vida software. En sentido
estricto, deben realizarse las pruebas de todos los artefactos generados durante la
construcción de un producto, lo que incluye especificaciones de requisitos, casos de uso,
diagramas de diversos tipos y, por supuesto, el código fuente y el resto de productos que
forman parte de la aplicación (por ejemplo, la base de datos), e infraestructura.
Obviamente, se aplican diferentes técnicas de prueba a cada tipo de producto software.
Hay diferentes tipos de prueba, las que buscan probar una funcionalidad del software, las
que buscan probar una característica no funcional, como puede ser la fiabilidad, y las que
buscan probar la estructura del software.
En este tipo de prueba, tan sólo, podemos probar dando distintos valores a las entradas. Los
datos de prueba se escogerán atendiendo a las especificaciones del problema, sin importar
los detalles internos del programa, a fin de verificar que el programa corra bien. Este tipo
de prueba se centra en los requisitos funcionales del software y permite obtener entradas
que prueben todos los flujos de una funcionalidad (casos de uso).
Nota: Representación gráfica de prueba de Caja negra. Tomado de, (SQA - Software
Quality Assurance S.A, 2022).
4
Pruebas de caja blanca
Consiste en realizar pruebas para verificar que líneas específicas de código funcionan tal
como está definido. También se le conoce como prueba de caja-transparente. La prueba de
la caja blanca es un método de diseño de casos de prueba que usa la estructura de control
del diseño procedimental para derivar los casos de prueba.
Nota: Representación gráfica de prueba de Caja blanca. Tomado de, (Scrum-QA, 2013) .
Las pruebas de caja blanca intentan garantizar que: - Se ejecutan al menos una vez todos los
caminos independientes de cada módulo - Se utilizan las decisiones en su parte verdadera y
en su parte falsa - Se ejecuten todos los bucles en sus límites - Se utilizan todas las
estructuras de datos internas. - Para esta prueba, se consideran tres importantes puntos.
Pruebas manuales
Una prueba manual es una descripción de los pasos de prueba que realiza un evaluador
(usuario experto). Las pruebas manuales se utilizan en aquellas situaciones donde otros
tipos de prueba, como las pruebas unitarias o las pruebas Web, serían demasiado difíciles
de realizar o su creación y ejecución sería demasiado laboriosa.
También, podría utilizar una prueba manual en situaciones donde no sea posible
automatizar los pasos, por ejemplo, para averiguar el comportamiento de un componente
cuando se pierde la conexión de red; esta prueba podría realizarse de forma manual,
desenchufando el cable de red. Otro ejemplo, sería en caso de comprobar cómo se visualiza
el contenido de una página web en dos navegadores diferentes.
5
Pruebas automáticas
A diferencia de las pruebas manuales, para este tipo de pruebas, se usa un determinado
software para sistematizarlas y obtener los resultados de las mismas. Por ejemplo, verificar
un método de ordenación. La suite de IBM Rational provee varias herramientas que
permiten automatizar las pruebas de un sistema.
Pruebas Funcionales
Las pruebas funcionales se centran en validar que el software cumpla con los requisitos
funcionales especificados, garantizan que las características y funcionalidades del software
se comportan según lo esperado sin ningún problema. Estas pruebas validan principalmente
toda la aplicación con respecto a las especificaciones mencionadas en el documento
Software Requirement Specification (SRS).
Estas son usadas para verificar cómo varios componentes conectados del software
funcionan juntos. Esto se hace luego de verificar que cada componente funciona
individualmente, luego se valida que funcionen bien juntos. Al igual que las unitarias estas
las hace el desarrollador de forma automatizada.
Consiste en construir el sistema a partir de los distintos componentes y probarlo con todos
integrados. Estas pruebas deben realizarse progresivamente. El foco de atención es el
diseño y la construcción de la arquitectura de software.
6
Pruebas de sistema (System testing)
Prueban el producto completo, con todos los componentes ensamblados. Verifica que
módulos completos funcionen unos con otros. Generalmente este tipo de pruebas las realiza
un equipo de QA.
Son las únicas pruebas que son realizadas por los usuarios expertos, todas las anteriores las
lleva a cabo el equipo de desarrollo. Consiste en comprobar si el producto está listo para ser
implantado para el uso operativo en el entorno del usuario. Podemos distinguir entre dos
tipos de pruebas; en ambas existe retroalimentación por parte del usuario experto:
- Pruebas beta: las realiza el usuario después de que el equipo de desarrollo les
entregue una versión casi definitiva del producto.
Estos son algunos de los tipos principales de pruebas de software, y su aplicación depende
del contexto, los requisitos del proyecto y los objetivos de calidad establecidos. Cada tipo
de prueba juega un papel crucial en garantizar la calidad, fiabilidad y funcionalidad del
software desarrollado.
7
Ejemplo práctico de Pruebas de Software
En esta parte se van a aplicar los conceptos anteriores de pruebas de Software para la
creación hipotética de una pequeña aplicación.
Se debe verificar que los clientes estén al día en su pago y que tengan todos los datos
completos.
Desarrollo
Teniendo en cuenta que se ha creado una aplicación y se ha generado una versión 1.0,
vamos a crear un caso hipotético de pruebas y como se podrían usar en el desarrollo de la
aplicación.
Prueba unitaria
Para crear un nuevo cliente primero se debe validar si el cliente no está antes registrado, las
pruebas funcionales se comienzan desde lo más pequeño hasta lo más grande. Vamos a
iniciar con una prueba unitaria para verificar si el cliente es un nuevo cliente.
Prueba de Integración
Suponiendo que nuestro sistema integra una base de datos con una interfaz de usuario, una
prueba de integración podría verificar que los datos ingresados del cliente en la interfaz se
almacenen correctamente en la base de datos.
Prueba de Sistema
Para realizar una prueba de sistema se debe realizar la prueba como si fuera un usuario
real manejando un browser.
Pruebas de Aceptación
Estas las debe realizar alguien adicional al desarrollador, en nuestro caso que es un ejemplo
pequeño y se requiere conocimientos técnicos, la prueba la puede realizar otro desarrollador
usando alguna herramienta como curl o imsonia para realizar la llamada a crear un cliente.
8
Pruebas no Funcionales
Se pueden realizar pruebas de Rendimiento, donde se pueda medir el tiempo que tarda el
sistema en responder a las solicitudes del usuario (registro, actualización, consulta). De
igual manera en la capacidad de evaluar cómo se comporta el sistema bajo diferentes cargas
de trabajo (por ejemplo, 10, 20, 100 usuarios simultáneos).
Otra prueba no funcional seria la usabilidad, donde se pueda evaluar la facilidad con la que
los usuarios pueden navegar e interactuar con la interfaz del programa y su facilidad con el
acceso a la aplicación.
Bibliografía
9
Myers, G. J., Sandler, C., & Badgett, T. (2012). The Art of Sofware Testing. New Jersey: John
Wiley & Sons, Inc.
Faro Medina , I. (27 de Febrero de 2023). Hiberus blog. Obtenido de Los 7 principios del
testing. ¿Qué dice ISTQB? : https://www.hiberus.com/crecemos-contigo/siete-
principios-que-deben-guiar-el-testing-de-software-segun-istqb/
Kaner, C. (Mayo de 2008). kaner.com. Obtenido de Software Testing as a Social Science:
https://kaner.com/pdfs/KanerSocialScienceSTEP.pdf
Fernández Sanz, L. (Diciembre de 2005). Un sondeo sobre la práctica actual de pruebas de
software en España. REICIS. Revista Española de Innovación, Calidad e Ingeniería
del Software, 1(2), 43-54.
Sánchez Peño, J. M. (Junio de 2015). Pruebas de Software. Fundamentos y Técnicas.
Pruebas de Software. Fundamentos y Técnicas. Madrid.
Andrade R., M. (23 de Marzo de 2021). dev.to. Recuperado el 14 de Abril de 2024, de
Pruebas de Software Series' Articles: https://dev.to/marceloandrade/parte-1-
introduccion-a-pruebas-de-software-fnf
SQA - Software Quality Assurance S.A. (23 de Marzo de 2022). Linkedin. Recuperado el
Abril de 2024, de Pruebas de caja negra:
https://www.linkedin.com/pulse/pruebas-de-caja-negra-sqa-s-a/
Scrum-QA. (12 de Abril de 2013). Scrum-QA. Recuperado el Abril de 2024, de Téc D P -
Técnicas basadas en la estructura o técnicas de caja blanca (K4).: https://scrum-
qa.blogspot.com/2013/04/tecnicas-de-diseno-de-pruebas-tecnicas_12.html
10