Devid - Qa - Ut3 - Tecnicas de Testing - Teoría

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 17

UNIDAD N°3

TECNICAS DE TESTING
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

Contenido
Introducción.................................................................................................................................. 2
¿Qué es ISTQB? ......................................................................................................................... 2
¿Cómo elegir una técnica de prueba?...................................................................................... 2
¿Qué es Software Testing? ....................................................................................................... 2
Técnicas de Pruebas ..................................................................................................................... 3
Concepto y definición ............................................................................................................... 3
Técnicas funcionales y no funcionales ..................................................................................... 4
Pruebas más utilizadas en ejercicio: ..................................................................................... 4
Tipos de Pruebas........................................................................................................................... 7
Caja Negra ................................................................................................................................. 7
Introducción y objetivo ......................................................................................................... 7
¿Qué son las pruebas de caja negra? .................................................................................... 7
Tipos de técnicas de Caja Negra ............................................................................................ 8
Por qué usar pruebas de Caja Negra ................................................................................... 10
Caja Blanca .............................................................................................................................. 11 1
Introducción y objetivo ....................................................................................................... 11
Tipos de técnicas de caja blanca ......................................................................................... 12
Por qué se usan técnicas de caja blanca ............................................................................. 13
Basada en la experiencia ........................................................................................................ 14
Metodologías ...................................................................................................................... 14
Tipos de pruebas basadas en la experiencia ....................................................................... 14
Por qué utilizar estas técnicas ............................................................................................. 16
Conclusiones generales .............................................................................................................. 16

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

Introducción
¿Qué es ISTQB?

“International Software Testing Qualifications Board” es una organización internacional


– Edimburgo – basada en el trabajo voluntario de expertos en pruebas de software a nivel
mundial.

¿Cómo elegir una técnica de prueba?

La elección se basa en una serie de factores, a saber:

 Tipo de componente o sistema.


 Complejidad del componente o sistema.
 Estándares de regulación.
 Requisitos del cliente y del contrato.
 Niveles y clases de riesgos.
 Objetivo de prueba.
 Documentación disponible.
 Conocimiento del probador.
 Herramientas disponibles.
 Tiempo.
 Presupuesto.
 Uso previo del software. 2
 Experiencia previa en el uso de alguna técnica o sistema que se va a probar.

Algunas técnicas son más adecuadas para ciertas situaciones y niveles de prueba; otras
se pueden aplicar en todos los niveles de prueba. En general, cuando se crean casos de prueba,
los probadores utilizan una combinación de técnicas de prueba para lograr los mejores resultados
a partir del esfuerzo de prueba.

¿Qué es Software Testing?

Es la actividad de probar un software para verificar el funcionamiento y encontrar


errores. Existen varias técnicas de prueba manual que ayudan a reducir el número de casos de
prueba que se ejecutarán al tiempo que aumentan la cobertura de prueba. Ayudan a identificar
condiciones de prueba que de otro modo serían difíciles de reconocer.

Existen profesionales que se dedican expresamente a realizar Software Testing. Su


trabajo consiste en poner a prueba cada software para entregar un informe a las partes
interesadas, con detalles como: si el software cumple con los requisitos y el diseño acordados, si
la aplicación funciona como se esperaba, si la aplicación no contiene errores graves y si cumple
con el uso previsto según las expectativas del usuario.

El Software Testing o Prueba de Software es una metodología de desarrollo de software


que se basa en la investigación de un modelo para entregar un informe sobre la calidad del mismo
a las partes interesadas.

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

De esa manera, se garantiza que el software cumpla con los requisitos, que no contiene
errores graves y que todo funciona como se esperaba. Veamos en detalle qué es un Software
Testing, sus tipos y técnicas a continuación.

Técnicas de Pruebas
Concepto y definición

La técnica es la forma en la que se lleva a cabo una tarea de una manera específica; una
buena técnica es algo que se realiza para que lo que se entregue sea el mejor resultado posible
del trabajo realizado. Cuanto más refinadas estén mejor será el producto final; además, al
volverse experto en las diferentes técnicas, se construyen buenas herramientas para realizar el
trabajo.

Las técnicas de prueba son las herramientas con las que cuenta el equipo de calidad para
ejecutar proyectos de calidad. Es clave tener una comprensión básica de lo que se está tratando
de resolver para lograr el éxito en cualquier prueba de calidad. Si bien no todas las técnicas se
ajustarán a los objetivos de calidad actuales deben evaluarse todas, el uso a corto y largo plazo
en su conjunto de herramientas.

Estas técnicas se utilizan para lograr objetivos específicos y acelerar el tiempo que lleva
probar el producto.

Es muy importante desarrollar el plan de pruebas (que no es objeto de este curso) para
poder exponerlo ante las diferentes áreas del equipo, utilizando un lenguaje que todo el equipo 3
tenga familiarizado ya que en esta instancia es más importante enfocarse en el resultado que en
las terminologías técnicas; el equipo quiere saber que el producto funciona y qué no debe suceder
para asegurarse de que no se repetirá en versiones futuras. Por ello, el foco debe estar en
comunicar cómo los resultados de las pruebas desafían el proyecto y el producto y por qué fallas
específicas están afectándolo. De manera que, si alguien cuestiona los resultados, siempre se los
puede redirigir al plan de pruebas y explicarle la técnica que se utilizó.

