miércoles, 17 de octubre de 2012

El "Tester del Futuro"

Actualmente nos encontramos ante un desarrollo tecnológico que está dando lugar a nuevos entornos y necesidades. Algunos ejemplos son:
  • La proliferación de dispositivos móviles hace que al día se realicen millones de descargas de apps. Las apps para dispositivos móviles integran distintas tecnologías y a su vez pueden hacer uso de aplicaciones de terceros
  • El Cloud Computing está tomando una gran relevancia debido a las facilidades que ofrece para que cualquier empresa pueda utilizar aplicaciones en Cloud de manera barata y accesible.
  • Las aplicaciones son cada vez más complejas e integran componentes de distintas tecnologías y proveedores.
El testing, como cualquier otra actividad del desarrollo e implantación de los S.I., se ha adaptado a este nuevo entorno: herramientas, metodología, tecnología, etc...

El ingeniero de pruebas se ha renovado y adaptado a los cambios. Pero, ¿cuáles son las características del tester del futuro?, ¿y qué conocimientos debe tener?

Intentaremos enumerar algunos de los desafíos a los que se enfrentan los ingenieros de pruebas en el actual contexto tecnológico, pero... el futuro ya está aquí!!




1. Más cercanos al "Desarrollo"


La implantación de metodologías Agile ha aproximado a los equipos de Desarrollo y Pruebas para que trabajen de manera conjunta y obtener la mayor calidad del producto:
  • Los equipos de pruebas participan en las reuniones junto con los integrantes del equipo de desarrollo y aportan  información para completar los requisitos.
  • Los equipos de desarrollo se convierten en los primeros "testers" de la aplicación. Codifican y diseñan casos de prueba (unitarios y de integración) a partir de la información obtenida de los testers.
El entorno de desarrollo Eclipse ha tomado gran importancia por la posibilidad de integración con otras herramientas de pruebas y su flexibilidad para adaptarse a los nuevas entornos (por ejemplo Android).

2. Más Técnicos.

   
El tester del futuro tendrá un alto nivel de conocimientos técnicos:
  • Debido a la complejidad de las arquitecturas involucradas, el ingeniero de pruebas no solo conocerá en profundidad la funcionalidad de la aplicación y la lógica del negocio, sino que también tendrá un conocimiento a bajo nivel de como funciona la aplicación, los módulos que la conforman, cómo se integran entre ellos y la tecnología de la que hacen uso.
  • Tendrán mayores conocimientos de programación (JAVA, PERL, etc..) que utilizará para desarrollar módulos de pruebas, simuladores o scripts de automatización.

3. Más conocimientos en herramientas Open Source


Las herramientas de pruebas seguirán siendo necesarias, pero actualmente existe un  desplazamiento hacia el uso de herramientas Free o Open Source. Este tipo de herramienta aportan una gran flexibilidad para ser utilizadas en diferentes etapas de las pruebas y pueden ser complementadas con módulos desarrollados de manera específica. Algunas de estas herramientas:
  • Jmeter, SoapUI, JUnit: son herramientas que  se utilizan de manera habitual en fases tempranas del desarrollo para pruebas unitarias, pero su uso se extendido a otras etapas del desarrollo software y ya son utilizadas de manera habitual por los ingenieros de pruebas.
  • Selenium y Robotium: son herramientas que permiten la automatización pero con un componente técnico muy alto. Su integración con el entorno de desarrollo Eclipse las hace muy potentes. 

4. Mayor flexibilidad. 


Hasta hace relativamente poco tiempo, los ingenieros de pruebas se encontraban claramente diferenciados por ámbitos, existiendo grupos especializados encargados de las pruebas no funcionales o técnicas (Rendimiento, Prestaciones, Seguridad, etc...). 

Actualmente la complejidad de las aplicaciones  y su integración con distintas tecnologías hace que los ingenieros de pruebas realicen tanto las pruebas funcionales como las pruebas técnicas.


5. Mayor Automatización de pruebas 


Actualmente nos encontramos en una situación caracterizada por:
  • Time-to-market corto: Los tiempos disponibles para implantar evolutivos de las aplicaciones son cada vez más cortos debido principalmente a que las empresas deben dar respuestas rápidas y alineadas con las campañas de marketing.
  • Las aplicaciones deben estar soportadas en multitud de Sistemas Operativos (Windows, Android, iOS,...), Plataformas (IE, Firefox, Chrome, ...) y dispositivos (Smartphone, Tablet, iPad, BlackBerry, ...).
El tiempo destinado a Testing se acorta drásticamente. La automatización aumentará la eficiencia de los ingenieros de pruebas y se convertirá en una cualidad necesaria en ellos. El Tester realizará todos los pasos del proceso de automatización (planificación, diseño, construcción y ejecución) con diferentes herramientas para cubrir las diferentes tecnologías implicadas en las diferentes etapas del desarrollo (pruebas unitarias, de integración, de sistema,etc..).



Es fácil encontrar otras cualidades y conocimientos que actualmente se requieren en un ingeniero de pruebas de software. Aquí solo hemos esbozado algunas de las más importantes, pero en cualquier caso, el testing goza de buena salud y seguirá siendo una actividad necesaria para garantizar la calidad de los sistemas. El ingeniero de pruebas siempre ha dado muestras de una gran adaptación al cambio, ahora tiene una nueva oportunidad de demostrarlo.

4 comentarios:

  1. La aparición de smartphones y tablets hace que los dispositivos, vayan siendo mas limitados en cuanto a capacidad (comparandolo contras las portatiles), el reto para el tester funcional es hacerse de mas conocimientos en usabilidad y look & feel. El reto para un performance tester, es sin duda, conocer mucho mas alla de la arquitectura que abarca un sistema, pasando desde elementos de front, middleware, back-end y hasta mecanismo de comunicaciones.
    Muy buen aporte: "as usual".

    ResponderEliminar
    Respuestas
    1. Totalmente de acuerdo. Los dispositivos actuáles plantean nuevos retos a los sistemas y aplicaciones que se desarrollan. Las arquitecturas son cada vez más complejas e integran aplicaciones o servicios de terceros que complican la labor de los ingenieros de pruebas. Conocer como funciona una app y los servicios de los que hace uso se hace imprescindible.
      Como siempre, tus aportaciones son bienvenidas y añaden un gran valor.
      Un cordial (...y nostálgico) saludo.

      Eliminar
  2. Sin embargo, no debemos olvidar que este incremento de la complejidad ,así como el hecho de pretender realizar proyectos con el uso de herramientas de libre distribución, requieren de mayores niveles de conocimiento del ingeniero de pruebas. Recordemos que el sentido del Free Source es "Libre" y no "gratis"...

    ResponderEliminar
    Respuestas
    1. La situación actual plantea nuevos retos a los ingenieros de pruebas: aprender nuevas técnologías, probar en etapas cada vez más tempranas del desarrollo, utilizar distintas herramientas, adquirir mayores conocimientos en la arquitectura, etc... Adaptarse a los nuevos requerimientos del mercado es el reto en el que nos vemos inmersos.

      Eliminar