Desarrollo y testing ágil


El testing ágil es una conjunto de pruebas que implican a todos los miembros del equipo. Para ello se siguen los principios del desarrollo ágil.


















El núcleo central de estas pruebas es el tester, pero todos utilizan su conocimiento garantizando la entrega con el valor de negocio deseado por el cliente.





Este conocimiento es usado para realizar una guía de codificación, pruebas unitarias y de integración o un historial completo de casos de prueba que permitan, de un vistazo, tener una idea clara de la funcionalidad de una pantalla.





En un desarrollo ágil, las pruebas no son independientes, como en otras metodologías, sino que están integradas en el ciclo de vida de la aplicación, aplicando el punto de vista de todo es de todos. Los tester pueden aportar su experiencia para realizar unos casos del comportamiento correcto de la aplicación, o como quisiera el cliente final que funcionara, guiando, de esta manera a los desarrolladores por un camino determinado. Esto se realiza gracias a que un tester siempre tiene un punto de vista más amplio y puede ver más allá de lo que puede ser típico o normal.





Las pruebas, al igual que el desarrollo de la aplicación, se realizan de modo incremental, aportando el valor suficiente de cada funcionalidad para ponerla en producción.





El testing ágil abarca todo tipo de pruebas, las realizadas por los tester y las realizadas por los desarrolladores y se tienen que adaptar a los principios básicos: colaboración, flexibilidad, simplicidad, transparencia y capacidad de respuesta.





El principio de estas pruebas comenzaría con las pruebas unitarias, que realizará el desarrollador apoyándose en los casos de prueba que ha escrito previamente el tester, probando el funcionamiento básico. Tras esas pruebas, una vez que se integra el módulo con el resto, se realizan las pruebas de integración, comprobando el correcto funcionamiento de ese módulo y el resto del bloque ya desplegado. Estas pruebas estarían en el tejado del equipo de desarrollo, siempre apoyado por el tester. En la parte del tester están las siguientes pruebas, que podrán ser exploratorias al principio y después las de sistema que pasarán los casos de prueba. Una vez que se realizan estas pruebas, se realizaran las pruebas de aceptación y las de regresión.


El principio fundamental del desarrollo ágil es que desarrolladores y tester son vistos de la misma manera, cosa que no estoy de acuerdo, como ya explique anteriormente en otro post. Lo que sí que estoy de acuerdo es que las líneas de trabajo no pueden ser dos, sino que se unen.





La idea principal es contraria a lo que se realizaba anteriormente: los desarrolladores intentan perfeccionar su código antes de entregárselo al tester, que luego se esfuerza en encontrar todos los defectos posibles para devolvérselo y así continuamente hasta que todo funcione correctamente. Con el testing ágil la idea es probar pequeñas funcionalidades e ir mejorando el código continuamente, sin esperas. Los desarrolladores y los tester tienen que reunirse a diario para que los primeros vayan soltando código y los segundos probar, de esta manera mientras que el desarrollador está implementando lo siguiente, el tester ya lo ha probado y se lo ha devuelto en el caso de que falle y así sucesivamente, cosa que facilitará el trabajo de ambos y los defectos estarán mucho más acotados y controlados.





Aunque el tester no sea un desarrollador y el desarrollador no sea un tester, sí que hay que intentar pensar como ellos. Un tester que piense como un desarrollador podrá ayudarse de esto para encontrar errores que antes no podría detectar y un desarrollador que piense como un tester podrá depurar su código y tener mejor calidad. Esto no quiere decir que ambos ejerzan un trabajo que no es el suyo, sino que amplíen su forma de pensar, nada más.





Esta manera de trabajar abre nuevos caminos y permite que el trabajo no sea monótono y aburrido, ya que por un momento, puedes pensar con un rol que no es el tuyo e intentar indagar por qué se ha realizado una funcionalidad de esa manera o se ha codificado para realizar una función específica.





Esta manera de trabajar es simplemente un punto de vista diferente, una forma de que la relación sea más “humana” y podamos hacer más equipo y por lo tanto trabajar de una manera más cordial y optimista.

0 Comentarios