Las pruebas y las técnicas utilizadas son parte de un entorno de colaboración para ayudar
a garantizar los objetivos comunes de lograr un producto de calidad. La forma en que se comunica
el plan y, lo más importante, los resultados de las pruebas afectarán directamente si el enfoque
del equipo para las pruebas de calidad se considera exitoso.

Existen varias técnicas de prueba manual que ayudan a reducir el número de casos de
prueba que se ejecutarán al tiempo que aumentan la cobertura de prueba. Ayudan a identificar
condiciones de prueba que de otro modo serían difíciles de reconocer. El objetivo de utilizar
numerosas metodologías de software testing en el proceso de desarrollo es asegurarse de que la
aplicación pueda funcionar con éxito en múltiples entornos y en diferentes plataformas.

La clave para lanzar software de alta calidad que pueda ser adoptado fácilmente por los
usuarios finales es construir un marco de prueba sólido que implemente metodologías
de software testing tanto funcionales como no funcionales.

En conclusión, las técnicas son herramientas a disposición para desarrollar un plan de


pruebas que cubra el objetivo para garantizar la calidad del producto, sin dejar de lado el tiempo

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

que es el que determinará la cobertura de las pruebas, los casos y condiciones, brindando una
prueba exhaustiva que no afecte al cronograma.

Técnicas funcionales y no funcionales

El proceso de prueba no implica un camino lineal, en general los casos de prueba suelen
tener capas sobre capas de técnicas; algunos trabajan juntos y otros suelen ser independientes,
y algunos suelen ser intercambiables en diferentes etapas de prueba. Como parte de las pruebas
se realizarán dos tipos típicos de evaluación:

 Primero hay pruebas funcionales, cuando el equipo de calidad revisa el diseño del
producto y ve si el software cumple con la especificación;
 Segundo, las pruebas no funcionales que evalúan las partes “extrañas” del software,
así como también la usabilidad y confiabilidad.

Teniendo todo esto en cuenta, se puede decir que las técnicas no son diferentes tipos de
pruebas, sino que son facetas de un proceso. Por ello, la calidad termina siendo para el
desarrollador como un socio en su esfuerzo por entregar el producto, viendo las técnicas de
prueba como herramientas importantes para probar conceptos y evaluar el trabajo.

A continuación, se muestra la lista de algunos tipos comunes de pruebas de software:


Los tipos de pruebas funcionales incluyen:

 Examen de la unidad
 Pruebas de integración
 Prueba del sistema 4
 Prueba de cordura
 Prueba de humo
 Prueba de interfaz
 Pruebas de regresión
 Prueba beta / aceptación

Los tipos de pruebas no funcionales incluyen:

 Pruebas de rendimiento
 Prueba de carga
 Pruebas de estrés
 Prueba de volumen
 Pruebas de seguridad
 Pruebas de compatibilidad
 Instalar pruebas
 Pruebas de recuperación
 Pruebas de fiabilidad
 Pruebas de usabilidad
 Pruebas de conformidad
 Pruebas de localización

Pruebas más utilizadas en ejercicio:

A continuación, explicamos los tipos de pruebas más utilizados en ejercicio.

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

 Prueba Alfa: Es el tipo de prueba más utilizada en la industria del software. Su objetivo es
identificar todos los posibles problemas o defectos antes de lanzarlo al mercado o al
usuario. Se lleva a cabo al final de la fase de desarrollo, pero antes de la prueba beta.
 Pruebas de aceptación: En este caso, es el cliente quien realiza una prueba de aceptación
y verifica el flujo del sistema de extremo a extremo según los requisitos comerciales.
 Pruebas Ad-hoc: Se realiza sobre una base Ad-hoc y su objetivo es encontrar los defectos
y romper la aplicación ejecutando cualquier flujo de la aplicación o cualquier
funcionalidad aleatoria.
 Pruebas de accesibilidad: Determina si el software es accesible para personas con
capacidades diferentes (sordos, daltónicos, enfermedades mentales, ciegos, ancianos y
otros grupos).
 Prueba Beta: Es un tipo formal de prueba de software. Se realiza en el entorno real antes
de lanzar el producto al mercado para los usuarios finales reales. Con ella, se garantiza
que no haya fallas importantes en el software y que el producto cumpla con los requisitos
comerciales y las expectativas del cliente.
 Pruebas de fondo: La prueba realizada en la base de datos (SQL Server, MySQL y Oracle,
etc.) se conoce como Prueba de base de datos o Prueba de fondo. Estas pruebas implican
prueba de estructura de tabla, esquema, procedimiento almacenado, estructura de
datos, etc.
 Pruebas de compatibilidad del navegador: Es un subtipo de prueba de compatibilidad y lo
realiza el equipo de pruebas para garantizar que el software pueda ejecutarse con la
combinación de diferentes navegadores y sistemas operativos.
 Pruebas de compatibilidad con versiones anteriores: Es una prueba que valida si el
software recientemente desarrollado o el software actualizado funciona bien con 5
versiones anteriores del entorno o no.
 Prueba de caja negra: Se basa en los requisitos y la funcionalidad, sin considerar el diseño
interno.
 Prueba de valor límite: Verifica el comportamiento de la aplicación a nivel de límite. Se
realiza para verificar si existen defectos en los valores límite.
 Prueba de rama: También llamada prueba de caja blanca, se lleva a cabo durante la
prueba de la unidad. El nombre en sí sugiere que el código se prueba a fondo al atravesar
cada rama.
 Pruebas de comparación: Compara las fortalezas y debilidades de un producto con sus
