De casos de test a mapas mentales: una experiencia personal

De casos de test a mapas mentales: una experiencia personal

La mecha que prendió este post fue este comentario en una de mis entradas de análisis de herramientas de test case management, preguntando por el resultado de la investigación en este tema realizada al principio del año 2011. La búsqueda terminó al cabo de algunos meses, a medida que me iba dando cuenta de que una herramienta de este tipo no encajaba en mi contexto actual, pero nunca concluí la investigación oficialmente. No la estoy concluyendo ahora con este post, a lo mejor la retomo en el futuro, pero dos años después de sus inicios, el hecho es que hemos vivido y testeado adecuadamente sin casos de test ni herramientas de gestión de los mismos. Así es como lo hicimos.

Antes de empezar, no estoy intentando afirmar cuál es la mejor solución en este aspecto, esto es el relato de una experiencia personal solamente, un caso de estudio si queréis. Simplemente food for thought, cosas a considerar si os encontráis en esta situación. Espero os sirva de ayuda 🙂

Nuestro contexto

Intentaré resumir nuestro contexto en unas pocas líneas, contáctadme si no es suficiente para entender la situación:

  • 2 aplicaciones web-based
  • Ambas aplicaciones son maduras, con más de 3 años de existencia cada una
  • +500 casos de uso (y creciendo!), desde simples CRUD a grandes y complejos casos de integración de sistemas con interpretaciones condicionales y reglas de negocio implicadas
  • Un departamento de 2 testers, emparejado con un equipo de 4-5 developers superlistos
  • Un promedio de 2-3 releases al mes
  • Sin automatización disponible (en el momento de iniciar la investigación)

El primer número que me vino a la mente fue que necesitábamos una herramienta que gestionara como mínimo +500 casos de test (digamos, el happy path de cada uno de esos casos de uso), ergo se supone que tendremos que desarrollar esos +500 casos de test, y también se supone que tendremos que mantener esos +500 casos de test, sin reclutar nuevos compañeros ni reducir la velocidad de releases que defendemos.

No podíamos realizar esa inversión, nuestro foco hubiera pasado de testear a crear y mantener casos de test, con la sensación de que se trata de una tarea interminable, ya que hay casos de uso nuevos cada mes, más revisiones de los ya existentes, implicando nuevos casos de test a redactar y casos de test viejos a mantener, más en algún momento explorar los unhappy paths si teníamos tiempo.

Qué hacíamos mientrastanto?

Al principio de todo, 2 años antes de que esta búsqueda empezara, intentaba crear los casos de test en Excel al principio de la fase de testing (desarrollábamos bajo waterfall por aquél entonces) antes de testear efectivamente, de lo que aprendí lo siguiente:

  1. Los casos de test evolucionan mientras testeas, por ello tu manera de pensar y la herramienta que uses tiene que estar preparada para esto.
  2. El mantenimiento y la reutilización de los casos de test es un tema candente, difícil de gestionar en un entorno cambiante como el nuestro, por las razones antes mencionadas.

Con este enfoque, descubrí que invertía más tiempo creando, editando y adaptando a la situación actual mis casos de test en Excel que testeando efectivamente. Progresivamente, fui abandonando ideas; primero, abandoné la idea de reusar casos de test (con lo que el asunto del mantenimiento desapareció también); y después, abandoné la idea de preparar todo el conjunto de casos de test antes de empezar el testing, abrazando un diseño de testing y una ejecución más dinámicos. Estaba haciendo testing exploratorio sin saberlo, pero no me sentía cómodo con la idea de no tener documentación de test. Por esto último empecé la investigación de una herramienta de gestión de casos de test.

Y… Apareció el mind mapping!

Mientras investigaba herramientas concretas, intenté averiguar qué hacían otros profesionales en situaciones similares a la nuestra, y descubrí que el testing exploratorio era real y muy respetado por testers muy influyentes; y descubrí el mind-mapping también.  Inmediatamente cambié el uso de Excel y Notepad en mis actividades exploratorias extraoficiales para usar Xmind como herramienta de soporte para las mismas.

