Hacia el Cloud y el Crowd

Publicado en

El testing es tan antiguo como el software, pero en los últimos años ha evolucionado hasta tal punto que las pruebas se han convertido en algo estratégico y clave. Esto es consecuencia de los actuales ciclos de vida que buscan cada vez la entrega de desarrollos lo más rápido posible para acortar el llamado “time to market”.

En esta línea, según estudios realizados [1], en 2013 el 23% de los presupuestos de TI se destinaron al testing, ya que las empresas cada vez son más conscientes de que el testing ayuda a reducir costes, a ser más productivos a la hora de lanzar soluciones y a conseguir beneficios económicos.

Con tanta demanda y criticidad, la evolución en técnicas, tecnología y estrategias de testing no ha parado de evolucionar. En este artículo les comentaremos dos de esas evoluciones, dos nuevas tendencias que vienen de la mano del popular “cloud”, pero esta vez aplicado al testing, y que “amenazan” con revolucionar el ya llamado testing “clásico”: el Cloud Testing y el Crowd Testing.

Cloud Testing… ¿qué es?

“Cloud Testing”, como su propio nombre indica surgió de la unión entre el software testing y el “Cloud Computing”.

El cloud ya cambió la manera de usar el software, pasando de las licencias tradicionales al pago por uso. La tecnología de cómputo en la nube permite ofrecer servicios de computación bajo demanda a través de Internet, ofreciendo un sistema informático como servicio, acceder a servicios disponibles “en la nube”. Sus principales capas de servicios son la infraestructura como servicio (IaaS), plataforma como servicio (PaaS) y software como un servicio (SaaS).

En esta línea, el cloud testing permite las pruebas bajo demanda y el pago por uso. En la actualidad podemos encontrar con que hay cada vez más empresas que ofrecen estos servicios de cloud testing ofreciendo distintos tipos de pruebas. Siendo esta una de las áreas más emergentes del testing, ya que ofrece un nuevo enfoque para preparar de forma rápida, flexible y escalable un entorno de pruebas.

La nube agrega nuevas dimensiones a los modelos convencionales de testing. En lugar de comprar e instalar las herramientas y entornos de prueba, de formar a nuestro personal en las mismas, preocuparnos de actualizar las herramientas, hoy existe la posibilidad de encontrar servicios de cloud testing para casi todo, como por ejemplo pruebas de rendimiento, de carga, de seguridad, para dispositivos móviles, etcétera.

El principal beneficio del testing en la nube es que reduce costes de instalar, de mantener, de formar en cómo instalar y configurar, etc. Otros beneficios son la flexibilidad de adquirir un entorno de pruebas según sea necesario.

No obstante, a pesar de estos beneficios hay otros costos que son menos obvios y más difíciles de evaluar: el cloud testing requiere conocimientos técnicos especiales para generar casos de prueba y scripts, y el manejo de la seguridad también podría acarrear costes adicionales [4]. Veamos los pros y contras con más detalle.

El Cloud Testing vs testing tradicional

La realización de las pruebas que conlleva el cloud testing presenta algunas diferencias con respecto a las pruebas tradicionales de software.

Respecto al tiempo de configuración del ambiente de pruebas, en el testing en la nube se tardan minutos mientras que en el testing tradicional la duración es mayor. Las pruebas de testing tradicional se realizan en un ambiente controlado, antes de que el producto sea puesto en producción, mientras que las de testing en la nube se realizan en un ambiente “público”, bajo demanda, propiedad de proveedores externos.

Finalmente, los temas económicos; en el testing tradicional el costo va ligado a la infraestructura, a la instalación y al software (licencias), sin embargo en el testing en la nube el costo está basado en el uso.

Obviamente, no todo es bonito en el cloud testing ni todo está resuelto. A continuación presentamos una lista de las principales ventajas y desventajas.

Ventajas
  • Probar de manera más económica: comprando la cantidad justa de servidores, así como diferentes SSOO y entornos de prueba.
  • Mejoras en el rendimiento y en la escalabilidad.
  • Probar más rápido: las empresas dedican menos tiempo a la adquisición y montaje de la infraestructura para las pruebas.
  • Resultados más realistas: se trabaja con diferentes entornos operativos.
  • Mayor disponibilidad de herramientas de prueba y soporte de aplicaciones complejas: permite a las organizaciones llevar a cabo estudios de viabilidad técnica e identificar los mejores entornos de pruebas.
Desventajas
  • Regulación y la legislación teniendo que trabajar con proveedores que estarán en otros países.
  • La confidencialidad.
  • Integrar los recursos de la nube pública con los centros de datos internos de los clientes.

Crowd Testing… ¿qué es?

La externalización de los servicios de Testing y QA es un modelo emergente entre las empresas que quieren mejorar su calidad. Y de ahí la otra tendencia que nombrábamos al principio del artículo: el “Crowd Testing” o “Crowdsource Testing”.

