El 9 de septiembre se celebra el Día Internacional del Tester de Software, que conmemora el descubrimiento del primer defecto informático oficial. Los orígenes del incidente más famoso se remontan a 1947, cuando el equipo encargado de trabajar en la súper-computadora Mark II de la Universidad de Harvard compartió el primer reporte de un error, causado ni más ni menos que por un “bicho”, lo que se conoce en el mundo informático como “bug”.
La súper-computadora tuvo un fallo en un relé electromagnético y, cuando se investigó el motivo, se detectó que una pequeña y simple polilla se había colado en el relé, provocando que éste quedara abierto y no hiciese contacto correctamente.
Grace Murray Hopper, científica destacada de la computación, pegó la polilla con cinta adhesiva en el diario de trabajo refiriéndose a ella como “bicho” para describir la causa del problema, naciendo así el término “bug” para referirse a un error o fallo en el software o en el sistema que desencadena un resultado inesperado.
Esta historia es en parte el origen de una nueva área de IT que con el tiempo ha ido tomando más peso y ha evolucionado hasta lo que hoy en día conocemos como “pruebas de software”.
Si una aplicación fuese lanzada sin ser probada, ésta podría registrar un mal funcionamiento, con el consiguiente impacto negativo en los usuarios y las pérdidas de dinero, tiempo e imagen para la empresa que la desarrolló. Por este motivo, cada día cobra más importancia la necesidad de realizar pruebas para velar por la calidad de los sistemas y del software.
¿Cuál es la misión del Tester?
Los Testers son los profesionales encargados de velar por la calidad del software, garantizando que todo funcione correctamente de acuerdo a lo definido y que los defectos no lleguen al usuario. Hoy en día no se concibe el desarrollo de software sin realizar pruebas, ya que éstas serán el instrumento principal para asegurar la calidad de dicho software.
Si una aplicación de ventas online no funciona correctamente, se perderán visitas, ventas, negocio y por supuesto, no se conseguirán clientes.
El error humano en el desarrollo causa un defecto en el software que, en caso de ser ejecutado, provocará un fallo en el sistema. Pero los fallos en los sistemas también pueden ser generados en ocasiones por agentes externos o por condiciones medioambientales (sirva como ejemplo, la polilla que bloqueó el contacto del relé).
Mediante el Testing, el Tester localiza e identifica los fallos causados por los defectos. La acción de identificar la causa del defecto se denomina “debugging” y, por lo general, es el desarrollador quien se encarga de esta tarea y de corregir el defecto.
Cualidades y habilidades del Tester
Aclarados estos pequeños tecnicismos, ¿qué cualidades y habilidades debe tener una persona que realice labores de Testing? Desde nuestro punto de vista, las principales y más importantes deberían ser:
- Curiosidad: Un buen tester debe tener amplios conocimientos de lo que va a probar, pero también debe ser curioso y tendrá que plantearse en cada situación qué sucede, por ejemplo, si ejecutas un botón u otro, si clicas en un determinado lugar…
- Observación: Un buen tester tiende a analizar detalles que los demás no ven y dará importancia a cosas que otros no darán.
- Pensamiento lateral o razonamiento creativo: Equivaldría a resolver problemas buscando vías alternativas y, en ocasiones, de una manera imaginativa o creativa.
- Comunicación: Dado que el fin último del tester es reportar y dar a conocer los defectos localizados, o lo que es lo mismo, “incidencias”, es fundamental la comunicación tanto oral como escrita para ser capaz de transmitir ideas concretas y de valor.
- Empatía o “encanto social”: A la hora de reportar, cuidar las formas es fundamental. Si un tester trabaja codo con codo con el equipo de desarrollo, tiene que dejar muy claro que está en el mismo barco que el equipo de desarrollo, teniendo ambas partes el mismo objetivo, es decir, la calidad del software.
Roles y perfiles dentro del Testing
Existen diferentes roles o perfiles involucrados en el proceso de pruebas. La presencia de este tipo de roles dependerá del proyecto y de la organización, como por ejemplo:
- QA Manager, orientado al control y gestión de las pruebas
- Analista QA, perfil similar a un analista y que suele ser el encargado del diseño de las pruebas
- Tester, persona encargada de ejecutar los casos de prueba.
- Profesionales con perfiles más técnicos, encargados de la automatización de las pruebas o de las pruebas de rendimiento.
Como hemos podido comprobar, los perfiles de Testing son clave para las organizaciones, al prevenir y solventar errores de software que pueden acarrear consecuencias significativas tanto para los usuarios como para las empresas si no fuesen detectados. Para alimentar vuestra curiosidad (una de vuestras cualidades fundamentales), aquí tenéis una lista de los errores de software más relevantes que se han registrado en los últimos años.
Gerente, analista, desarrollador… el tester no es “el enemigo” que evalúa vuestro trabajo, sino el aliado que vela por un objetivo común: la calidad del software. Por ello, a todos los profesionales involucrados en los procesos de calidad del software y del testing… ¡enhorabuena por el trabajo que realizáis a diario!