Tan buen punto empecé a hacer esto tuve un momento de esos de “cómo no había hecho esto antes!”, ya que los mapas mentales son la herramienta perfecta para desarrollar y ejecutar pruebas mientras testeas, evolucionando tus ideas de testing mientras testeas efectivamente, disfrutando con el proceso y reforzando la parte creativa del testing, cosa que también tiene su gracia. Además de esto, el uso de mapas mentales nos permitió desarrollar un “mapa mental de ideas de testing” al inicio de los proyectos e iteraciones y evolucionarlo a medida que estas avanzaban y profundizábamos en su contenido, compartiéndolo con el resto del equipo, tanto desarrolladores como stakeholders, creando una gran compilación de ideas de pruebas justo antes de empezar efectivamente a testar, y pudiendo evolucionar esta compilación mientras el testing tenía lugar.

La búsqueda de una herramienta de test case management finalizó de facto…

…en el momento que me pregunté ¿por qué iba a querer invertir esa cantidad de tiempo en documentar esos casos de test cuando estamos cumpliendo razonablemente bien sin ellos? Las primeras respuestas que me vinieron a la mente se referían a registros de ejecución de pruebas, cobertura y reutilización. Así que las analicé profundamente.

El tener registros de ejecución de casos de test no es razón suficiente para implementar una herramienta de gestión de casos de test, por lo que seguí profundizando en las otras respuestas.

Sobre cobertura… somos principiantes en testing exploratorio, así que me sentía inseguro de que nos dejáramos areas importantes sin testear con un enfoque tan dinámico, pero la idea de implementar una herramienta de gestión de casos de test no me era suficiente, preferí pensar en mejorar como testers exploratorios; además, alimentar esas herramientas nos hubiera quitado tiempo de testing efectivo, por lo que la coberturase vería afectada también. Por otro lado, qué cobertura te ofrece una herramienta de gestión de casos de test? La cobertura sobre los casos de test que has sido capaz de introducir en ella, cosa que es una manera sesgada de ver la cobertura. Me sentí más seguro haciendo crecer la cobertura en las áreas importantes a medida que íbamos testeando.

La reutilización ha sido un hito reciente para nosotros, decidiendo no reutilizar nada hasta ahora, recreando y revisando las ideas de pruebas a medida que lo hemos ido necesitando, afilando nuestros sentidos y habilidades exploratorias en cada iteración, aunque probablemente modifiquemos esta conclusión pronto.

Próximos pasos (algunos ya ejecutados)

Habiendo decidido oficialmente que hacíamos testing exploratorio con mapas mentales y siendo felices con ello, empezamos a iterar esta idea para mejorar nuestro desempeño. Cosas que ya hemos hecho al respecto:

  • Invertir tiempo en automatizar validation checks, para combinar nuestra óptica exploratoria profunda con cobertura general y ligera en términos de checking.
  • Documentar formalmente algunos casos de test para los casos de uso más críticos (hablamos de unos 5 o así), creando una mini test-suite a ser ejecutada en cada ciclo de testing, antes de la instalación de una nueva versión. Esta suite no se automatizará nunca, ya que requiere unos 15 minutos de ejecución y quiero los 7 sentidos de un tester pensante en ella, y un robot no me ofrece esa seguridad. Los smoke tests son documentados formalmente también. Estas son pruebas sencillas que demuestran que el testing exploratorio y el documentado formalmente pueden coexistir.

Cosas que espero hagamos en el futuro cercano:

  • Repensar el tema de la reutilización. Quizás podríamos desarrollar un mapa mental con checklists para empezar esa recopilación de ideas de pruebas con algo ya hecho, actualizando estos documentos a medida que los vamos usando, aceptando que tienen que ser actualizados antes de evolucionarlos, pero tomando ventaja del conocimiento y esfuerzo mental ya aplicado.
  • Desarrollar una especie de testing low-tech dashboard, basado en mapas mentales, con la intención de comunicar más fácilmente el estado del testing al equipo et altri.