El “Crowdsourcing”, también conocido como “tercerización masiva” o “subcontratación voluntaria”, consiste en externalizar tareas que, tradicionalmente, realizaban los empleados o proveedores, a un grupo numeroso de personas o una comunidad vía internet que voluntariamente deciden probar una aplicación.

Uno de los objetivos del “crowd testing” es reducir los costos y conseguir grandes volúmenes de testers por todo el mundo, lo que permite probar el software en muchísimos entornos y plataformas… y por mucha gente. Además consigue reducir el costo-tiempo de salida al mercado y de flexibilidad.

El crowd testing ha entrado en muchas compañías innovadoras para convertirse en una parte de su proceso de testing estándar, creando su propia comunidad de crowd testing, o contratando empresas que proporcionan la plataforma para el testing y una comunidad de testers que voluntariamente se han registrado para probarlo y que suelen ser pagados por bug encontrado.

Crowd Testing vs testing tradicional

Estos dos métodos se complementan entre sí, para entregar un producto software de alta calidad a los clientes. Aun así hay cosas que un equipo de crowd testing puede hacer y cosas que sólo un equipo de testing tradicional puede hacer.

Los equipos de testing tradicional se centran en el producto, cambios en ellos y en la presentación de informes de errores, mientras que los equipos de crowd testing se centran normalmente en los problemas de funcionalidad y en la facilidad de uso de la aplicación.

El crowd testing es muy útil, económico y, sin duda, ofrece una representación fiel de todos los dispositivos y clases de usuarios [3].

Al igual que hemos presentado una tabla comparativa con las ventajas y desventajas que conlleva aplicar cloud testing, realizamos otra tabla que se refiere a la aplicación de crowd testing [4].

Ventajas
  • Interacción con muchos usuarios. Entornos diversos que incluyen muchas combinaciones posibles.
  • Los testers no están relacionados con el desarrollo del producto, por lo que su opinión es totalmente imparcial.
  • Aplicaciones que están dirigidas a ser lanzadas en regiones geográficas se pueden probar de manera muy eficaz.
  • En ocasiones la empresa sólo paga por los errores reportados.
Desventajas
  • La gestión de las pruebas de crowdsourcing pueden ser una tarea difícil.
  • Confidencialidad ya que el software estará a disposición de un gran número de personas antes de ser finalmente liberado en el mercado.

Concluyendo y mirando al futuro

Una vez hecha la reflexión anterior y pensando en un futuro, podemos concluir que el testing seguirá en evolución, yendo cada vez a más, aprovechando las tendencias de las propias TI, haciendo uso de nuevas técnicas para ahorrar recursos, para que los sistemas software sean más fiables y de mejor calidad gracias al testing y para que se pueda probar cada vez más rápido y de manera más económica.

Todo ello en línea con los tiempos que vivimos, que requieren de ciclos de mercado más cortos y por ello… de más y mejor testing.

Referencias

[1] Capgemini (2013). http://www.es.capgemini.com/noticias/la-transformacion-digital-eleva-al-23-la-inversion-para-asegurar-la-calidad-del-software-en
[2] Garzás, J. (2012). Testing en cloud: Qué es, pros, contras y 10 proveedores que ya lo ofrecen. http://www.javiergarzas.com/2012/07/testing-en-cloud.html
[3] Iglesias, A. (2012). Crowd testing: El poder de las masas utilizado para mejorar apps. http://www.computerworld.es/archive/crowd-testing-el-poder-de-las-masas-utilizado-para-mejorar-apps
[4] Riungu-Kalliosaari, L., Lappeenranta Univ. of Technol., Lappeenranta, Finland, Taipale, O. & Smolander, K. (2012). Testing in the cloud: Exploring the practice. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6051416

 

Bio

Javier Garzás. Su primer proyecto ágil fue en 2001. Hasta la fecha, ha trabajado para más de 80 empresas en gestión e ingeniería software. Es Doctor, Ingeniero en Informática y Posdoctorado en la Carnegie Mellon. Ahora, profesor de la Universidad Rey Juan Carlos y colabora con 233gradosdeTI.com Desde 2006 escribo un blog sobre tecnología, ya con más de 1000 post: javiergarzas.com.

Ma. Ángeles Morales Muñoz actualmente colabora en el grupo Kybele-Universidad Rey Juan Carlos en el estudio e implantación de metodologías ágiles en general y Scrum en particular, modelos de procesos y DevOps, apasionada por la gestión de equipos e interesada en la calidad del software. https://www.linkedin.com/in/mamoralesmc

Noemí Navarro Sánchez, colabora en Kybele Consulting S.L especializada en proyectos relacionados con la implantación de metodologías ágiles, Scrum y calidad del software para importantes organizaciones. Apasionada por la adaptación de herramientas de gestión a entornos ágiles. https://www.linkedin.com/in/nnsanchez92