versiones anteriores u otros productos similares.
 Prueba de compatibilidad: Evalúa cómo se comporta y ejecuta el software en un entorno
diferente, servidores web, hardware y entorno de red.
 Prueba de componentes: Generalmente se lleva a cabo luego de las pruebas unitarias.
Evalúa múltiples funcionalidades como un solo código y su objetivo es identificar si existe
algún defecto después de conectar esas múltiples funcionalidades entre sí.
 Pruebas de extremo a extremo: Evalúa el entorno de aplicación en un contexto que simula
el uso real. Puede consistir en interactuar con una base de datos, usar comunicaciones
de red o interactuar con otro hardware, aplicaciones o sistemas.
 Particionamiento de equivalencia: Es una técnica de prueba y un tipo de prueba de caja
negra. Durante esta partición de equivalencia, se selecciona un conjunto de grupos y se
recogen algunos valores o números para la prueba. Dichos valores deben generar la
misma salida. El objetivo de la prueba es eliminar los casos de prueba redundantes.
 Ejemplo de prueba: Son pruebas en tiempo real que se realizan en un escenario real o
escenarios basados en la experiencia de los probadores.

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

 Pruebas exploratorias: Es una prueba informal realizada por el equipo de prueba para
explorar la aplicación y buscar defectos que existan en la aplicación.
 Pruebas funcionales: Ignora las partes internas y se enfoca solo en la salida para verificar
si la aplicación cumple con el requisito o no. Es un tipo de prueba de caja negra.
 Prueba de interfaz gráfica de usuario (GUI): Valida la GUI según el requisito comercial.
Incluye el tamaño de los botones y el campo de entrada presente en la pantalla, la
alineación de todo el texto, las tablas y el contenido de las tablas.
 Prueba de gorila: Aplicada por probadores y desarrolladores, la prueba de gorila o Gorilla
Testing evalúa exhaustivamente cada módulo para verificar la solidez de la aplicación.
 Prueba Happy Path: Su objetivo es probar la aplicación con éxito en un flujo positivo. No
busca condiciones negativas o errores.
 Prueba de integración incremental: Es un enfoque ascendente para pruebas que se aplica
cuando se agrega una nueva funcionalidad. Queda a cargo de programadores y
probadores.
 Pruebas de instalar / desinstalar: Es un tipo de prueba que se aplica en procesos de
instalación / desinstalación completos, parciales o de actualización en diferentes
sistemas operativos en diferentes entornos de hardware o software.
 Pruebas de integración: Es un tipo de prueba no funcional utilizada para verificar cuánta
carga de trabajo máxima puede manejar un sistema sin ninguna degradación del
rendimiento. Estas pruebas ayudan a encontrar la capacidad máxima del sistema bajo
una carga específica y cualquier problema que cause la degradación del rendimiento del
software.
 Monkey Testing: Es una prueba que supone que, si un mono usa la aplicación, ingresará
los valores sin ningún conocimiento o comprensión de la aplicación. De esta manera, el 6
objetivo de Monkey Testing es verificar si una aplicación o sistema se bloquea
proporcionando datos / valores de entrada aleatorios.
 Prueba de mutación: Es una prueba de caja blanca en la que se cambia el código fuente
de uno de los programas y verifica si los casos de prueba existentes pueden identificar
estos defectos en el sistema.
 Pruebas negativas: Su objetivo es ver si se puede “romper” el sistema. Para ello se utilizan
datos incorrectos, datos no válidos o entradas.
 Pruebas no funcionales en general: Son pruebas de carga, pruebas de tensión, seguridad,
volumen, pruebas de recuperación, etc. que se realizan para garantizar si el tiempo de
respuesta del software o la aplicación es lo suficientemente rápido según los requisitos
del negocio.
 Pruebas de rendimiento: Son pruebas que se realizan para verificar si el sistema cumple
con los requisitos de rendimiento. Para ello, se utilizan diferentes herramientas de
rendimiento y carga.
 Pruebas de recuperación: Se encarga de validar qué tan bien se recupera la aplicación o
el sistema de fallas o desastres. Determina si el sistema puede continuar la operación
después de un desastre.

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

Tipos de Pruebas
Caja Negra
Introducción y objetivo

Cuando se visualizan los objetivos centrales de una prueba de calidad, se están


imaginando pruebas de caja negra. La prueba de caja negra es una evaluación de lo que se puede
ver.

La razón por la que tiene el nombre de caja negra es porque se trata de ver el software
en sí sin saber lo que está sucediendo dentro; piensa en el comportamiento del producto y cómo
se supone que debe funcionar. Este es el foco de las pruebas de caja negra: evaluar la interfaz, la
entrada de datos, la salida, el diseño de la aplicación.

Cuando los equipos de producto crean una aplicación de software para resolver un
problema en particular, es la prueba de caja negra la que mide la eficacia con la que el producto
logró ese propósito. Mide si se cumple con las especificaciones de diseño de todos los niveles;
desde el campo de entrada más pequeño hasta el objetivo general del software, las pruebas de
caja negra miden el software completo desde un enfoque externo.