Finale

Pues ya está. Un proceso de 4 años resumido en menos de 1500 palabras. Espero poder escribir algo más al respecto en los próximos 4 años, a ver si mejoramos en este interminable y fantástico asunto!

Anuncios

QA&Test 2012

QA&Test 2012

Por segunda vez este año, he tenido la suerte de ganar una entrada gratis para la conferencia QA&TEST 2012 celebrada en Bilbao los días 17, 18 y 19 de Octubre. Quiero reiterar el tema de “la suerte”, porque ahora que hace menos de 72 horas que se ha terminado el evento puedo decir oficialmente (de nuevo) que ha sido una experiencia…

FANTÁSTICA!

Amantes del testing de España y de todo el mundo, sintámonos afortunados de tener en nuestro territorio un evento de orfebrería como éste, una auténtica delicatessen de conferencia.

Honestamente, el QA&TEST 2012 me ha robado el corazón, por muchas razones, por ejemplo:

  • El pequeño formato que defiende la organización. El total de asistentes entre ponentes y público roza las 100 personas y se organiza en 2 tracks simultáneos que van cambiando de temática durante la conferencia, esto hace que sea un evento en el que impera la…
  • Cercanía. Hay algo en el ambiente de esta conferencia que te hace sentirte bien, como en família, la calidez está por todas partes, de principio a fin, desde la organización hasta los…
  • Contenidos. Un poco de todo, tocando todos los palos, ponentes de todo tipo, ponencias muy concretas junto a otras más generales, rigurosidad en la selección y mucha información que requiere de una correcta…
  • Duración. 3 días de conferencia, suficientes para cubrir temas con holgura, sin que sea corto y estresante ni largo e injustificable, para tratar los temas con todo lujo de…
  • Detalles. La calidad está en los detalles, el trabajo se nota en los detalles. Las cosas, los eventos, no salen a la perfección si no hay mucho trabajo detrás y no se atiende a las pequeñas cosas, por ejemplo los cuadernos con los slides de las ponencias impresos, las comidas fantásticas en los que se podía catar lo mejor de la cocina Vasca, el banquete en la histórica sociedad bilbaina con una copa posterior pagada por la organización, y un largo etcétera.

En resumen, un 10 para la organización 🙂

Entrando más en profundidad en lo que al testing se refiere, el QA&TEST de Bilbao no tiene nada que envidiar al “cartel” más mediático de ponentes de su pariente lejana ExpoQA, como prueba de ello están las ponencias y keynotes de Lynn Mckee, Nancy Kelln, Derk-Jan De Grood, Jan Jaap Cannegieter, Julian Harty, Shmuel Gershon… Pero no depende todo de eso; sin presentaciones de “relleno”, todos los temas de la conferencia se tocaban con mucha profesionalidad y la variedad de las temáticas de los tracks (QA, management, el testing en sectores industriales, automatización, mobile, organización de equipos, nuevas técnicas…) permite que, en global (y seguro en particular), sea una conferencia interesante y de valor añadido para todos los asistentes con interés en el testeo de software, la calidad y relacionados.

Mesa redonda sobre el futuro del testing con Bryan Bakker, Jan Jaap Cannegieter y Lynn Mckee

Me quedo con toda la experiencia, con todas las ponencias y keynotes, con todas las charlas e interacciones, creo que he aprendido muchas cosas en esta conferencia y, para resumirlo en citas sin cansar al personal, sugiero que pensemos seriamente en las siguientes ideas, puesto que pueden cambiar nuestra visión de la profesión:

“El testing se puede llevar a cabo sin casos de test” @nkelln

“Puedes transformar tu organización” @lynn_mckee

“Concéntrate en aportar valor a la gente de business@derkjandegrood

“Puedes hacer más de lo que te crees capaz” @jjcannegieter

