Producto

Evolución y desafíos de las pruebas de software

Gustavo Almeida
Gustavo Almeida September 11, 2020
Evolución y desafíos de las pruebas de software

Hace algunos años las funciones del tester o analista de pruebas se limitaba a la documentación, los informes y las pruebas manuales. Mantenía proximidad con el analista de requisitos o gerente de proyectos y, a partir de los requisitos del sistema, comenzaba la tarea de transformar los casos de uso del sistema en casos de prueba. Estos se compilaban en un documento que se utilizaba como base para acompañar la ejecución de las pruebas, como una gran lista de verificación que se debía validar en cada versión del sistema. 

Ese compilado se conoce como plan de pruebas; además de contener todo el paso a paso, tenía otra información importante para realizar pruebas tales como: alcance, configuración de ambiente, datos para pruebas, funciones y responsabilidades de las personas implicadas, fechas de ejecución, ventanas de mantenimiento, diccionario de datos, métricas y una infinidad de información que eran la base de esa etapa tan fundamental en el ciclo de vida de un software

Ejemplo de un Caso de Prueba:

Dependiendo de la complejidad del sistema, el número de casos de prueba podía llegar a cientos fácilmente. A menudo, esa documentación se mantenía en archivos del paquete Office Word (.doc) o Excel (.xls), lo que complicaba su mantenimiento. 

Un simple cambio en el nombre del botón implicaba alteraciones en docenas de páginas de ese documento. Entonces, imagine lo que sucedía cuando se modificaba una regla más compleja, algún prerrequisito.

La documentación también funcionaba como entregas definidas en las actas de reunión y auditorías internas, este enfoque de un documento más rígido fue posible gracias al modelo de desarrollo Cascada que predominaba en las empresas. El modelo seguía fases en secuencia o, como su nombre lo indica, en forma de cascada.

Representación del modelo Cascada:

En algún momento de ese periodo, comenzaron a surgir las primeras herramientas exclusivas para la automatización de pruebas y otras que permitían más flexibilidad en el registro y en el mantenimiento de los planes de pruebas y registros de bugs. Algunas de estas herramientas fueron creadas por empresas como Microsoft e IBM; por ejemplo, IBM Rational.

De forma paralela, las metodologías de desarrollo de software evolucionaron de manera más ágil, menos rígida, con muchas iteraciones y entregas, así como sujetas a cambios de requisitos constantes. En una búsqueda rápida en Internet se pueden ver miles de blogs, artículos y libros que hablan sobre Agile, Lean, SCRUM, Kanban, entre otros. También surgieron otras metodologías que permiten que las pruebas se realicen en una etapa previa al código y que se centran en el comportamiento y/o el dominio de software como: DDD, TDD, BDD

Los programadores crearon sus pruebas, los equipos dieron los primeros pasos en las metodologías ágiles y los profesionales de pruebas de software comenzaron a desarrollar, buscando nuevas formas de automatizar las pruebas que se repetían en cada iteración. Es decir, fue evidente que había una convergencia de esfuerzos de todo el equipo para entregar la más alta calidad embebida en los productos, lo que se aplica en las empresas hasta hoy, inclusive en VTEX.

Complejidad y aumento exponencial de los sistemas

Hubo un auge en desarrollo web, con sistemas SaaS escalables. Luego, entramos en la era mobile-first; por eso, el alcance de las pruebas no ha dejado de aumentar. Llegamos a un punto en que tenemos diferentes navegadores web, cada uno con sus propias particularidades, y dos sistemas operativos principales para dispositivos móviles. Además, hay una infinidad de dispositivos con diferentes tamaños y resoluciones de pantalla.

Para seguir esos cambios, surgieron los servicios de pruebas cross-browser y cross-device que ayudan a impulsar las pruebas automatizadas, proporcionando más velocidad y flexibilidad en los scripts. Estos servicios tienen en común el suministro de una infraestructura en la nube y la facilidad de paralelizar las ejecuciones de las pruebas.

No solo había una preocupación constante sobre los diferentes navegadores y tamaños de pantalla, sino también sobre la validación entre diferentes versiones del mismo navegador y/o sistema operativo. Por ejemplo, una página web puede funcionar a la perfección en una versión X del navegador, pero puede presentar errores en una versión Y. El sistema debería soportar la versión Y por cuestiones contractuales, de relación con el cliente u otras, incluso si el propio fabricante ya no brinda más asistencia técnica para esa versión.

Además de eso, aumentaron las pruebas centradas en los requisitos no funcionales. Por ejemplo, tenemos aplicaciones de transmisión de video que continúan funcionando incluso con una señal baja de la antena de telefonía, sistemas que utilizan recursos internos de los dispositivos como un acelerómetro, y una multitud de pequeños detalles que pueden aumentar aún más el alcance de las pruebas. 

En resumen, se observa que la complejidad, las dimensiones y los desafíos de las pruebas de software aumentaron a una velocidad exorbitante y continúan haciéndolo.

Pero ¿qué sucede con el profesional del área?