Las pruebas de calidad efectivas hablan con datos desde todos los puntos de vista, no hay
lugar para la subjetividad. Las pruebas de caja negra adoptan este enfoque al permitir que las
pruebas hablen con los datos. Gran parte del enfoque de esta prueba es binario, ya que informa
si funciona o no. La entrega de los datos debe centrarse en los resultados fácticos extraídos de
sus técnicas de prueba de caja negra; podría mostrarse dónde ocurre exactamente el problema 7
y, a partir de pruebas, encontrar problemas repetibles.

Los aspectos de la prueba funcional de la caja negra son las pruebas primarias empleadas
para evaluar el rendimiento de un producto. Las pruebas no funcionales en pruebas de caja negra
evalúan el software a partir de piezas externas que se conectan a la aplicación; no se centra en
cómo funciona el software, sino en qué tan bien funciona el software (confiabilidad, usabilidad,
rendimiento se evalúan en diferentes entornos para garantizar que el producto funcione según
los requisitos del diseño en el mundo donde opera).

El objetivo de una prueba de caja negra es evaluar una aplicación por sus méritos y
diseño. Si bien cada equipo desarrolla su set de herramientas, hay algunas técnicas básicas que
la mayoría de los equipos utilizan para garantizar que el producto funcione.

¿Qué son las pruebas de caja negra?

Para explicar el origen del término es útil realizar un Diagrama EPS (Entrada, Proceso y
Salida) donde cada elemento corresponde a:

 Entrada: Datos que recibe un determinado proceso.


 Proceso: Operaciones que se realizan para dar solución a un problema.
 Salida: Solución al problema originalmente planteado.

Las operaciones que se realizan en el proceso, por ser de tipo caja negra no son visibles
por el usuario, ya que desconoce su implementación. Sin embargo, a pesar de no conocer la forma

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

en la que se le da solución al problema, conoce los datos de entrada y la salida que arroja el
proceso.

En una prueba de caja negra se trata de garantizar que se ha probado la mayor cantidad
de software posible dentro de las limitaciones de tiempo, datos y probabilidad matemática. Se
utilizan estas pruebas para eliminar problemas razonables y detectar los valores atípicos. Las
pruebas de Caja Negra comienzan con los enfoques más rudimentarios para el análisis de datos
y se expanden a exámenes más complicados de la lógica, el rendimiento y la funcionalidad del
software; todos los buenos casos de prueba comienzan con los datos. El software en su núcleo
trata de tomar información y decirle a la computadora cómo tomarla; luego el usuario carga datos
y la aplicación levanta los datos para ver cómo tomarla.

Tipos de técnicas de Caja Negra

Partición de equivalencia

Consiste en tomar los valores de entrada de un campo, probar las respuestas válidas y no
válidas y, a continuación, particionarlas con condiciones de prueba similares para reducir la
cantidad de pruebas. Se realizan cortes por grupo para acelerar la validación del campo

El principio de esta prueba es que el caso de prueba de un valor representativo de cada


clase es igual a una prueba de cualquier otro valor de la misma clase. De esa manera, se pueden
identificar equivalencias válidas y no válidas.

Pruebas de análisis de valor límite


8
Éstas trabajan de la mano con la anterior al garantizar que funcionen los límites
apropiados colocados en las particiones, pudiendo identificar fácilmente los valores incorrectos
para un campo, pero debe asegurarse que se entregue el error correcto cuando se ingresa.

Esta técnica de prueba de caja negra se basa en el principio de que, si un sistema funciona
bien para estos valores particulares, funcionará perfectamente para todos los valores que se
encuentran entre los dos valores límite. Las pautas para este tipo de análisis son:

 Si una condición de entrada está restringida entre los valores x e y, entonces los casos de
prueba deben diseñarse con valores x e y con otros valores que estén por encima y por
debajo de los mismos.
 Si una condición de entrada es un gran número de valores, se debe desarrollar el caso de
prueba que necesita ejercer los números mínimo y máximo. También se ponen a prueba
los valores superiores e inferiores a los valores mínimos y máximos.
 Al aplicar las pautas 1 y 2 a las condiciones de salida, da una salida que refleja los valores
mínimos y máximos esperados. También prueba los valores inferiores o superiores.

Pruebas de todos los pares

También denominada “prueba de pares”, toma dos valores ingresados y luego evalúan
todas las combinaciones posibles para garantizar que funcionen correctamente.

Cuando se utiliza esta prueba se está tratando de reducir el número de pares de prueba
de función de la respuesta lógica de cada conjunto de pares asegurándose de que los lógicos
funcionen.

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

Pruebas de las tablas de decisiones (causa-efecto)

Toman los valores correctos introducidos en un campo y garantizan que esos campos
introducidos ofrezcan el comportamiento correcto. Evalúa también las interacciones complicadas
entre llamados.

Pruebas de gráfico de efecto causado que tiene un método de análisis similar al de la


prueba de la tabla de resultados. En estas pruebas se trata de la salida: es decir, se avanza a
medida que la salida cumpla con algo predefinido.

Pasos para crear una tabla de decisiones:

 Alistar las entradas en filas.


 Ingresar todas las reglas en la columna.
 Rellenar la tabla con la combinación diferente de entradas.
 En la última fila, anotar la salida contra la combinación de entrada.

Pruebas de transición de estado

Pruebas de transición de estado ayudan a evaluar los valores y comprender cómo se


comporta el software cuando se ve obligado a cambiar. Cada vez que el software cambia de
estado cambia el flujo de trabajo esperado. Estas pruebas son importantes porque el cambio de
estado es un evento significativo para la aplicación.