“Porque el futuro del testing está en nuestras manos” @mauri_edo

Nos vemos en el QA&TEST 2013!!!

BBST Foundations course: superado!

BBST Foundations course: superado!

Pues sí, dado que en el mes de Agosto “sólo tenía que trabajar”, aproveché y me apunté a este curso llamado Black-box Software Testing Foundations, proporcionado por la Association for Software Testing (AST), una asociación americana con bastante renombre, fundada inicialmente por Cem Kaner y que cuenta entre sus afiliados con profesionales de máximo nivel como Ben Yaroch, Matt Heusser, Markus Gärtner…

Este curso es prerequisito para cursar otros dos cursos ofrecidos por la asociación: bug advocacy y test design y, una vez superados los tres anteriores, se puede realizar el curso de instructor para la AST.

El funcionamiento resumido del curso es el siguiente:

  • La duración es de 4 semanas
  • Se estructura en 6 lecciones, de 3-4 días cada una:
    • Conceptos básicos
    • Estratégia
    • Oráculos
    • Fundamentos de programación y cobertura
    • La imposibilidad del testing completo
    • Mediciones
  • Cada lección se compone de:
    • Un ejercicio de orientación (a responder primero y a comentar las respuestas de los otros después)
    • Videoclases impartidas por Cem Kaner (alrededor de 45 mins por lección)
    • Lecturas (algunas obligatorias y otras opcionales)
    • Un ejercicio colectivo sobre la lección (sí, colectivo, con gente, en plan foro). También aquí se requiere valorar el trabajo de otros grupos.
    • Un quiz (un mini-examen, de 10 a 15 preguntas de multirrespuesta)
  • Hay un examen final de tipo ensayo compuesto de 6 preguntas, sobre 20 posibles que son publicadas al inicio del curso, para que te lo vayas preparando (si puedes). Como la idea es aprender, el examen se debe hacer sin consultar materiales de ninguna clase aunque nada te lo impide; depende de ti engañar o no (engañarte a ti mismo por un aprobado, vaya).
  • Una vez hecho el examen, tienes que ofrecer tu opinión sobre el examen de 2 compañeros, para luego opinar sobre el tuyo tras reflexionar y mirar los materiales con detenimiento.
  • La nota final depende del desempeño durante el curso, así como del examen y de las correcciones de examenes de otros. Los quizzes no cuentan para nada, son para que uno mismo pueda saber como progresa.

La experiencia ha sido muy positiva, estoy muy contento de haber realizado este curso, y creo que opinaría lo mismo en caso de haber suspendido, aunque seguramente lo haría con un tono más tristón y apocado 😉

BBST slide sample

Captura de un slide dentro de una de las videoclases impartidas directamente por Cem Kaner

Cosas chachis del BBST Foundations course:

  • Cubre perfectamente las bases del tema: qué es el testing, porqué se testea, cuándo se acaba el testing, cómo se testea, cómo se puede medir el progreso…
  • Los materiales son de alta calidad, los slides que acompañan las videoclases son material oficial de la asignatura con el mismo nombre impartida en la Universidad de Florida Tech. Las lecturas incluyen textos básicos “para enmarcar” del propio Kaner, Michael Bolton, James Bach, Doug Hoffmann, Brian Marick…
  • El staff del curso (instructores y demás) es también de alto nivel. Los instructores de esta entrega del curso han sido John McConda, Iain McCowatt y Pete Walen, mas puntuales aportaciones de Michael Larsen como actual presidente de la asociación.
  • Un grupo de unos 30 testers de distintos orígenes, fases vitales, nuevos en el oficio o grandes veteranos… es siempre una experiencia.
  • Está bien de precio. El curso requiere ser miembro de la AST, en resumen, todo junto sale a unos 180 euros.

