Tipos de Prueba de Software

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

Taller: Tipos de Pruebas de Software

David A. Hormaza Velásquez

Facultad de Ingeniería, Corporación Universitaria Minuto de Dios

Plataformas de Desarrollo de Software NRC-50510 / Semana 5

Profesora Andrea Cristina Martínez Ardila

Abril 15, 2024

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 ISTQB (International Software Testing Qualifications Board), una organización sin


ánimo de lucro creada en el año 2002 por empresas, instituciones, organizaciones y
personas especializadas en el campo de las pruebas y la industria del software, define las
pruebas como, (Faro Medina , 2023):

 “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):

 “La prueba es un proceso de ejecución de un programa con la intención de encontrar


errores”

Cem Kaner, profesor de Ingeniería de software en el instituto tecnológico de Florida, es uno


de los defensores y principales gurús de las pruebas de software, las define como (Kaner,
2008):

 “Las pruebas de software son la investigación empírica y técnica realizada para


facilitar a los interesados información sobre la calidad del producto o servicio bajo
pruebas”.

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?

El uso de sistemas forma parte de nuestra vida cotidiana y el software se ha convertido en


una herramienta fundamental para la mayoría de personas. Como Ingenieros de Desarrollo
de Software, no probar adecuadamente el software antes de ponerlo en producción, puede
producir no sólo perdidas económicas, sino también daños personales, cada tipo de prueba
se centra en aspectos específicos del software, lo que ayuda a identificar y corregir errores o
defectos en etapas tempranas del desarrollo, reduciendo así costos y tiempos de corrección.

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:

 Asegura funcionalidad completa, asegura que todos los requerimientos


desarrollados estén presentes en el producto final.
 Alerta temprana, permite saber muy temprano en el desarrollo de software acerca de
defectos que pueden afectar negativamente al usuario.
 Reconstrucción de código, si tenemos un conjunto de pruebas muy amplio, es
mucho más fácil hacer reconstrucciones internas del código para mejorar
arquitectura sin afectar al usuario final.

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.

A continuación, se describirá los tipos de pruebas en función de qué conocemos, según el


grado de automatización y en función de qué se prueba.

1. En función de qué conocemos.

Pruebas de caja negra

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).

Con este tipo de pruebas se intenta encontrar: Funcionalidades incorrectas o ausentes,


errores de interfaz, errores en estructuras de datos o en accesos a las bases de datos
externas, errores de rendimiento, errores de inicialización y finalización

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.

2. Según el grado de automatización

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.

Las pruebas manuales ayudarán a descubrir cualquier problema relacionado con la


funcionalidad de su producto, especialmente defectos relacionados con facilidad de uso y
requisitos de interfaces.

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.

3. En función de que se prueba

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).

A continuación se definen algunas de estas según, (Andrade R., 2021):

 Pruebas unitarias (Unit testing)

Verifica el correcto funcionamiento de un componente individual del software, son pruebas


diseñadas para evaluar unidades individuales de código, como funciones, métodos o clases,
de manera aislada. El objetivo es verificar que cada unidad funcione correctamente según
su diseño y especificaciones. Este tipo de pruebas las realiza el programador como parte de
su trabajo. Y casi siempre están automatizadas para obtener resultados muy rápidamente.

Se aplican a un componente del software. Podemos considerar como componente (elemento


indivisible) a una función, una clase, una librería, etc. Estas pruebas las ejecuta el
desarrollador, cada vez que va probando fragmentos de código o scripts para ver si todo
funciona como se desea. Estas pruebas son muy técnicas. Por ejemplo, probar una consulta,
probar que un fragmento de código envíe a imprimir un documento, probar que una función
devuelva un flag, etc.

 Pruebas de integración (Integration testing)

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.

 Pruebas de aceptación (Acceptance testing)

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 alfa: las realiza el usuario en presencia de personal de desarrollo del


proyecto haciendo uso de una máquina preparada para las pruebas.

- 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.

Requerimiento funcional de la Aplicación

La aplicación va a servir para el manejo de clientes en un Gimnasio, se requiere registrar


los nuevos usuarios. Los datos a registrar son: Nombres completos, Identificación, fecha de
nacimiento y el tipo de plan que desean elegir.

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.

Una prueba muy importante es sobre la Seguridad en autenticación y autorización, se puede


verificar que el sistema requiera autenticación para acceder y que solo los usuarios
autorizados puedan realizar ciertas acciones.

Este es un ejemplo básico y generalizado de pruebas no funcionales para un programa de


registro de clientes. Dependiendo de las necesidades específicas del proyecto y del contexto
empresarial, las pruebas no funcionales pueden variar y requerir una planificación detallada
y específica.

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

También podría gustarte