“Año del Bicentenario del Perú: 200 años de Independencia”
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
FACULTAD DE INGENIERÍA DE SISTEMAS
ASIGNATURA:
CONTROL DE CALIDAD Y PRUEBAS DE SOFTWARE
TRABAJO:
TIPOS DE PRUEBA DE SOFTWARE
INTEGRANTES:
CASTILLA DAGNINO, RENZO ISRAEL
CASTRO HERNÁNDEZ, LUIS GERMAN
FLORES CCECCAÑO, CRISTHIAN EDGAR
PEDRAZA RIOS, SHIARIR
TATAJE DE LA CRUZ, JEISSON HAMETT
DOCENTE:
ROMERO LOVERA, JHON ALEX
CICLO Y SECCIÓN:
VIII – “A”
ICA – PERÚ
2021
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
ÍNDICE DE CONTENIDOS
ÍNDICE DE CONTENIDOS ................................................................................................... 2
I. TIPOS DE PRUEBAS ......................................................................................................... 3
1. TIPOS DE PRUEBAS SEGÚN SUS FORMAS ............................................................... 3
1.1 PRUEBAS MANUALES ................................................................................. 3
1.2 PRUEBAS AUTOMATIZADAS ..................................................................... 4
2. TIPOS DE PRUEBAS SEGÚN SUS MÉTODOS ............................................................ 4
2.1 PRUEBAS DE CAJA BLANCA ...................................................................... 4
2.2 PRUEBAS DE CAJA NEGRA ........................................................................ 5
2.3 PRUEBAS DE CAJA GRIS ............................................................................ 6
3. TIPOS DE PRUEBAS SEGÚN SUS NIVELES ............................................................... 7
3.1 PRUEBAS NO FUNCIONALES ..................................................................... 7
3.1.1 PRUEBAS DE CARGA .............................................................................................. 7
3.1.2 PRUEBAS DE RENDIMIENTO................................................................................ 8
3.1.3 PRUEBAS DE VOLUMEN ........................................................................................ 8
3.1.4 PRUEBAS DE ESTRÉS .............................................................................................. 9
3.1.5 PRUEBAS DE SEGURIDAD ..................................................................................... 9
3.1.6 PRUEBAS DE USABILIDAD .................................................................................... 9
3.2 PRUEBAS FUNCIONALES ........................................................................... 9
3.2.1 PRUEBAS UNITARIAS ............................................................................................. 9
3.2.2 PRUEBAS DE COMPONENTES ............................................................................ 10
3.2.3 PRUEBAS DE HUMO .............................................................................................. 11
3.2.4 PRUEBAS DE INTEGRACIÓN .............................................................................. 11
3.2.5 PRUEBAS DE REGRESIÓN ................................................................................... 12
3.2.6 PRUEBAS DE ACEPTACIÓN ................................................................................ 13
CONCLUSIONES .................................................................................................................. 14
REFERENCIAS BIBLIOGRÁFICAS ................................................................................. 15
ANEXOS ................................................................................................................................. 16
2
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
I. TIPOS DE PRUEBAS
1. TIPOS DE PRUEBAS SEGÚN SUS FORMAS
1.1 PRUEBAS MANUALES
La prueba manual es un tipo prueba de software involucrar a los probadores
manualmente casos de prueba ejecutar sin usar herramientas de automatización. Los
comprobadores están realmente detrás de la pantalla de la aplicación, llevan a cabo
casos de prueba y ven cuál es el resultado. (Hoogenraad, 2017)
OBJETIVO DE LAS PRUEBAS MANUALES
El concepto principal de las pruebas manuales es garantizar que la aplicación
esté libre de errores. También determinamos que está de acuerdo con los requisitos
funcionales y los criterios de aceptación especificados.
El acompañante plan de prueba, los casos de prueba y los casos de prueba
deben cubrir el software al 100%. Los diseñamos al mismo tiempo que construimos el
software o durante la fase de prueba. Esto asegura que los desarrolladores puedan
corregir las fallas reportadas por los probadores. Luego, los probadores ejecutan la
prueba nuevamente para verificar que el error se haya corregido. Sin embargo,
nuevamente podemos encontrar otros errores. Este proceso continúa hasta que la
aplicación esté libre de errores. En principio, verificamos la calidad de la aplicación
mediante pruebas. Con el objetivo de entregar un producto sin errores al usuario.
• La repetición de pruebas manuales podría dejar pasar defectos, ya que una
acción repetitiva para una persona es cansada y tediosa.
3
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
• Las pruebas de regresión manuales pueden llegar a consumir mayor
tiempo que las automatizadas. Es necesario incluir pruebas de regresión cuando
se está haciendo una actualización o ampliación de la funcionalidad del sistema.
• Las pruebas manuales son indispensables para cada proyecto, ya que por medio
de ellas se detectan la mayor parte de los defectos, y de esta forma se logra
estabilizar el sistema que se está probando.
• Las pruebas manuales permiten un análisis profundo por parte de un humano, lo
cual es un mayor beneficio cuando se quiere mejorar la experiencia de usuario.
(INTERWARE, 2018)
1.2 PRUEBAS AUTOMATIZADAS
• Las pruebas automatizadas pueden brindar un mayor grado de confiabilidad
cuando se aplican después de algún cambio al hardware o software donde se
ejecuta el sistema.
• Las pruebas automatizadas son la opción más viable cuando se necesita realizar
diversas pruebas, de manera repetitivas y por un período de tiempo extenso.
• Las pruebas automatizadas pueden ejecutarse una y otra vez luego de ser
creadas, más rápido que las pruebas manuales, idóneas para ampliaciones de
funciones, para garantizar que lo que no se ha modificado siga funcionando.
2. TIPOS DE PRUEBAS SEGÚN SUS MÉTODOS
2.1 PRUEBAS DE CAJA BLANCA
La prueba de caja blanca se basa en el diseño de casos de prueba que usa la
estructura de control del diseño procedimental para derivarlos. Mediante la prueba de
la caja blanca el ingeniero del software puede obtener casos de prueba que:
4
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
a) Garanticen que se ejerciten por lo menos una vez todos los caminos
independientes de cada módulo, programa o método.
b) Ejerciten todas las decisiones lógicas en las vertientes verdadera y falsa.
c) Ejecuten todos los bucles en sus límites operacionales.
d) Ejerciten las estructuras internas de datos para asegurar su validez.
Es por ello por lo que se considera a la prueba de caja blanca como uno de los
tipos de pruebas más importantes que se les aplican a los softwares, logrando como
resultado que disminuya en un gran porciento el número de errores existentes en los
sistemas y por ende una mayor calidad y confiabilidad. (Pressman, 1982)
2.2 PRUEBAS DE CAJA NEGRA
Las pruebas de caja negra son, ni más ni menos que, pruebas funcionales
dedicadas a “mirar” en el exterior de lo que se prueba. Estas pruebas se denominan de
varias formas, pruebas de caja “opaca”, pruebas de entrada/salida, pruebas inducidas
por datos…los sinónimos son muchos y muy variados.
¿CÓMO SE REALIZAN LAS PRUEBAS DE CAJA NEGRA?
Cada empresa o tester, tienen su estrategia a la hora de aplicar este tipo de
prueba, dependiendo del tipo de aplicación o el tiempo asignado a pruebas, entre otros
factores, se realizan las pruebas de caja negra de una forma más intensiva o más
exploratorias. Aun así, hay una secuencia de pasos a seguir media estandarizada para
poder realizar este tipo de prueba de manera efectiva:
• Lo primero será un previo análisis de los requisitos y especificaciones del
software.
• El tester diseñará una batería de entradas validas, también llamado escenario de
prueba positiva, para verificar si el software las procesa correctamente. También
5
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
se diseñan entradas no válidas (llamado escenario de prueba negativa)
para comprobar si el software que se está probando es capaz de detectarlas y
reaccionar antes estas entradas.
• Basándose en las entradas, el tester determina para cada una de estas las salidas
esperadas correspondientes.
• Una vez que se tienen las entradas y su correspondiente salida, se diseña los
casos de prueba.
• Se ejecutan esos casos de pruebas.
• El tester comprueba la salida que ha emitido el software con la salida esperada
de los casos de prueba.
• Si la salida del software coincide con la salida esperada, el software hace lo que
tiene que hacer para esa entrada. Pero si la salida del software no coincide con la
salida esperada, hemos encontrado un defecto en el software. Lo que conllevará
su posterior reparación. (HOW TO TESTING, 2019)
2.3 PRUEBAS DE CAJA GRIS
Es una técnica de prueba de software para probar un producto o aplicación de
software con un conocimiento parcial de la estructura interna de la aplicación. El
propósito de la prueba de caja gris es buscar e identificar fallas debido a una estructura
de código incorrecta o al uso de la aplicación.
En este proceso, los errores específicos del contexto asociados con los sistemas
web se identifican comúnmente. Aumenta la cobertura de la prueba al centrarse en
todas las capas de cualquier sistema complejo.
Las técnicas utilizadas para las pruebas de caja gris son:
6
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
• Prueba de matriz: Esta técnica de prueba implica definir todas las
variables en sus programas.
• Pruebas de regresión: Compruebe si el cambio a la versión anterior ha recuperado
otras características del programa en la nueva versión. Se hará probando estrategias
como reexaminar cada una, reexaminar los casos de uso de riesgo, reexaminar
dentro de un firewall.
• Prueba de matriz ortogonal o OAT: Proporciona la máxima cobertura de código
con instancias de prueba mínimas.
• Prueba de patrón: Esta prueba se realiza con datos históricos de fallas anteriores
del sistema. A diferencia de una prueba de caja negra, una prueba de caja gris se
excava dentro del código y determina por qué ocurrió la falla. (EBOOKS, 2015)
3. TIPOS DE PRUEBAS SEGÚN SUS NIVELES
3.1 PRUEBAS NO FUNCIONALES
Las pruebas no funcionales son aquellas que verifican requisitos basados en la
operación de un software, no en la funcionalidad en sí. Este tipo de pruebas, pueden
ayudarnos a determinar la carga que soporta el producto, si su rendimiento es el
correcto o si está estable a nivel de contacto con el servidor.
3.1.1 PRUEBAS DE CARGA
Las pruebas de carga consisten en simular una serie de accesos sobre un
software y medir el resultado. Estas pruebas se realizan bajo demanda esperada
y también en condiciones de sobrecarga.
Estas ayudan a identificar la máxima capacidad operativa de un
software, identificando cuellos de botella y las causas de posible degradación
del desempeño o servicio.
7
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
3.1.2 PRUEBAS DE RENDIMIENTO
Es una técnica de prueba de software no funcional que determina cómo
la estabilidad, la velocidad, la escalabilidad y la capacidad de respuesta de una
aplicación se mantiene bajo una determinada carga de trabajo. Es un paso clave
para asegurar la calidad del software, pero desafortunadamente, a menudo se
ve como una reflexión posterior, en aislamiento, y para comenzar una vez que
se completan las pruebas funcionales, y en la mayoría de los casos, después de
que el código está listo para ser distribuido.
Los objetivos de las pruebas de rendimiento incluyen la evaluación de
la salida de la aplicación, la velocidad de procesamiento, la velocidad de
transferencia de datos, el uso del ancho de banda de la red, el máximo de
usuarios concurrentes, la utilización de la memoria, la eficiencia de la carga de
trabajo y los tiempos de respuesta de los comandos.
3.1.3 PRUEBAS DE VOLUMEN
Comprueban que el funcionamiento de la aplicación con ciertos
volúmenes de datos es adecuado. Estas pruebas no están limitadas a bases de
datos, también se pueden usar, por ejemplo, para medir el desempeño de una
interfaz en el supuesto de que un archivo supera un tamaño estipulado.
El objetivo es ver si dado ciertos volúmenes de datos la aplicación
funciona con normalidad, cuáles son los límites máximos de volúmenes de
datos para la operación e identificar condiciones de falla.
8
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
3.1.4 PRUEBAS DE ESTRÉS
Están relacionadas con las pruebas de carga, ya que, si se eleva por
encima de los parámetros esperados, a estas pruebas se les conoce como
pruebas de estrés. Con las pruebas de estrés se pueden identificar los puntos de
ruptura, límites para uso seguro de la aplicación, confirmar las especificaciones
de diseño, identificar las formas en que el sistema falla, entre otras muchas
validaciones.
3.1.5 PRUEBAS DE SEGURIDAD
Relacionadas con el hacking ético, detectar vulnerabilidades y auditoria
de buenas prácticas, comprueban los atributos o características de seguridad del
sistema, si es un sistema seguro o no, si puede ser vulnerado, si existe control
de acceso por medio de cuentas de usuario, si pueden ser vulnerados estos
accesos.
3.1.6 PRUEBAS DE USABILIDAD
Son aquellas que validan cuanto es de fácil el usar el software de cara a
los usuarios finales, de esta manera consideramos un software adecuado y que,
posiblemente, se posicione por encima de sus competidores principales.
(QALovers, 2021)
3.2 PRUEBAS FUNCIONALES
Las pruebas funcionales son una práctica beneficiosa cuando nos referimos al
proceso del desarrollo. De esta manera puedes tener el progreso del proyecto para la
administración en las pruebas funcionales aprobadas y reprobadas. Aquí se facilita la
comunicación entre desarrolladores, analistas y evaluadores.
3.2.1 PRUEBAS UNITARIAS
9
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
Las pruebas unitarias son las que aseguran que cada célula del
código desarrollado en un componente brinde los resultados adecuados. En
estas pruebas los desarrolladores observan la interfaz y la especificación de un
componente, proporcionando la documentación del desarrollo del código se
prueba exhaustivamente, claro que de forma independiente antes de pasar a
otra unidad.
Las pruebas unitarias admiten pruebas funcionales al ejercer el código que es
más probable que se rompa. Por ello, si usas pruebas funcionales sin pruebas
unitarias, puedes experimentar algunas dificultades para diagnosticar pruebas
fallidas. Así que tenlas muy presente.
3.2.2 PRUEBAS DE COMPONENTES
Las pruebas de componentes se ejecutan de forma independiente para
comprobar que el resultado sea el requerido. Su objetivo es verificar las
funcionalidades y/o usabilidades de los componentes, aunque no solo se limite
a eso.
Para ilustrarla mejor, un ejemplo de esta prueba puede ser cualquier
elemento que tenga entrada y deba generar alguna salida. Puede ser el módulo
de código, página web, pantallas e incluso un sistema dentro de un sistema más
grande, en un componente. Aquí algunos usos de los componentes que puedes
probar:
• Prueba de UI para usabilidad y accesibilidad
• Prueba de carga para asegurar el rendimiento
10
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
• Inyección de SQL a través de componentes de UI para
asegurar la seguridad
• Prueba de login con credenciales válidas e inválidas
3.2.3 PRUEBAS DE HUMO
Las pruebas de humo se realizan para verificar si las funcionalidades
más significativas de la aplicación funcionan o no. De forma que lo más básico
del software se ejecute de forma correcta con pruebas sencillas y rápidas.
Es una de las pruebas funcionales más importantes y debería ser la
primera que se realice en una nueva compilación. La prueba de humo es común
y aunque a veces no se tiene claro su concepto. No se trata de realizar pruebas
exhaustivas sino de verificar que la funcionalidad crítica del sistema realmente
funciona bien.
Si la prueba es exitosa será entonces una compilación estable. El equipo
QA realizará pruebas funcionales para las características o funcionalidades
recién agregadas posteriormente o pruebas de regresión según la situación. Por
otro lado, si esta no es estable y falla la compilación lo común es que se
devuelva al equipo de desarrollo para solucionar los problemas de compilación
y crear una nueva.
3.2.4 PRUEBAS DE INTEGRACIÓN
La prueba de integración es uno de los tipos de prueba funcional más
común y se realiza de forma automatizada. Se realizan para probar
11
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
componentes individuales con el objetivo de verificar cómo los
módulos, que trabajan de forma individual, funcionan cuando estén integrados.
El objetivo de realizar estas pruebas es porque comúnmente los
desarrolladores se enfocan en construir diferentes módulos del sistema
simultáneamente y no se centran en otros. Las pruebas de integración permiten
que los datos y comandos operativos fluyan entre módulos. Hacer que todo
actúe como partes de un solo sistema en lugar de aplicativos aislados.
Usualmente nos ayuda a identificar problemas en las operaciones de la
interfaz de usuario, formatos de datos, invocar API, acceso a bases datos, entre
otras.
Algunas de las verificaciones que se realizan en las pruebas de integración son:
• Prueba de interfaz: en la comprobación de las transferencias de datos
entre dos componentes. Prueba de interfaces como servicios web, API,
entre otros. Se realiza para verificar que los componentes estén
sincronizados entre sí. Ayudan a determinar que diferentes funciones,
como la transferencia de datos entre los diferentes elementos del
sistema, se realizan de acuerdo con la forma en que fueron diseñadas.
3.2.5 PRUEBAS DE REGRESIÓN
Es normal que los desarrolladores modifiquen y mejoren las
funcionalidades de su desarrollo. Por ello existe una gran posibilidad de que
puedan causar ‘efectos’ inesperados en su comportamiento. Estas pruebas de
12
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
regresión se realizan para asegurar que los cambios o adiciones no
hayan alterado ni eliminado las funcionalidades existentes.
El objetivo de las pruebas de regresión es encontrar errores que puedan
haber sido introducidos accidentalmente en la compilación existente y así
garantizar que los errores eliminados continúen así.
3.2.6 PRUEBAS DE ACEPTACIÓN
Cuando ya hemos seguido e implementado las pruebas que requerimos
para nuestro producto, hacemos las pruebas de aceptación. Estas hacen parte
de la última fase de este proceso de testing. Aquí los usuarios reales del
software lo usan para verificar que cumpla con las tareas requeridas en un
ambiente ‘real’. En ocasiones se realiza cuando se hace la entrega del producto
“como punto de control final entre todos los tipos de pruebas funcionales”.
Desde el inicio hasta la implementación, el software deberá someterse a
varios tipos de pruebas. El objetivo siempre será asegurar la calidad para evitar
reprocesos y garantizar las funcionalidades de la aplicación, tanto para el
usuario final, como para el cliente.
Sin más, recuerda que estas son las pruebas de aseguramiento de
calidad más importantes que puedes implementar para entregar desarrollos
productos y/o aplicaciones de otro nivel. Así podrás cumplir con los
requerimientos del cliente y entregar soluciones funcionales y de calidad.
(Vargas, 2021)
13
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
CONCLUSIONES
La comprensión de la importancia de cada prueba de software, para poder encaminarnos al
requerimiento del cliente, a los objetivos de la empresa, ya que gracias a esto el equipo de
desarrollo podrá corregir con distintas pruebas los errores y bugs y se podrá entregar un
producto de buena calidad.
Podemos catalogarlo como como una de las actividades más importantes y fundamentales en el
desarrollo de nuestro proyecto, ya que al emplearlo va a aperturar una serie de posibilidades en
procesos, métodos de trabajo y herramientas necesarias para poder garantizar la calidad del
proyecto.
Existen casos donde las empresas ven estos tipos de pruebas como pérdida de dinero y no como
una inversión a largo plazo, ya que de inmediato con estos maravillosos instrumentos podremos
detectar anomalías o errores que en el futuro nos pueda complicar y generar gastos extras de
dinero, por ende visualizamos la inversión en el testing de software como el aseguramiento de
calidad.
14
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
REFERENCIAS BIBLIOGRÁFICAS
EBOOKS. (2015). Prueba de Caja gris. ¿Qué Es Una Prueba de Caja Gris? Técnicas,
Ejemplo. https://ebooksonline.es/que-es-una-prueba-de-caja-gris-tecnicas-ejemplo/
Hoogenraad, W. (2017). ¿Qué es una prueba manual? ITpedia.
https://es.itpedia.nl/2017/10/11/wat-is-handmatig-testen/
HOW TO TESTING. (2019). Pruebas de Caja Negra. Pruebas de Caja Negra.
https://howtotesting.com/testing-funcional/pruebas-de-caja-negra/
INTERWARE. (2018). Pruebas manuales vs pruebas automatizadas. Software Testing.
https://www.interware.com.mx/blog/pruebas-manuales-vs-pruebas-automatizadas
Pressman, R. S. (1982). Ingeniería del software; Un enfoque práctico.
https://www.ecured.cu/Pruebas_de_caja_blanca#cite_ref-1
QALovers. (2021). Introducción al Testing: Pruebas no funcionales. Introducción Al Testing.
https://www.qalovers.com/2019/01/pruebas-no-funcionales.html
Vargas, C. (20021). Tipos de pruebas funcionales para el aseguramiento de la calidad. Tipos
de Pruebas Funcionales. https://trycore.co/transformacion-digital/tipos-de-pruebas-
funcionales/
15
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
ANEXOS
16
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
17
UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
________________________________________________________________________________________________________
18