Una visión del testing para el mundo actual

El testing es una actividad indispensable para asegurar la calidad en el desarrollo de software.  En este artículo presentaremos una completa metodología que ha tomado relevancia en los últimos tiempos: Rapid Software Testing (RST).

Por @gskrilec Guillermo_Skrilec_SD_d986d0049f6140999beeebc8a4d49066

Para comprender de qué manera puede ayudarnos, abordaremos una serie de preguntas.

¿Por qué surge RST?

Con frecuencia, las pruebas se llevan adelante una vez que el desarrollo del sistema finalizó pero, en muchas ocasiones, los proyectos TI experimentan retrasos y el tiempo para realizar las pruebas no es suficiente. En estos escenarios, muchas veces se producen consecuencias que son peores de lo que podemos imaginar.

En primer lugar, se reduce la cantidad de pruebas que realizamos, entregando aplicaciones con más riesgos de fallar. Otra consecuencia pocas veces tenida en cuenta, es el costo de oportunidad: mientras desarrollamos es muy probable que hayamos invertido tiempo y esfuerzo en diseñar pruebas para que finalmente no sean aprovechadas por falta de tiempo.

Además, para llevar adelante actividades de testing es necesario comprender la especificación de requerimientos, es decir el funcionamiento esperado del software que se está desarrollando. Sin embargo es muy común que esta especificación no exista, esté incompleta o no esté actualizada ni con suficiente nivel de detalle.

¿Cuáles son los resultados de estas consecuencias? Obtenemos un proyecto “ciego”, es decir que se gestiona sin suficiente información sobre el estado del producto y los problemas que tiene el mismo.

Rapid Software Testing surge como respuesta a la necesidad de abordar el testing sin entrar en discusiones sobre el tiempo que tenemos para probar y el nivel de documentación del proyecto. Esta metodología propone aprovechar el tiempo disponible para hacer las mejores pruebas posibles enfocadas en los objetivos del proyecto.

¿Qué es RST?

Rapid Software Testing es una metodología de testing completa, diseñada para un mundo donde los recursos, la información y el tiempo apenas son suficientes. La misma está diseñada para adaptarse a cualquier tipo de contexto de pruebas, desde instituciones financieras, dispositivos médicos, producto comerciales y juegos.

Sus creadores son James Bach y Michael Bolton, ambos referentes en testing a nivel mundial y defensores del enfoque de pruebas basado en el contexto.

Michael Bolton participando de TestingUY 2017

Este año, en el marco del evento TestingUy 2017 y gracias al apoyo de la Agencia Nacional de Investigación e innovación (ANII), fue posible contar con la participación de Michael Bolton en Uruguay. Por primera vez en América del Sur se llevó a cabo un curso completo de Rapid Software Testing, así como charlas y otras actividades para compartir esta innovadora forma de realizar el testing.

¿En qué consiste?

Rapid Software Testing propone un enfoque dirigido por pruebas rápidas y menos esfuerzo. El objetivo de esta metodología es comprender el estado del producto de software a través de un pensamiento crítico, aplicando exploración y experimentación.

A diferencia de la visión de testing actual, basada en modelos de procesos, herramientas y artefactos, la metodología RST tiene una visión centrada en el tester, como una persona que tiene un conjunto de habilidades que utiliza como herramienta a la hora de testear.

La habilidad de contar historias es necesaria a la hora de poner en práctica esta metodología. El testing es la historia sobre el estado del producto de software donde es importante comprender qué hace el producto, dónde falla y cómo podría fallar, tiene que ver con los bugs del producto.

También se debe contar la historia de cómo se probó el producto: de qué forma se reconocen los problemas, qué es lo que se ha probado y lo que aún no. Técnicamente hablando, esta historia permite comprender cuáles son los oráculos utilizados y el cubrimiento de las pruebas.

En tercer lugar, debemos contar qué tan bueno fue el testing realizado. El fin de esta historia es superar los problemas encontrados en el camino contando cuáles fueron los riesgos y los costos, qué hizo que el testing fuera rápido o lento, cuál es el grado de “testeabilidad” del producto y qué otras necesidades y recomendaciones existen.

¿Qué pasa con el testing tal como lo conocíamos?

Rapid Software Testing puede parecer radical con las prácticas que propone haciéndonos pensar que debemos cambiar nuestra forma de hacer el testing. Pero hay prácticas que funcionan y otras que no tanto, por lo que recomendamos empezar a poner sobre la mesa algunos conceptos de RST en las situaciones donde el resto de las cosas no están funcionando.

En estos contextos podemos percibir el valor de este nuevo enfoque, creando las primeras experiencias y generando aprendizajes para extender las prácticas a otros ámbitos o proyectos. El enfoque propone que hagamos un muy buen testing informal, antes de pasar al testing formal, el cual es guiado por excesivos casos de prueba, métricas e informes.

Frente a la pregunta: “¿Qué sucede con el testing en los proyectos ágiles?”, Michael Bolton respondió “Testing is testing, agile is context”, en TestingUy 2017. La simpleza e impacto de esa respuesta ayuda a comprender que la esencia del testing es experimentar con el producto.

Acerca de TestingUy

TestingUy surge en Uruguay en el año 2013 por un grupo de apasionados por el testing, con el objetivo de desarrollar la comunidad de Testing y QA en Uruguay y la región.

Desde entonces se han realizado distintos eventos y actividades, para fomentar la colaboración y el desarrollo de la disciplina.

Por más información: www.testinguy.org

Por Guillermo Skrilec, Gerente del área de Testing de GeneXus Consulting.

Deja un comentario