Un probador de software, denominado “Tester”, se encarga de realizar pruebas con el objetivo de encontrar defectos o bugs, aumentar la confianza en el nivel de calidad, facilitar información para la toma de decisiones y evitar la aparición de defectos o de problemas de rendimiento, estas son unas de sus principales actividades en el proceso de control de calidad.
Las etapas típicas del desarrollo de software donde se involucran testers, son las siguientes:
- Planeación de pruebas.
- Diseño de pruebas.
- implementación de pruebas.
- Evaluación de criterios de salida.
- Cierre del proceso.
Pruebas manuales y automatizadas
Las pruebas manuales son realizadas por una persona que prueba las funciones de la aplicación o software en búsqueda de errores, parte de esto consiste en tener la experiencia como el usuario final, haciéndolo de manera directa sobre el programa.
Un tester manual puede ser más efectivo en proyectos pequeños o realizando chequeos puede detectar fallos a los aspectos interactivos que van afines al uso que le dará el consumidor. Lo cierto es que tiene ciertas desventajas en proyectos grandes, donde se presenta la propensión humana a la fatiga, he aquí el riesgo de que algún procedimiento de pruebas que se aplica repetidamente sea omitido.
Es común que un tester nuevo inicie realizando pruebas manuales, ya que esta experiencia le será útil en el momento en que incursione en la programación y ejecución de pruebas automáticas.
Las pruebas automáticas se basan en crear y ejecutar códigos (scripts) con instrucciones específicas que detecten errores, se hace de manera autómata, cómo tener un robot trabajando para ti.
Automatizar tiene un coste de desarrollo, ya que requiere uno o varios humanos programen la prueba, que por decirlo de otra forma: uno o varios programas le hacen un “examen” al software que está en desarrollo. Tiene varias ventajas, entre ellas, que el retorno de inversión es mayor, ya que ahorra tiempo al realizar pruebas y en comparativa a un humano, funciona con mayor eficacia.
Para automatizar pruebas existen numerosa cantidad de herramientas, depende la plataforma para la que se esté desarrollando, por ejemplo; para aplicaciones web puedes utilizar Selenium, para aplicaciones móviles Appium, entre otras.
Particularidades de un tester
El tester se apoya en alguna herramienta de gestión de pruebas, en inglés “Test management tool”, que ayuda a organizar, y esquematizar la prueba, posteriormente aplicada, genera un reporte, que se enviará al equipo de programadores, quienes harán correcciones a las líneas del código que estén causando el desperfecto en el software. Al repararse este, será nuevamente enviado al equipo de pruebas de software, así, una y otra vez, hasta que el programa funcione óptimamente.
Después de haber realizado las pruebas, se genera un tipo de informe de resultado, que suele ser altamente variable, ya que depende las condiciones del proyecto; tiempos de entrega, compañía para la cual se apliquen las pruebas, el presupuesto, tipo de software o app, etc.
Pruebas estáticas y dinámicas
Regularmente cuando una compañía está a la búsqueda de un tester escuchamos cierta terminología que ejemplificaremos a continuación con una analogía:
Las pruebas estáticas se realizan sin ejecutar la aplicación, verificando sólo el código escrito de esta, es decir: sabes la receta del sushi y validas que la receta esté escrita correctamente.
Las pruebas dinámicas se realizan al ejecutar la aplicación, como quien dice: El sushi está preparado y sabe a lo que debe saber.
- Caja negra: Miras el sushi servido en la mesa, lo pruebas, y en efecto es un sushi.
- Caja blanca: Al momento de probar el sushi, sabes que es un sushi, miras el recetario y todo coincide.
(Pensemos en estos mismos ejemplos de caja negra y blanca al probar un software)
En conclusión, un tester es un catador de software, que más allá de sólo probarlo, se encarga del aseguramiento de calidad, así como de la implementación de metodologías de trabajo acuerdo al entorno de proyecto, temas de los que hablaremos a detalle más delante.