Es una técnica en la que los cambios en las condiciones de entrada cambian el estado de
la aplicación bajo prueba (AUT: Application Under Test). De esa manera se puede probar el
comportamiento de un AUT. 9

Durante la aplicación de esta técnica el equipo de prueba proporciona valores de prueba de


entrada positivos y negativos para evaluar el comportamiento del sistema.

Pautas para aplicar la técnica de transición de estado

 La transición de estado debe usarse cuando un equipo de prueba está


probando la aplicación para un conjunto limitado de valores de entrada.
 Debe usarse cuando el equipo de prueba quiere probar la secuencia de eventos
que suceden en la aplicación bajo prueba.

Prueba de humo

A menudo, los equipos consolidan muchas de estas técnicas en una simple lista de
pruebas básicas necesarias para ayudar a garantizar que el producto funcione.

Estas pruebas son a menudo parte de la estrategia de prueba de regresión en la que se


verifica el software para asegurarse de que nada esté roto.

Prueba de casos de uso

Esta es la más personalizada y adoptada de todas las pruebas de calidad, en esta prueba
imita el proceso de seguir de todo el software a través de todos sus potenciales, a través de este
ejercicio navega en cada proceso y función potencial para ejercitar todo el producto.

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

Las pruebas de casos de uso no tienen fundamentos en las pruebas de usuario. No está
diseñado para ningún uso tradicional del producto, sino para usar el producto clic a clic en su
totalidad.

Durante las pruebas de caso de uso es muy probable que se exploren partes del producto
que los clientes rara vez toquen. Su enfoque no está en áreas específicas inicialmente, sino en
áreas y condiciones específicas requeridas para evaluar el software. El propósito es garantizar
que se examine todo el producto.

LA PRUEBA DE CAJA NEGRA ES EL NUCLEO DE LAS PRUEBAS DE CALIDAD. TIENE EL IMPACTO


MAS GRANDE EN LA CALIDAD GENERAL DEL PRODUCTO.

Por qué usar pruebas de Caja Negra

Muchas veces, ante la necesidad de acortar los tiempos, suele solicitarse la reducción de
casos de prueba. Para poder evitarlo, es necesario representar el plan de prueba como un solo
proceso, un solo programa y un solo resultado.

Las pruebas de caja negra son una pieza de una receta y, como en cualquier receta, no se
puede pretender eliminar un ingrediente y esperar un buen resultado. Cuando se ejecutan las
técnicas de caja negra de manera efectiva, ofrecen problemas rígidos y repetibles. Se utilizan para
proporcionar una evaluación clara y completa de la calidad de un software. Las pruebas de caja
negra también proporcionan una exhaustiva evaluación de los desafíos del producto; en la
mayoría de los casos revelará problemas en todo el producto, mostrando áreas problemáticas y
dónde el desarrollo necesita enfocar su energía.
10
Las pruebas de caja negra siguen siendo un requisito básico de cualquier programa. En la
prueba de caja negra se persigue un análisis completo del producto de arriba hacia abajo, y
utilizando técnicas efectivas, los clientes obtienen un producto confiable con un rendimiento
predecible. Las técnicas de prueba de caja negra se utilizan para garantizar que un software
ofrezca una aplicación de calidad, estable y predecible que los usuarios aprecien.

¿Cuándo aplicar este tipo de pruebas?

Las pruebas de caja negra suelen estar asociadas a los siguientes factores:

 Perfil junior: Quién esté realizando sus primeras pruebas, a fin de comenzar desde
lo general a lo particular, empezará con pruebas de caja negra para comprender
el funcionamiento general de un determinado software. Posteriormente, una vez
adquirido el conocimiento previo, podrá realizar pruebas de caja blanca donde
deberá conocer sobre el comportamiento interno de cada uno de los procesos
vinculados al software.
 Pruebas exploratorias: Un perfil experimentado puede ser requerido para la realización
de pruebas exploratorias de un software a fin de realizar un informe de alto nivel o
auditoria de la calidad del mismo.
 Falta de recursos técnicos: Los detalles de la implementación de cierto proceso que
impacte en una base de datos en la que se almacene información, o bien, una API a partir
de la cual se obtenga información pueden ser herramientas que no estén disponibles
para el equipo de pruebas.
 Pruebas de regresión: Las funcionalidades de un software que no sufren alteraciones
entre cada lanzamiento de una nueva versión son parte de las pruebas de regresión. En

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

este caso, dado que su comportamiento no ha variado, una prueba funcional de alto nivel
puede ser una estrategia válida mientras que las pruebas de caja blanca sean destinadas
al estudio minucioso de los procesos vinculados a las nuevas funcionalidades del
software.
 Confidencialidad: El acceso a la información puede no estar disponible por restricciones
de la empresa o acuerdos de confidencialidad con un cliente. En estas situaciones en las
que no se cuenta con la posibilidad de visualizar, modificar o eliminar datos las pruebas
de caja negra son una técnica de prueba útil a implementar.
 Probadores “Beta”: Las versiones de un software previas a un lanzamiento oficial se
caracterizan por analizar aspectos superficiales, de usabilidad en general o rendimiento
que encuadran con la detección de errores para este tipo de pruebas.

Caja Blanca
Introducción y objetivo

Las pruebas de caja blanca se centran en evaluar la estructura. Se utilizan pruebas de caja
blanca para verificar la integridad, la estructura y la calidad para ofrecer el mejor software posible.
En las pruebas de caja blanca se está invirtiendo tiempo y esfuerzo para ayudar a garantizar que
el desarrollo ofrezca un producto basado en un sistema confiable y predecible.