Cosas rollo del BBST Foundations course:

  • La carga de trabajo. MUY ALTA. He sufrido horrores para compaginar el curso con las 8/9 horas de rigor en el tajo más algo de vida conyugal (lo social quedó completamente descartado durante este tiempo)
  • La duración. Para asimilar bien todo y disfrutar el curso le falta, a mi entender, una semana más, y así no tener que hacerlo todo deprisa y corriendo. Al no ser así, la presión temporal es muy fuerte: Tener que reflexionar sobre un tema, mirar unos videos, leer un par de textos, hacer una parte de una tarea en grupo y hacer un quiz en 3-4 días ha sido de locos. Por no hablar de asimilar algo… Las lecturas opcionales, por ejemplo, ni tocarlas 😦
  • El trabajo en grupo. Ya se sabe. Hay gente agradable y otros que no lo son tanto; hay gente que trabaja y otros que figuran; tu zona horaria puede ser una ventaja o un inconveniente; habrá gente que esté en todo y otros que desaparezcan; habrá dinamizadores y bloqueadores de la evolución del trabajo… Lo que pasa en todas partes, vamos.
  • El contenido puede ser fácilmente tildado de “muy básico” por algunos. Ergo la obligación de pasar por este curso para hacer otros de más avanzados puede ser mal vista.
  • Si no tienes inglés, nada de nada. Dominar el idioma es vital para sobrevivir; por los materiales y examenes (obviamente) pero también por el trabajo colectivo, o tus compañeros no te van a entender ni tú a ellos.

En resumen, y ya me callo, para mi es un curso BÁSICO para todo aquél que guste de tener el testing como profesión y conocer sus fundamentos a fondo. Es edificante, se aprende, se disfruta y pone las bases para tu progresión como profesional. Eso sí, si volviera a hacerlo, me plantearía seriamente hacerlo durante las vacaciones 😛

Juego de tronos: los testers de la noche

Juego de tronos: los testers de la noche

Aparte de fanático del testing, y entre otras muchas cosas, soy un adicto a las series de TV, lo confieso; y series como Juego de Tronos, la serie de la HBO basada en la saga de libros “A song of ice and fire” de George R.R. Martin no hacen más que agrandar esta adicción, para bien :-).

En el universo de Juego de Tronos hay una orden militar que me apasiona, la guardia de la noche, y como más voy sabiendo de ella, más similitudes le encuentro a nuestra ocupación, nuestra orden militar-laboral, los testers (o también, los testers de la noche 😉 ).

Intentaré explicarme en 5 #facts, a ver si lo consigo:

#1 – Objetivo:

El objetivo de la guardia de la noche es claro, defender el muro, protegiendo los reinos de los hombres de lo que haya tras del mismo (especialmente de salvajes y caminantes blancos).

El objetivo de los testers es el mismo, defender las aplicaciones, protegiendo a los usuarios de bugs y de los efectos terribles que estos pueden causarles.

#2 – Compromiso:

El juramento de la guardia de la noche es el siguiente…

La noche se avecina, ahora empieza mi guardia. No terminará hasta el día de mi muerte. No tomaré esposa, no poseeré tierras, no engendraré hijos. No llevaré corona, no alcanzaré la gloria. Viviré y moriré en mi puesto. Soy la espada en la oscuridad. Soy el vigilante del Muro. Soy el fuego que arde contra el frío, la luz que trae el amanecer, el cuerno que despierta a los durmientes, el escudo que defiende los reinos de los hombres. Entrego mi vida y mi honor a la Guardia de la Noche, durante esta noche y todas las que estén por venir.

Un miembro de la guardia de la noche lo es para siempre y su único y máximo compromiso es con la orden y su objetivo, rechazando cualquier otro vinculo afectivo.

