Qué es el Testing de Software✅ | Testing Para Todos

Matías Pírez
5 min readJul 8, 2020

--

Las aplicaciones no nacen mágicamente. Son construidas por humanos y por lo tanto pueden fallar. El Testing de Software en gran parte contribuye a que tú como usuario percibas la menor cantidad posible de fallas. Pero, ¿podrá el testing garantizarte una aplicación perfecta?

Segun Cem Kaner, el testing es una investigación técnica del producto bajo prueba, para brindar información objetiva sobre la calidad, a las partes interesadas.

Si prefieres lo audiovisual, en este video tienes todo el contenido.
Definición de Testing de Software

Esta información se utiliza para tomar decisiones.

Por ejemplo, para saber si el producto está en condiciones o no de ser lanzado a clientes.

La información puede brindarse de varias formas. Una de ellas es el reporte de incidencias (defectos o sugerencias de mejora) que contribuye a corregir o mejorar cosas que no funcionan como se espera.

Pero el testing NO ES solo reportar errores y decir lo que está mal. También es diálogo, aportar un punto de vista distinto en el proceso de construcción, colaborar en mejorar procesos y muchas cosas más.

Objetivo del Testing y la importancia del negocio

El objetivo de todo este proceso es crear un producto de calidad, que aporte VALOR al cliente.

Ese valor es subjetivo, para cada persona será distinto. Aunque estará impulsado por la razón de ser esa aplicación. ¿Para qué se creó?

Detrás de cada producto de software hay un negocio (entendido en el sentido amplio). Dependiendo de su naturaleza, una aplicación puede ser la parte central del negocio o complementaria.

Para YouTube, su aplicación es central en su negocio ya que toda su operación ocurre en la app. Para un supermercado tradicional con tiendas físicas, seguramente su app será complementaria.

Infografía Entender el negocio, para saber el objetivo de la aplicación
Primer paso para hacer testing: Entender el negocio

Conocer el modelo de negocio es el primer paso antes de empezar a hacer testing.

Implica a grandes rasgos saber dos cosas:

  1. qué valor aporta la empresa al cliente
  2. cómo captura ese valor de vuelta

YouTube te aporta contenido educativo, como este video, entretenimiento y demás.

Y tu les aportas a ellos tu Atención para ver publicidad, que venden a otras empresas.

Podemos concluir que lo más importante para YouTube es que pases mucho tiempo prestando atención. Para eso deben mostrarte lo que quieres ver.

Tu cuando entras a YouTube, quieres encontrar lo que estás buscando. Ahí es donde ambos objetivos se alinean.

Conociendo estas dos partes podemos empezar a testear con el negocio en mente y teniendo una idea de qué aporta valor para este objetivo y cómo se podría mejorar.

Todo lo que impida o dificulte la experiencia del cliente al utilizar la aplicación, es deseable que no ocurra cuando lo está utilizando, sino que se corrija o mejore ANTES. Y ahí es donde el testing hace su trabajo.

Ejemplo práctico de Testing

Vamos a ver un ejemplo concreto: Suscripciones en YouTube.

YouTube quiere facilitarle al usuario que vuelva a encontrar contenido de un creador que le gustó.

Para eso decide agregar la funcionalidad de Suscripciones, que consistirá en lo siguiente:

Un espectador que se encuentra viendo un video, podrá “Suscribirse” al canal del creador, para ver los próximos videos que suba.

Ejemplo Suscripciones en YouTube

Define criterios o requisitos que la funcionalidad debe cumplir:

☑️ Se agregará un botón rojo debajo de los videos que diga “suscribirse”

☑️ Al hacer click se agregará el canal a la lista de suscripciones del usuario.

☑️ Al hacer click se incrementará el número total de suscriptores del canal que recibe la suscripción.

☑️ Se notificará al usuario que la suscripción fue agregada correctamente.

☑️ Una vez suscrito el botón cambiará a color gris y se agregará un botón “campanita”, para que además el usuario pueda activar notificaciones cuando el canal suba nuevo contenido.

☑️ Existirá una lista de suscripciones.

☑️ Se agregará una página donde el usuario pueda ver solamente contenido de los canales a los que se suscribió.

⬇️ ¿Se te ocurre algún otro requisito? Dejalo en los comentarios

¿Por qué es importante hacer testing? 🧐

Ahora, ¿qué pasaría si…

❌ El botón en vez de rojo es gris y se encuentra al final de los comentarios?

❌ Al hacer click se confirma como exitoso, pero luego no se agrega efectivamente como canal suscrito?

❌ Al activar las notificaciones de ese canal, se envían notificaciones de todos los canales suscritos?

Imaginen que se descargan la aplicación y funciona así.

No es lo que tu esperas y tampoco lo que espera YouTube.

Ahora imagina que no te pasó solo a ti sino a millones de personas, por varias horas.

Cada una de esas “pequeñas” fallas acumuladas, tendrían un impacto de millones de dólares para la empresa.

En otro tipo de empresas puede incluso costar vidas, por lo que es realmente muy importante tener un proceso de testing.

¿Cómo se hace testing?

Para eso es necesario que haya un equipo de personas dedicadas a preguntarse ¿qué pasaría si…? ANTES de que la aplicación llegue a manos de todos, lo que se conoce en el rubro como “pasar a producción”.

Esto se hace en un “ambiente” controlado y restringido que no afecta la operativa y los datos “reales” del negocio.

Se simulan las condiciones en las que el sistema va a ser usado y se intenta detectar las posibles fallas. Incluso utilizando el sistema de una forma distinta a la que fue pensada para que se use.

El aseguramiento de la calidad

El testing no puede garantizar una aplicación perfecta.

En la práctica se habla de QA o Aseguramiento de Calidad como sinónimo de Testing (aunque no es exactamente lo mismo ya que QA es un concepto más amplio enfocado hacia mejorar los procesos).

¿Quality Assurance?

Pero la realidad es que el Testing no puede ASEGURAR la calidad a un 100%. Ya que existen infinitas combinaciones de posibilidades que pueden ocurrir y hacer que el sistema falle.

El tiempo no es suficiente para cubrir todo y muchas veces tampoco conocemos TODAS las variables que pueden influir.

Sin embargo, en base a nuestra experiencia y a la aplicación de técnicas podemos identificar dónde pueden estar la mayoría de los riesgos y detectarlos de forma temprana. Incluso antes de que exista el producto, participando de la etapa de definición de requisitos y diseño de cómo se va a construir el software.

Si querés seguir aprendiendo sobre Testing suscribite a 𝗧𝗲𝘀𝘁𝗶𝗻𝗴 𝗣𝗮𝗿𝗮 𝗧𝗼𝗱𝗼𝘀 donde explico conceptos desde cero, con ejemplos prácticos como este post 👇🏻

🔴 QUIERO APRENDER TESTING 🔴

--

--

Matías Pírez

Uruguayo. QA Analyst. Futuro Contador Público. Me encanta la tecnología. Fotógrafo aficionado. Ig: @matiaspirezph.