En una prueba de caja blanca, el código fuente se somete a una evaluación de llamadas
de función, flujos de código, llamadas de seguridad y otros aspectos para ayudar a entregar
resultados sin errores. Este ejercicio ayuda a limitar los posibles problemas de código y
proporciona al equipo de calidad una buena visión cuando los cambios de producen más adelante
en el desarrollo. Además, le da al equipo información sobre el funcionamiento interno de la 11
aplicación, que se puede aprovechar para diseñar pruebas de caja negra.

Si bien las pruebas de caja blanca son un método eficaz para evaluar la calidad de la
aplicación, no se utilizan con tanta frecuencia como las técnicas de caja negra; en compañías
pequeñas el esfuerzo puede ser redundante respecto a las pruebas que realizan los
desarrolladores. En la mayoría de los casos, estos tipos de prueba se implementan en programas
con aplicaciones grandes que tienen muchas piezas con muchos desarrolladores diferentes. Es
un método para garantizar que cada pieza juegue bien junta.

Lo bueno de las pruebas de caja blanca es que hay muchas herramientas automatizadas
que prueban el software y el proceso tiene muchos elementos en los que se puede confiar para
ofrecer resultados predecibles y efectivos. Las pruebas de caja blanca son complicadas y
requieren habilidades técnicas específicas; sin embargo, agrega una capa significativa de
integridad al código fuente del producto y también una comprensión más profunda del producto.

A medida que se entrega cada pieza, las pruebas de caja blanca requieren habilidades
específicas para evaluar con éxito la estructura y garantizar que el código entregado sea confiable,
predecible y estable.

Durante el último tiempo se han fusionado un poco ambas pruebas. A medida que los
equipos trabajan para acelerar los tiempos, cronogramas y mejorar la calidad del producto, estas
dos variedades de prueba trabajan mano a mano como parte de los casos de prueba. Al final del
día, cuanto más estable sea el código, más rápida será la ejecución de la prueba de caja negra. La
estabilidad del código es un problema grave durante las pruebas de caja negra, y tener las pruebas
de caja blanca integradas en el proceso puede agregar mejoras significativas en la línea de tiempo

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

de prueba. Los equipos que implementan este tipo de pruebas se enfrentan a decidir si desean
confían en las aplicaciones de software de prueba o invertir en la experiencia de alguien que
pueda evaluar el código.

Tipos de técnicas de caja blanca

Pruebas dinámicas

Junto a las pruebas estáticas se centran en el error buscando encontrar errores en el


código a un nivel muy básico. Esto se puede hacer simplemente revisando el código, línea por
línea o utilizando una herramienta automatizada.

En las pruebas dinámicas, el código se ejecuta de nuevo línea por línea y evalúa su
rendimiento. En ambos casos el esfuerzo es buscar errores pequeños que puedan crear
problemas más grandes

Pruebas estáticas

Durante estas pruebas se puede realizar un análisis a través de un tutorial formal con el
desarrollador donde se evalúan el flujo y la complejidad de los objetos de software. Es un proceso
de atención, pero con algunas de las herramientas más avanzadas que existen es posible moverse
a través del código rápidamente.

También hay una gran cantidad de herramientas de prueba dinámica que evaluarán el
código, línea por línea. A medida que se ejecuta el código, este software revisará los
recursos, el uso de memoria de las bibliotecas y otros tipos de puntos problemáticos 12
donde surgirán errores. Estas herramientas buscarán partes del código que puedan crear
inestabilidad

Pruebas unitarias

Las pruebas unitarias más avanzadas exploran que los componentes individuales del
código funcionen como se espera en lugar de evaluar la totalidad del software, las pruebas
unitarias dividen el código en bits y piezas manejables, y cada uno se mide por su propio
rendimiento.

Pruebas de flujo

Evalúan el orden de la instrucción y las llamadas e instrucciones de la función. En estas


técnicas la estrategia es seguir el flujo del software, evaluando su lógica y viendo si cumple con
los requisitos del software. Existen dos enfoques para esto: el flujo de control mide las piezas
individuales del código fuente, mientras que el flujo de datos lo lleva un paso más allá al ver si las
variables que interactúan con el software provocan la respuesta correcta. En ambos casos se trata
de rompecabezas lógicos que evalúan la eficiencia, la velocidad y la fiabilidad de la aplicación. El
software con un flujo deficiente no sólo crea problemas para el rendimiento de las aplicaciones,
sino que también hace que el software sea difícil de leer y evaluar; esto crea problemas para
futuras versiones si cambia de desarrollador o el software es un componente de una aplicación
más grande.

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

Pruebas de bifurcación (branch testing)

Llevan la evaluación del flujo de datos más allá, pero analizan cada rama potencial de la
aplicación. En esta técnica se realiza una evaluación de cada rama y el código para ver que no
resulten en callejones sin salida o rarezas. Es simplemente una prueba de estructura del código
que se usa para asegurarse de que no existan cabos sueltos.

Pruebas de trayectoria (Path testing)

Evalúan la integridad estructural del software. Las diversas técnicas de pruebas de ruta
buscan garantizar la evaluación de cada ruta potencial en el software; la ruta de acceso base
busca evaluar todas las rutas posibles de ejecución. Otros métodos buscan graficar estos caminos
para que se pueda visualizar cómo funciona. En esencia, estas pruebas miden la lógica del
software.