Para poder hacer bien su trabajo, un tester no debe casarse con nada ni con nadie, no debe desarrollar dependencias “afectivas” con herramientas, lenguajes, metodologías… que puedan nublar su juicio y alejarlo de su objetivo primordial (ver #fact anterior). Estos instrumentos deben usarse para satisfacer el objetivo de la orden, pero no como objetivo en si mismo.

A su vez, creo humildemente que, un tester lo es para siempre: una vez has puesto tus capacidades analíticas al servicio de la calidad, encontrarás bugs y errores de especificación hasta en la sopa.

#3 – Procedencia:

Los miembros de la guardia de la noche presentan dos origenes muy diferenciados:

  • Convicción: miembros voluntarios de la orden, que consideran la pertenencia orden como un honor y símbolo de la dedicación al deber.
  • Escapatoria: lamentablemente, la guardia de la noche también se presenta como alternativa a la muerte para criminales, exiliados y demás renegados.

Esto nos ha pasado a nosotros también, ha habido testers de vocación y testers “por eliminación”. Por suerte, entre todos, a medida que la profesión gana en complejidad y peso específico, crece el número de testers convencidos y se disipa la tendencia de considerar el testing como una profesión de bajo nivel, cajón de sastre para perfiles desubicados o sin formación.

#4 – Estructura:

Existen tres roles dentro de la guardia, con funciones muy claras…

  1. Exploradores: cuerpo militar dentro de la orden. Defensores, guerreros, entrenados en supervivencia y encargados de patrullar más allá del muro.
  2. Constructores: mantienen y reparan el muro, los castillos y demás propiedades de la orden.
  3. Mayordomos: responsables de funciones criticas como el abastecimiento, comercio, alimentación, utillaje, reparación de armas, cocina…

Más allá de las similitudes con sub-roles que pueda haber dentro de nuestra profesión (los exploradores serían los bughunters o testers funcionales, los constructores podrían ser automatizadores o los encargados de los frameworks de testing y los mayordomos aquellos que se encargan de funciones intermedias como documentación, servir de enlace con helpdesk, producción o business…), me interesa más la idea de fragmentación, de especialización del trabajo según las capacidades y voluntades de cada uno. Todo cuerpo organizado consta de dicha fragmentación y nosotros no somos ni seremos menos. Adicionalmente, la fragmentación y especialización va en la línea de la mayor complejidad de la profesión, algo que apuntan todos los expertos del sector a la hora de reflexionar sobre el futuro del rol, como por ejemplo, en la pasada edición de ExpoQA.

#5 – Anonimato:

En el episodio 6 de la segunda temporada se da una conversación entre Jon Snow (mi favorito) y Qhorin Mediamano sobre lo que implica pertenecer a la guardia de la noche. Este es el corte (alrededor del minuto 1:50, lo siento, sin subtitular) en el que el veterano Qhorin le suelta al novato Snow…

Entiende esto chico: tu muerte será un regalo para los del otro lado del muro. Nadie va a saber nunca qué has hecho, nunca se va a saber cómo has muerto ni tan solo cuál era tu maldito nombre, pero los ciudadanos del reino estarán vivos porque algun bastardo sin nombre al norte del muro entregó su vida por ellos.

Fantástico. Fantástica idea, muy motivadora. Los tropecientos millones de usuarios de las aplicaciones testeadas por testers han podido hacer sus cosas (sus compras, sus ventas, sus registros…) porque, entre otras cosas por supuesto, ha habido una legión de testers que han velado por ellos, para que puedan hacerlo sin problemas, sin fallos de seguridad, sin encontrarse con bugs ni páginas que no existen o enlaces rotos, con una usabilidad aceptable y muchas cosas más, y nunca van a ser conscientes de ello, porque…

…Somos cuervos velando en la oscuridad por la seguridad de los ciudadanos del reino.

expoQA 2012

expoQA 2012

Inesperadamente, he asistido a la edición de este año del expoQA. Digo inesperadamente porque no tenía intención de asistir (las conferencias en general son muy caras, y tal y como está el patio, me parece muy bien que la empresa donde trabajo sea cauta en este aspecto), pero resulta que fui el afortunado ganador del sorteo de una entrada gratis entre los lectores del Testing Planet, revista-diario trimestral muy molona sobre testing, fabricada por la gente del Software Testing Club, y es muy feo rechazar los regalos, no? 😉

Total, que me planté en Madrid la noche del 5 de Junio y el 6 por la mañana, tras algún que otro incidente con el transporte interurbano madrileño (sí, he dicho “interurbano”, porque el venue no era muy accesible que digamos), estaba listo para devorar lo que fuera que se cociera en expoQA, sin saber muy bien cuál era la filosofía de la expo en si misma; es decir, son unas conferencias sobre testing y demás, pero ¿dadas por quién y a qué nivel? Pues a eso iba, a capturarlo.

expoQA

A toro pasado puedo decir…

Nivelazo.

Sin ser muy consciente de ello, me iba a exponer a varias charlas profundamente motivadoras e inspiradoras de #testingheroes como Paul Gerrard, Julian Harty, Graham Thomas, Stefaan Luckermaans, John Reber, Derk-Jan de Grood, Fred Beringer et al. Cada cuál hablando un poco de “su libro”, pero a grandes rasgos, hablando todos de lo mismo: la evolución del perfil profesional del tester, el futuro del rol, la importancia de la automatización para dejar espacio a otros tipos de testing y de mayor valor, como el testing de performance, el testing en dispositivos móviles, el testing de infraestructura…

Eddy Bruin, charlando sobre testing en dispositivos móviles

De las casi 40 ponencias, keynotes y charlas realizadas en los días 6 y 7 de Junio, “mi expoQA” se consolidó en 13 sesiones sobre dos grandes temas: mobile testing (fantásticas charlas por parte de Julian Harty y Eddy Bruin – en la foto -, así como una demo de SilkMobile, herramienta para automatización funcional en móviles de Borland / Micro focus) y filosofía / metodología / background / proceso del testing en general (este tema/s principalmente tocado por los grandes popes anteriormente mencionados).

Me esforzaré por ejecutar un Top 3 de charlas a las que asistí, aunque me quedaba con 7 de las 13, creo…

  1. “The redistribution of testing” – Paul Gerrard: primera sesión, primera keynote, inicio electrizante del expoQA. Que poderío, que ideas tan claras, qué manera de salirse del dogma y ofrecer visión de futuro del tester y su profesión sin sonar fatalista ni pedante. Fantástico.
  2. “Test process improvement : answering the BIG questions” – Graham Thomas: es muy fácil señalar que algo tiene que mejorarse, así como preguntarse cómo mejorarlo, lo que es más complicado es responder a esas preguntas. Muy profesionalmente, este consultor independiente británico ofreció pistas sobre cuándo, quién, cómo… mejorar el proceso de testing. Muy interesante.
  3. Ex Aequo “Mobile testing” – Julian Harty / “Testing in a new world” – Eddy Bruin: empate en mi mente para estas dos en tercer lugar, fantásticas introducciones ambas al mundo de la movilidad y sus entresijos. Justo lo que necesitaba para perder el miedo al desconocido móvil y empezar a tener referencias básicas para empezar con buen pie en este terreno, que hace meses que llama a la puerta de Netquest. Mención especial a Julian Harty, improvisando una sesión magistral (por eso no hay link al programa) ante la ausencia del ponente oficialmente invitado a hablar de este tema. Los grandes se hacen grandes en estos momentos…

Como siempre me pasa en festivales, conferencias y demás, no asistí a las premiadas como mejores charlas de la edición (es algo innato en mi). Fueron las siguientes:

  • “Mutation: a testing technique ready for its transference to industry” – Macario Polo: escogida como la mejor ponencia por parte del comité de la expo, la técnica de la mutación se refiere a introducir errores en el código para comprobar si el testing encuentra esos errores, evaluando la confianza de las suites. Fantástica idea, que puede pegar fuerte en el futuro cercano.
  • “Exploratory Testing Myths” – Luis Fraile: elegida como mejor ponencia por parte de los asistentes, la charla de Luís trató del testing exploratorio desde el punto de vista desmitificador y práctico. Me quedo con mal sabor de boca por no haber asistido a esta, pero no se puede tener todo…

En resumen, gran experiencia, puede ser una práctica recomendable asistir a una gran conferencia sobre testing una vez al año, cargando las pilas y tomando ideas y ejemplo de lo más puntero en el sector, para luego volver a la tierra y aplicar algo de lo que se haya aprendido, ya sea en términos prácticos o filosóficos.

Nos vemos en la próxima edición (o lo intentaremos)!

Lo que se esconde detrás de un máximo de caracteres

Lo que se esconde detrás de un máximo de caracteres

Es ideal que los QAs y los testers estén involucrados en la captura de requerimientos y su posterior conversión en especificaciones. El agilismo así lo defiende y yo lo comparto, puesto que permite reconocer y alertar sobre áreas de riesgo, detectar potenciales problemas futuros, conocer de antemano los detalles de la funcionalidad que va a venir, adelantar el diseño de las pruebas… Es ideal, pero no siempre es posible.

En esos casos, la documentación disponible es de cosas ya hechas; es decir, funcionalidad ya implementada. En esa documentación pueden faltar detalles de implementación o meta-conocimiento del que disfrutaríamos si hubiéramos estado involucrados desde en un principio.

Hay varias maneras de recuperar ese terreno perdido, la idea de “Show & Tell” de Darren McMillan me parece fantástica (por la que el desarrollador hace una “demo” de la funcionalidad al tester, antes de submitar el código al repositório). Otra manera es mediante el própio testing exploratorio, mediante la própia exploración de la funcionalidad, apretando las tuercas a cada frase, cada palabra, cada coma, de la especificación de lo testeado.

En cualquier caso, los objetivos son los mismos:

  1. Disponer del conocimiento máximo de las aplicaciones a testear
  2. En caso de que el objetivo anterior no se cumpla, hacer todo lo que esté en nuestra mano para conseguirlo 🙂

Este objetivo no es un fin en sí mismo, es un medio para hacer mejor nuestro trabajo. Por ejemplo, un caso real con el que me he encontrado esta misma semana: nueva funcionalidad para una aplicación, me puedo incorporar a testearla sin haber podido participar en su concepción, luego valido  y re-valido todo lo que dice en la especificación que viene con la funcionalidad, y me encuentro con…

El campo XXX puede albergar un máximo de 256 caracteres.

“Eso habrá que verlo”, me digo. Y no era así, admitía 255, uno menos de lo esperado y especificado. En este punto, me podría haber parado, reportar el defecto y a otra cosa, pero en ello no ganaba conocimiento, luego me pregunté…

Y de dónde viene esta limitación?

Un dato así, a grandes rasgos, puede venir de…

  1. Exigencia expresa transmitida por el equipo de negocio
  2. Limitación técnica
  3. “Había que poner un máximo y no sabíamos cual”

Es fácil salir de dudas, preguntando al desarrollador responsable de la funcionalidad. En este caso, se trataba de (2): el límite viene del ancho de la columna de la base de datos que almacena el valor en el campo. Pero había un detalle, el campo es de tipo tinytext, cuyo ancho máximo es 255 caracteres y no 256, luego esto no es un defecto, es una errata en la documentación y ya está, puesto que no había problema por parte de negocio en que el campo tuviera una capacidad de 255 caracteres.

Learnings del caso concreto:

  • Saber de donde viene el máximo establecido en el campo concreto
  • Un defecto menos en el bugtracker, una errata corregida en la documentación
  • Aprender que el tipo de dato tinytext en SQL admite hasta 255 caracteres, útil para futuras pruebas de esta y otras funcionalidades.

Admito que no es un aprendizaje enorme ni me va a arrojar luz sobre las grandes dudas del testing o de la humanidad, pero si de cada pequeño cambio en una funcionalidad sacamos un conocimiento así, al cabo de un tiempo estaremos bastante más cerca del conocimiento máximo de las aplicaciones que testeamos.