Toda la transformación también impactó en el perfil del profesional de pruebas de software. Ahora, este profesional está más capacitado para escribir código, utilizar herramientas de DevOps y sistemas de integración continua, por ejemplo.

Se puede observar fácilmente esa transformación a través de la nomenclatura que recibió a lo largo de los años. Hoy, tenemos numerosos términos para identificar un perfil que, a pesar de tener algunas características distintas en sus funciones, en el fondo es un perfil que comparte el sentimiento de propietario del producto y que se centra en la calidad. Podemos enumerar varios: tester de software, analista de pruebas, analista de calidad, QA analyst, gerente de pruebas, agile tester, analista automatizador de pruebas, automatizador de pruebas, ingeniero de pruebas, entre otros.

En VTEX, el perfil que mejor se adapta a nuestro equipo es SET: Software Engineer in Test. Este perfil adquirió notoriedad a través de las grandes empresas tecnológicas de Silicon Valley, y básicamente corresponde a un ingeniero de software con experiencia en pruebas y con énfasis en el desarrollo de sistemas de automatización, frameworks y sistemas destinados a probar softwares en general. 

Incluso, tenemos una oferta de trabajo para SET. Haga clic aquí para verla.

El futuro ha llegado

Estamos rodeados de datos y están surgiendo cada vez más aplicaciones orientadas a ellos. Este tipo de aplicación dificulta el uso de las técnicas de pruebas tradicionales, como la Partición de Equivalencia o el Análisis de Valor Límite, porque las respuestas no son necesariamente binarias.

Como el caso de las aplicaciones de Inteligencia Artificial, Machine Learning, aplicaciones de reconocimiento de voz, de reconocimiento facial y de imágenes en general, ¿cómo validar que un sistema reconoció correctamente a un gato en la imagen? Sabemos que en estos sistemas hay falsos positivos y una gran cantidad de antecedentes en estadística.

¿Tendremos profesionales cada vez más calificados para la tecnología embebida y hardware? Muchos asistentes virtuales surgirán y con estos muchos desafíos de prueba.

La capacitación en áreas de estadística, como la ciencia de datos, puede ser un camino que recorrer para estos profesionales. Al ritmo en que evoluciona el mundo de las pruebas de software, se espera que el profesional de esta área continúe especializándose. Después de todo, los desafíos y las responsabilidades son cada vez mayores.

¿Quiere construir una carrera que esté preparada para el futuro?
Vea nuestras ofertas de trabajo.

Continúe leyendo: historias relacionadas
Producto

¡Hoi, salut, 안녕하세요! La plataforma VTEX está ahora disponible en neerlandés, francés y coreano

Dando otro paso fundamental hacia nuestro objetivo de escribir el futuro del comercio, anunciamos que nuestra plataforma ya…

Larissa Dias
Larissa Dias
Producto

Ocho acciones concretas para quien quiere migrar al área de producto

¿Estás pensando en hacer una transición de carrera y trabajar en el área de producto? Conoce el recorrido…

Alice Sabino
Alice Sabino
Producto

‘¡Kon’nichiwa, Japón!’ La plataforma VTEX ya está disponible en japonés

Después de la apertura de una oficina en Singapur para brindar mejor servicio a la región Asia-Pacífico, VTEX…

Cassiane Vilvert
Cassiane Vilvert
Estrategia

Las dos migraciones de doto y cómo con VTEX la tercera, fue la vencida

Tomar decisiones nunca es sencillo y más cuando de éstas depende tu negocio online. ¿Qué plataforma elijo? ¿será…

Scarlett Garza
Scarlett Garza
Producto

Dentro del roadmap de una empresa visionaria: qué es lo que aún puede esperar de VTEX en 2020

Recientemente, VTEX recibió la denominación de Visionaria en el Cuadrante Mágico de Gartner para el Comercio Digital de…

Cassiane Vilvert
Cassiane Vilvert
Historias de Clientes

La experiencia de búsqueda impulsada por IA de Grupo Éxito

Productos textiles, perecederos, electrónicos o muebles. Si usted puede nombrarlo, Grupo Éxito probablemente lo tiene. El continuo éxito…

Sorana Gheorghiade
Sorana Gheorghiade
Producto

Store Framework: cómo VTEX ha optimizado el rendimiento de las tiendas con React

El desafío de mejorar el rendimiento de un comercio electrónico no es algo trivial. Perder ventas por tener…

Rodrigo Affonso
Rodrigo Affonso
Producto

Presentamos VTEX IO Store Framework en open-beta

En VTEX creemos que los minoristas deberían tener el poder de vender cualquier cosa, desde cualquier lugar, a…

Lucas Bacic
Lucas Bacic
Producto

Mercado Libre: Presentamos Buy Box y anuncios Clásico y Premium simultáneos.

Todos los días vemos el potencial de múltiples canales de ventas en las operaciones de nuestros clientes. Cuando…

Cassiane Vilvert
Cassiane Vilvert
Leer Más
Suscripción realizada con éxito.