Pruebas de cobertura de código

Ya más profundas, se trata de numerosas variedades de subtécnicas desarrolladas para


medir la calidad del diseño y el rendimiento del software. Estas pruebas incluyen coberturas de
declaración, decisión y modificación, del código de condición; todas estas son pruebas de
validación efectivas.

Ir línea por línea en el código sería ineficiente, sin embargo, con las herramientas
adecuadas, las pruebas de cobertura de código proporcionan una gran herramienta para medir
la eficiencia y el rendimiento del código fuente. Cuando se ejecuta una de estas técnicas, a
menudo se entrega un resumen del rendimiento de toda la aplicación. 13

Por qué se usan técnicas de caja blanca

Las pruebas de caja blanca son las formas en las que se asegura que una construcción
tenga las características que garantizan un producto sea duradero, liviano y compatible,
comenzando desde una buena base.

La programación es similar al lenguaje: hay estándares, pero cada uno incluye sus notas
de color. Si bien existen reglas de programación, al trabajar con varios desarrolladores, surgen las
diversas formas de cada uno de programar y es ahí donde la calidad puede agregar valor junto a
las técnicas de caja blanca.

Utilizando pruebas estáticas o dinámicas, los equipos de calidad pueden utilizar las
técnicas de caja blanca para revisar el software en busca de posibles defectos, desviación de
estándares y otros problemas. Estas técnicas no son necesariamente críticas, se centran en
verificar si el código funciona y ofrece los resultados esperados. Sin embargo, las técnicas de caja
blanca a menudo pueden revelar problemas de integridad.

Cuando una de estas pruebas se ejecuta correctamente, prueba cada estructura y


elemento del código. Permite al equipo de calidad hacer un poco de limpieza, evitando que el
código innecesario se lleve adelante al código final. Esto ayuda a que los programadores no salgan
de los estándares, brindando un código económico que cumpla con las necesidades.

Se implementan estas técnicas buscando entender que el producto que luego se


someterá a pruebas de caja negra, y las pruebas de base de experiencia, se basa en algo que se

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

puede arreglar si se descubre que está roto. Las pruebas de caja blanca agregan valor al proceso
de garantizar que el software que se prueba es sólido y está listo para ser evaluado de manera
más rigurosa. Es un análisis de la estructura subyacente, de las prácticas de los desarrolladores y
la calidad general del funcionamiento interno del producto; el funcionamiento interno del
software debe ser capaz de conectarse y comunicarse con otros recursos, y las técnicas de prueba
de caja blanca ayudan a garantizar que eso suceda. Por todo esto tiene valor.

Finalmente, este tipo de pruebas pueden parecer como una limpieza, pero los estándares
y las mejores prácticas son donde brillan las pruebas de caja blanca. Permiten a las empresas
mantener el código fuente eficiente, limpio y confiable. El resultado es que las pruebas de caja
blanca facilitan el desarrollo a largo plazo; el código fuente se vuelve más fácil de evaluar, las
versiones futuras son más fáciles de implementar y es más fácil para otros desarrolladores
trabajar con el código existente.

Basada en la experiencia
Metodologías

Las pruebas basadas en la experiencia aprovechan el conocimiento adquirido a lo largo


del tiempo para su beneficio, para ayudar a acelerar y mejorar las pruebas. Esta experiencia
práctica revela a menudo una comprensión clara de los problemas en lugar de procedimientos
de prueba estrictos.

Contar con expertos permite una ejecución más rápida y una mayor cohesión con el
equipo de desarrollo de productos. Normalmente se solicita un enfoque ad hoc, las pruebas
basadas en la experiencia se centran en utilizar la experiencia del probador para abordar 14
problemas específicos, áreas de preocupación o simplemente para hacer un seguimiento de
algunos informes o datos anteriores.

Cuando el desarrollo requiere este tipo de pruebas, se busca aprovechar el conjunto de


las habilidades del equipo en lugar de seguir procedimientos rígidos, generalmente
característicos de las pruebas de calidad. El enfoque basado en la experiencia no es un modelo
típico para las pruebas. Por lo general se usa en situaciones únicas en las que el software necesita
pruebas inmediatas y no hay tiempo para desarrollar un plan de prueba completo.

Debido a este enfoque no estructurado, depende del probador tratar de elaborar las
estrategias y utilizar una técnica que ayude a proporcionar procedimientos de prueba
documentables ya que los desarrolladores querrán entender qué es lo que se probó, cómo se
probó y cuáles son los resultados de esas pruebas.

La prueba basada en la experiencia no tiene que llevar años. Sin embargo, generalmente
son las relaciones y el respeto ganado lo que crea la oportunidad para que los equipos utilicen
este tipo de pruebas. Con el tiempo, los datos definen el éxito de los modelos de prueba basados
en la experiencia; si hay experiencia y consistencia demostrada, los desarrolladores miran más
allá de cosas como la tenencia porque confían en la integridad de los resultados y aprecian la
flexibilidad con la que el equipo de calidad asume este enfoque en situaciones específicas.

Tipos de pruebas basadas en la experiencia

Si bien hay muchos softwares para realizar pruebas, hay veces que se requiere apresurar
la calidad y se necesitan resultados, estando el producto puede estar en una etapa prematura o

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

ser completamente nuevo para el equipo de calidad, siendo esencial la flexibilidad y siguiendo las
metodologías de prueba, pero de una manera menos rígida.

Las técnicas de prueba basadas en la experiencia están destinadas a ser exhaustivas y se


basan en el mismo flujo estricto de cualquier otro enfoque de prueba. Sin embargo, estas técnicas
no están documentadas en la forma que lo están las pruebas de caja negra o blanca, requiere del
probador adoptar un enfoque que ofrezca pruebas exhaustivas repetibles, pero con menos
preparación y más enfoque en aprovechar el conocimiento obtenido al explorar el software en el
pasado.

No obstante, sucede que existe un plan y debe ser respetado, se busca una fuente o
recurso y se definen las metas y objetivos para las pruebas; lo que significa que estas pruebas se
ejecutan de manera profesional siguiendo un propósito y enfoque. Si no se cuenta con un plan
de pruebas las especificaciones del producto son un buen inicio; si no está disponible, podría ser
una lista de materiales de software; el punto es que las técnicas no están destinadas a derivarse
de la nada. Si bien estas pruebas se basan en la experiencia y las habilidades del probador, se
espera que la prueba se ejecute como si se estuviera siguiendo un plan de prueba, pero con un
enfoque ad hoc.

Los desarrolladores se basan en la experiencia del equipo para hacer algo rápidamente
para garantizar que el producto obtenga las pruebas necesarias.

Pruebas exploratorias

Técnica centrada en un método progresivo de prueba; a medida que el probador se


mueve a través del software, un caso de prueba comienza a formarse. Esta técnica no implica 15
deambular por la aplicación, sino que utiliza una exploración metódica y lógica del software para
desarrollar un enfoque integral para evaluarlo.

Lista de visualización

Aprovecha la experiencia para crear una lista de elementos de acción durante las
pruebas. El probador comienza a trabajar en la aplicación creando una lista de verificación de
posibles casos de prueba. Como experto, es fácil usar la experiencia para crear listas mentales de
dónde canalizar el énfasis durante la evaluación del software; esto simplemente documenta la
lista de verificación y los resultados de las pruebas.

Pruebas de ataque de fallas

Técnica más esporádica que a muchos expertos les gusta usar. Aprovechando el
conocimiento del software, los probadores utilizan su comprensión especial de dónde creen que
existen los aspectos débiles de la aplicación; utilizan la experiencia para crear un caso de prueba
que expone esas fallas. A menudo parten de una estrategia de prueba de regresión, técnica
esencial para garantizar que los problemas anteriores se aborden en el software.

Adivinación de errores

Técnica ligeramente menos rígida que las pruebas basadas en la experiencia, donde los
probadores se refieren a la experiencia previa en pruebas y buscan enfatizar las áreas
problemáticas. Usando experiencia y conocimientos, se buscan puntos problemáticos previos de
una aplicación y adivina dónde podría fallar el software. Centrándose en la experiencia previa con

DESARROLLO DE VIDEOJUEGOS
CONTROL DE CALIDAD DE VIDEOJUEGOS
U.T. N°3: TECNICAS DE TESTING

la aplicación, está técnica se enfoca en ayudar al desarrollo a asegurar un mejor producto


atacando los puntos débiles.

Todas estas técnicas están abiertas a la interpretación y alteración basada en el software


y la experiencia del probador. Esta flexibilidad abre la puerta a una gran cantidad de posibles
resultados finales. Es tentador hacer que esto sea fácil; sin embargo, los evaluadores inteligentes
saben que, si entregan datos extensos y útiles, los desarrolladores sólo verán a este equipo como
un aliado valioso.

Por qué utilizar estas técnicas

 Comunicación: Estas pruebas tienen un fuerte aspecto de comunicación. El desarrollador


necesita un buen canal de comunicación durante la prueba para entender los resultados
de la prueba.
 Automatización: En el cambio constante del diseño de aplicaciones, la automatización
informática ha surgido como una herramienta importante en las pruebas. Sin embargo,
enfrenta desafíos para ser flexible. Mientras que algunos cambios son más sencillos que
otros, la configuración y refinamiento de los sistemas automatizados para acomodar los
cambios puede requerir tiempo.
 Diferenciación: Las computadoras no pueden discernir si un software se comporta
correctamente, reconocer problemas de interfaz de usuario ni comprender las
peculiaridades de la lógica humana. Las pruebas basadas en la experiencia proporcionan
la flexibilidad para que los desarrolladores obtengan rápidamente una revisión experta
de su software con la información intuitiva y evaluación profesional.

Las pruebas basadas en la experiencia proporcionan un enfoque muy humano para las 16
pruebas de calidad, al tiempo que ofrecen resultados de calidad. Se utiliza esta técnica de prueba
por muchas razones, pero el tiempo suele ser una de las consideraciones clave. La creación de
planes de prueba, la creación de sistemas automatizados e incluso la creación de casos de prueba
llevan tiempo. Utilizando estas técnicas se puede ser ágil y ayudar a mantener un equipo de
desarrollo de software a tiempo. Más importante aún, el conocimiento y la experiencia que un
probador reúne durante las pruebas es un recurso valioso que se puede capitalizar.

Conclusiones generales
Las técnicas son herramientas: no todas son útiles para lo mismo, sirven para diferentes
propósitos. Todas son valiosas, pero no sirve agregarlas al plan de prueba si no le agregan valor
al producto.

DESARROLLO DE VIDEOJUEGOS

También podría gustarte