¿Buscas iniciarte en automatización de pruebas? Accede a recomendaciones clave para empezar trabajar en esta cada vez más importante área de la calidad de software.
Si bien hay diferentes tipos de testers en la industria tecnológica, todos tienen como objetivo común entregar un producto de calidad.
Al hablar de producto en el ámbito del TI, nos referimos a una simple aplicación de escritorio, o a algo tan robusto como una aplicación móvil o una aplicación web. Todo producto que salga al mercado se debería probar internamente para asegurarnos que funciona.
Fuera del entorno de la informática, esto se puede extrapolar a cualquier mercado: autos, electrodomésticos, vestimenta, etc. Siempre debería haber un tester para dichos productos.
¿Qué habilidades debe tener un Tester?
Cuando hablamos de tester, también hablamos de ingenio y creatividad. Pero, ¿por qué estas cualidades son tan importantes? No solo es necesaria la imaginación para diseñar los casos de prueba complejos, también para preguntarnos: ¿Qué pasa si pruebo esto con la aplicación? ¿Qué pasa si pruebo esto otro? ¿Qué hago si sigo un flujo de registro y no ingreso todos los datos obligatorios?
El ser observador y detallista nos ayuda a comprender que cualquier mínimo detalle que pudiésemos encontrar. Quizá pueda ser el origen a un error más grande y es importante detectarlo y reportarlo. Estos son detalles que probablemente otros miembros del equipo no van a considerar o no lo van a notar, ¡pero para eso estamos los testers!
Otra habilidad clave es ser un buen comunicador. El tester debe ser capaz de informar al equipo que el comportamiento del software o aplicación que se está probando no está funcionando de la forma esperada.
Seamos honestos, a nadie le gusta que critiquen su trabajo, por lo que la manera en que nos comunicamos es esencial para llevar una buena relación con nuestros pares.
Mitos comunes sobre el rol del Software Tester
Durante el tiempo que estuve estudiando e incluso ya trabajando, me percaté que el perfil del tester es más bien desconocido. Se hablan muchas cosas acerca de lo que hacía y lo que no hacia el tester: ¿cuáles son los mitos en torno a este rol?
Mito 1: Probar es fácil
Uno de los mitos más comunes es que ‘probar es fácil y poco desafiante’. En realidad, probar no es una tarea sencilla, es todo lo contrario y comprende varias aristas, tales como: investigación, análisis, diseño y creatividad. El trabajo de contribuir a mejorar la calidad en un producto de software es una tarea que conlleva mucha responsabilidad.
Mito 2: Un Tester no sabe programar
Si bien esto va de la mano con la orientación que brinda la academia. La realidad es que no todo se resume en programar, no a todos los informáticos les encanta programar y esto en sí, no debería tener una connotación como algo ‘malo’.
Si provenimos de carreras como programación o ingeniería, lo más probable es que manejemos lenguajes de programación, programación orientada a objetos, bases de datos, control de versiones, etc.
Muchas veces si automatizamos nuestras pruebas vamos a tener la oportunidad de utilizar código en el caso que lo consideremos necesario, pero es un tema que abordaremos en las próximas líneas.
Mito 3: La responsabilidad es exclusiva del Tester
Otro mito muy comentado es que ‘si hay errores la responsabilidad del tester’. Francamente, es imposible probar todo y alcanzar un 100% de cobertura con las pruebas. También debemos pensar que en general vamos a probar en un ambiente distinto al de producción, por lo que siempre van a haber errores.
Lo importante es que gracias al testing, estos riesgos se van a minimizar lo máximo posible. Es decir, si antes de probar teníamos 50 errores, ahora quizás vamos a tener 2 o 3, y eso es calidad.
¿Por qué Automatizar Pruebas de Software?
Simplificar tareas repetitivas
Una de las principales razones para automatizar las pruebas de software es porque simplifica el trabajo tedioso y repetitivo. Ocurre frecuentemente que tenemos que probar formularios con muchos campos, inicios de sesión, registros, entre otros aspectos. Además, se deben probar muchas veces o bien, cada vez que se realiza un cambio en el código del software.
Para ello, la automatización se hace indispensable ya que como testers, no debemos invertir tanto tiempo en realizar pruebas repetitivas.
Aumentar la Cobertura de las Pruebas
Primero, recordemos brevemente en qué consiste la cobertura: es el porcentaje que consideramos en nuestras pruebas con respecto al total de pruebas a realizar. Ahora bien, ¿cómo ayuda la automatización en la cobertura de las pruebas?
Si tenemos pruebas automatizadas repetitivas, esto nos ayuda a probar de forma manual otras pruebas que probablemente no teníamos consideradas. De la misma manera, nos ayuda a disponer de más tiempo para explorar a profundidad la aplicación o diseñar más casos de prueba.
¿Busca iniciarse en la automatización o quiere reconvertirse a la industria? Lo primero es entender qué hace un tester automator y por qué la automatización es necesaria para la gestión de las pruebas.
Para los testers que están recién comenzando, es recomendable que empiecen como testers funcionales. Esto les brindará las bases necesarias para convertirse en un buen tester automatizador. ¡Hablaremos de eso a continuación!
¿Por qué aprender sobre Test Automation?
Se habla mucho acerca de los beneficios que la automatización aporta a las empresas y a los proyectos. En el ámbito profesional, el área de TI requiere que continuemos capacitándonos constantemente, adquiriendo nuevos conocimientos y explorando nuevas herramientas. Afortunadamente tenemos todo a la mano: recursos gratuitos, cursos, comunidades, eventos de testing y Podcasts.
Adhiero a la idea de que si un tester cuenta con conocimientos sólidos en automatización, ya sea a nivel de servicios o a nivel de interfaz de usuario, no solo es un tester más integral, también puede ser mucho más atractivo para el mercado laboral.
En mi caso, me orienté hacia la automatización de pruebas, porque al iniciar a trabajar como desarrolladora Jr. siempre quería aportar mucho más al proyecto.. ¡hasta llegar por casualidad al testing! En realidad no fue una opción laboral clara desde un inicio, porque en ese entonces no era tan visible dentro del área de TI. Por suerte, hoy podemos encontrar mucha información y saber que tenemos la opción de desempeñarnos en esta apasionante área.
Mitos sobre la Automatización de Pruebas
Hablamos sobre automatización, y suena maravilloso, ¿verdad? Automatizar tiene sus pros y contras desde el lado del proyecto o software. Desde mi punto de vista, saber de automatización siempre será un plus, en cuanto a conocimientos.
Algunas frases que he escuchado en ciertos proyectos en los que he estado trabajando como ester automator:
“Queremos automatizar todo”: Esto no será factible porque siempre habrán flujos imposibles de automatizar. En cuanto al tiempo y los costos, las pruebas manuales en muchos casos serán más fáciles y rápidas, por lo que siempre debe existir un complemento entre ambas.
“El software es simple, no necesitamos pruebas manuales”: Se puede dar esta situación, pero antes de la prueba automatizada siempre debe haber una prueba manual.
“Con la automatización reduciremos el tiempo de pruebas”: Lo ideal es no reducir el tiempo de las pruebas sino por el contrario, tener más tiempo para ejecutar otras pruebas, explorar la aplicación o diseñar más casos de prueba.
“Si tenemos automatización necesitaremos menos testers”: Nada más lejos de la realidad. Automatizar no se traduce en crear un script y dejar que se ejecute, requiere mantenimiento y monitoreo constantes.
La automatización no reemplaza las pruebas manuales, ni el análisis inicial, ni la exploración del software, ni la planificación de las pruebas. La automatización es un complemento beneficioso para la gestión de pruebas en general.
Otras consideraciones
Es importante considerar algunas herramientas y conceptos utilizados ampliamente en el área, pues si bien no es primordial que como testers seamos expertos en todas las herramientas de automatización disponibles, si es recomendable conocerlas y explorarlas.
Control de Versiones
Si estamos automatizando con código tendremos que versionar, idealmente en un repositorio compartido con el resto del equipo, o podemos tener nuestro propio repositorio de pruebas. En general, tenemos que ser capaces de conocer y dominar las ramas.
Bases de Datos
Son muy utilizadas en el caso que se utilicen datos externos; si no tenemos la opción de integrar consultas directamente en el código de pruebas, de igual forma tendremos que utilizarlas de forma externa.
Como testers, no debemos ser expertos en bases de datos, pero es recomendable tener los conocimientos básicos de consultas de datos. También saber conectarnos a una base de datos en particular, entender su estructura y qué tipos de datos debemos consultar.
Web Services
Lo más importante sobre los servicios web es poder entender qué significan, cómo están integrados en el software, investigar sobre servicios rest y servicios soap, como probarlos y como automatizar esta parte, lo ideal es siempre probar la capa de servicios, pero por sobre todo saber de la teoría y de cómo y con qué herramienta probarlos.
Metodologías de Desarrollo
Debemos conocer acerca de metodologías de desarrollo, en especial sobre Scrum, y saber cómo un tester automator se puede adaptar a esta metodología, entendiendo sus principios y de qué forma se puede aportar ahí.
También podemos caer en metodologías tradicionales como el de enfoque de cascada, por lo que independiente de la metodología de trabajo, debemos ser capaces de comprender nuestro aporte dentro de estas.
Integración Continua
Con respecto a la integración continua o devops, se define como un modelo de trabajo cooperativo entre los miembros del equipo, desarrolladores, operaciones, testing que busca proporcionar la entrega continua del software. Si se trabaja en un entorno de integración continua, esto contribuye a que podamos automatizar.
Con lo anterior, vamos a obtener múltiples beneficios:
- Tener un feedback del resultado de las pruebas más anticipadamente.
- Reducir el time to market.
- Minimizar los fallos críticos en producción.
- Verificar el impacto de las pruebas con cada cambio que se realice en el software.
Enfoques de Desarrollo
Para este punto, nos vamos a enfocar solamente en la automatización. Entre los enfoques se encuentran el Desarrollo guiado por pruebas (TDD) y Desarrollo dirigido por comportamiento (BDD).
TDD se enfoca básicamente en las pruebas unitarias y BDD se enfoca en las pruebas funcionales. Por tanto, BDD se adapta bien a las metodologías ágiles, en donde por lo general, se escriben historias de usuario dando ejemplos concretos de un comportamiento que luego pasará a ser una prueba. Una herramienta muy popular para utilizar este enfoque es Cucumber.
¿Quién puede trabajar como Tester Automator?
En este punto vamos a tener dos opciones. La primera es un perfil más técnico, es decir, las personas que están cursando una carrera de TI. Y es que sin duda estar o haber estudiado una carrera de TI brinda muchas de las condiciones que son esenciales para ser tester, tales como, análisis, lógica y muy importante, programación: debemos saber programación.
Por otro lado, si no se cuenta con estudios en el ámbito de TI o si se trabaja en cualquier otro rubro que no esté relacionado con el testing, de igual manera es posible iniciarse en el área de la automatización. Aunque el camino va a ser un poco más largo, porque debe existir un proceso de capacitación e investigación, lo importante es saber que existen posibilidades y que si le interesa el mundo del testing de software, hay mucho para aprender.
¿Un desarrollador puede convertirse en Automatizador?
Efectivamente un desarrollador puede convertirse en automatizador. Lo ideal es iniciarse en las pruebas manuales obteniendo así la base del testing de software, y luego comenzar a automatizar.
En otras palabras, ¿cualquier persona puede ser tester? Así es, todos pueden iniciarse en el mundo del testing. Lo importante es contar con las aptitudes y un gran interés de aprender, estudiar y crecer en esta área.
Recomendaciones para iniciar en el mundo de la Automatización
Mejorar las habilidades
Sabemos de las habilidades que debe tener el tester en general, tales como ser curioso, detallista, observador y creativo. Si tenemos estas habilidades lo ideal es potenciarlas, ¿cómo lo hacemos? La respuesta es la práctica.
Hoy todos tenemos un celular con distintas app instaladas o apps nuevas; podemos aprender a reconocer sus funcionalidades: login, formularios de registro, navegación entre secciones, etcétera.
Practicar inglés
Es muy importante entender inglés en el área de TI. Si bien no es algo esencial ser bilingüe, sin duda saber inglés nos brinda altas posibilidades de quedar en procesos de selección.
Aprender conceptos
En testing se manejan muchos conceptos propios del perfil. Debemos aprender cuanto antes esos términos que nos ayudarán a entender mejor el testing, casos de prueba, bugs, reporte de incidentes, ciclos de prueba, testing exploratorio, plan de pruebas, etc.
Cursos gratuitos o pagos
Es recomendable realizar cursos acerca de lo que nos interese aprender en el área de testing. Existen muchas herramientas para automatizar que podemos seguir aprendiendo.
Mantenerse a la vanguardia
Cada día las empresas están optando por nuevas herramientas disponibles en el mercado, y se está probando más la capa de servicios e integración. Por tanto, lo ideal es continuar estudiando y aprendiendo sobre automatización.
Crecimiento en el área profesional
¿Cómo podemos crecer en el área profesional? ¿Cómo podemos darnos a conocer y aprender más? Este es uno de los puntos más importantes a la hora de no solo iniciarnos en el área profesional, sino ya siendo parte del mundo de TI.
Una buena práctica es aumentar nuestra red de contactos a través de LinkedIn, donde también hay grupos y comunidades interesantes de los que se puede obtener mucha información relevante para el perfil de tester.
No olvidar la importancia de optimizar y mantener actualizado el perfil en LinkedIn. Esto va a dar más visualización, siendo la comunicación, una de las habilidades clave del tester.
¿Cuál es el camino para convertirse en Tester Automator?
No existe un camino único para ello, unos comenzamos estando en el área de TI, otros comenzaron siendo desarrolladores, y otros comenzaron desde cero. Pero en cualquiera de los escenarios siempre lo primero consiste en investigar y capacitarse.
Si ya contamos con una base teórica del testing que nos brindan las capacitaciones y el testing funcional, lo siguiente es aprender programación, independiente de que existan herramientas que no necesiten saber de código. De igual forma es necesario aprender los lenguajes de programación que sean de nuestro interés, para comprender mejor la lógica.
También investigar y aprender sobre las herramientas y conceptos como el control de versiones, integración continua, bases de datos, los enfoques de desarrollo y metodologías. ¿Provienes del área de TI? Lo más probable es que conozca la mayoría y esa es una ventaja.
Al contar con estos conocimientos, lo siguiente es aprender herramientas de automatización. Recomiendo comenzar con una herramienta libre de código como TestProject y luego continuar por una herramienta con utilización de código como Selenium Webdriver o Webdriver.io. En este post se hace una comparativa interesante de estas últimas dos herramientas.
Webinar sobre Test Automation
En este encuenstro compartí los consejos y consideraciones para empezar a trabajar como tester automator. ¡Gracias a las +240 personas que se sumaron desde varios rincones de Latinoamérica!
Accede a la presentación aquí o mira acá la grabación. Suscríbete y activa la 🔔 para estar al tanto del contenido que estaremos publicando próximamente.
Q&A Webinar: La ruta hacia el Test Automation
1. ¿Realizan talleres o webinar gratuitos donde se realicen laboratorios prácticos?
Uno de nuestros impulsores clave en Abstracta es compartir lo que aprendemos y retribuir a la comunidad y, de esa manera, ayudar a más personas también a crecer y desarrollarse en su carrera de testing de software, por lo que realizamos periódicamente webinars desde la comunidad de QA & Testing Chile y Abstracta Tech Talks desde Uruguay.
2. ¿Tienen cursos gratuitos en Abstracta?
Te invitamos a conocer Abstracta Academy, una plataforma de capacitación 100% online en testing de software. Actualmente no contamos con cursos gratuitos.
3. Soy nuevo en el mundo del testing, ¿qué recomendaciones me pueden dar?
Primero, potenciar las habilidades propias del tester: observador, detallista, curioso, buen comunicador, se puede lograr practicando con las web de ejemplos que entregue en el webinar, verificando funcionalidades, crear casos de prueba, en el mejor de los casos hacer un curso de fundamentos de tester de software ayudará mucho.
4. ¿Qué es lo más difícil al empezar a automatizar?
Crear scripts de casos de pruebas sin falsos positivos o falsos negativos, de la única forma es agregar muchos assertions a las pruebas y probar y probar mucho el script, es la única forma de estar seguros de que nuestra automatización funciona.
5. ¿Qué diferencia hay entre QA-QC y TestOper?
El QA está orientado al proceso de desarrollo de un producto de software. El QC interviene con el producto de software final. En cuanto al TestOper no responde a un rol en específico, existe una comunidad tecnológica con ese nombre.
6. ¿Se pueden automatizar pruebas para cualquier tipo de testeo, como accesibilidad o pruebas de estrés?
Claro que sí. Las pruebas de performance son fundamentales para el proceso de pruebas, ideal si podemos agregar la automatización de performance a integración continua.
7. Quiero aprender Appium, ¿qué tan recomendable es automatizar validaciones de diseño?
Siempre va a depender del tipo de prueba de diseño que estemos probando. Existen pruebas de regresión visual muy buenas que se pueden agregar a nuestra automatización; en este webinar de Abstracta Tech Talks se explica este tema.
8. ¿Cómo desarrollas el sesgo cognitivo o la habilidad de observación para hacer pruebas exploratorias exitosas?
En mi caso fue tema de práctica, no sentía que era tan detallista. Hasta el día de hoy trato de potenciar esa habilidad, sin duda me ayudó haciendo testing manual, viendo videos y leyendo mucho; el testing exploratorio sirve demasiado para la observación.
9. ¿Podrías dar un ejemplo de prueba de alto riesgo que se pueda automatizar?
Una prueba de alto riesgo es la que es prioritaria para el negocio, es decir, que si esta falla puede ser un error muy grave. Un ejemplo podría ser en una app de supermercado cuando elijo los productos debe sumar el total y mostrarlo en la aplicación para pagar, ¿qué pasa si ese total es erróneo? Si me cobran más de lo que se supone o me cobran menos de la cantidad, es una situación muy riesgosa ya que el cliente o usuario estará perdiendo dinero; esta es una de las pruebas que no debe faltar.
10. ¿Qué nivel de inglés debe dominar un tester?
Debería ser un inglés intermedio para que podamos dominar los software que probamos y las herramientas que utilizamos, pero es ideal obtener alguna vez contar con inglés avanzado, ya que nos ayudará a poder tener más opciones de quedar en procesos de selección.
11. ¿Herramientas de performance como JMeter son fundamentales?
Para la automatización si es necesario conocer la herramienta JMeter, ya que nos tocará más de alguna vez realizar pruebas de performance. Por suerte, es una herramienta open source y además muy fácil de aprender a utilizar.
12. Soy tester manual, ¿cómo recomiendas empezar a automatizar? ¿Qué lenguaje recomiendas?
Recomiendo comenzar a automatizar con una herramienta libre de código como es TestProject para ir entendiendo cómo funciona la automatización. En cuanto a lenguajes de programación recomiendo realizar algún curso de fundamentos de Selenium con Java o Python.
13. ¿Python es viable para automatizar en el largo plazo?
Claro que sí, Python es el lenguaje de programación más utilizado hoy en día, por lo que verlo como un lenguaje a largo plazo es muy bueno, además se puede integrar con Selenium y Webdriver.io
14. ¿Hay campo de empleo en test automation en Chile?
Efectivamente, hay campo de empleo en testing en chile, sobre todo si ya cuentas con conocimientos de Java será una ventaja técnica muy importante. Te recomiendo consultar sobre las posiciones abiertas en Abstracta Chile al correo [email protected].
15. ¿Qué recomiendas sobre pruebas para Frontend?
Sin duda, es importante incorporar pruebas unitarias en Frontend. En cuanto a interfaz de usuario, se pueden incorporar pruebas ent-to-end con alguna herramienta como Selenium.
16. ¿Qué casos de pruebas automatizadas le harías a un login?
Lo bueno de automatizar el login es que podemos utilizar Data Driven Testing con un archivo de datos externo. Recomiendo automatizar el ‘camino feliz’ y dependiendo de los requerimientos del software, se podrían agregar casos como campos vacíos y erróneos, todos con sus respectivos assertions.
17. ¿Cómo fue tu proceso de pasar de QA Manual a automatizador? ¿Pasaste a algún lenguaje en específico como Java o algún otro?
De ser tester manual, pasé a automatizar con lenguaje Java con Selenium ya que es el más popular para comenzar, poco a poco fui capacitándome y practicando. Ideal rodearse con profesionales que sepan de automatización para poder orientarse ante dudas, de lo contrario, hay muchos tutoriales y cursos fáciles para practicar.
18. ¿Podrías dar ejemplos de flujos donde no conviene la automatización?
Flujos que sean inestables como por ejemplo una prueba que manualmente funciona de forma correcta, pero al llevarla a automatizar se cae sin saber bien las razones (puede ser temas de tiempos de respuesta), o bien flujos que cambian constantemente por requerimientos del cliente.
19. ¿Cuál es el mejor enfoque para automatizar una regresión?
Siempre va a depender del producto que estemos probando y de las opciones que tenga el proyecto. Si tenemos la opción de elegir el enfoque siempre es bueno tener en cuenta el tiempo que tendremos para automatizar y el costo que vamos a tener. Si es una automatización que debe ser diseñada rápidamente record and playback sería una buena opción.
20. ¿El líder debe participar de las pruebas de performance y pruebas unitarias, por más que sean realizadas por otros equipos?
El líder debe estar al tanto de todas las pruebas que se hagan en un proyecto, debe saber entenderlas de forma técnica y teórica ya que es a quien acudiremos en caso de dudas.
21. ¿Hasta dónde puede involucrarse un tester automator? ¿La integración continua no corresponde a infraestructura?
Hasta donde el proyecto lo permita, entre las cosas que no debería hacer un tester están: desarrollar, corregir, tomar decisiones del negocio pero sí aportar mejoras. Respecto a la integración continua, consiste es un enfoque colaborativo en donde todos los miembros del equipo deben conocer y aportar, el tester debe preocuparse de que las pruebas estén bien integradas al pipeline y que funcione de manera correcta. La infraestructura se encarga de mantener este pipeline. Por tanto, no es tarea del tester mantener la integración continua.
22. ¿Qué web de pruebas recomiendan para practicar si no se sabe programar aún?
En la esta presentación agregué varias webs de pruebas muy útiles para aprender desde cero a automatizar. También pueden revisar estos demo websites para automatizar tests.
23. ¿Las pruebas automatizadas solo aplican para aplicaciones web, o también se pueden aplicar en aplicaciones de escritorio?
También son para aplicaciones de escritorio, existen la opción de Selenium pero lo ideal es que sea con una herramienta especializada para ello.
24. ¿Hay patrones para escribir código de automatización, así como existen en el desarrollo?
Exactamente, uno de los más utilizados es PageObject, sin duda ayuda mucho al momento de desarrollar automatización.
25. ¿Es indispensable el conocimiento de programación para ser tester automatizador? Si no sé programar y abarcar tanto scripting como recoder, ¿puedo llamarme tester automator?
Si no sabes programación y automatizar con record and play, te puedes llamar automatizador, pero aún así es recomendable aprender scripting ya que a la hora de estar en un proyecto no siempre podremos elegir con qué enfoque automatizar. Si queremos ser un tester más completo es recomendable aprender de ambas.
26. ¿Existen estrategias o metodologías de automatización?
En este post puedes conocer algunas buenas prácticas para revisar la estrategia de pruebas.
Esperamos haber contribuido a aclarar algunas dudas acerca de cómo iniciarse en el área de la automatización de pruebas. Si ya comenzaste en este camino, ¡déjanos un comentario con tu experiencia!
¡Síguenos en LinkedIn, Twitter, Facebook, Instagram y YouTube para ser parte de nuestra comunidad y enterarte de otras buenas prácticas de test automation!
Otros contenidos relacionados
Automatizar Pruebas de Software: ¿cuándo y por qué?
Mabl: Primeros pasos con la Herramienta de Testing Automatizado
Federico Toledo a fondo: “Cada vez van a ser necesarios más y mejores testers”
Posts Relacionados
Cómo elegir la mejor herramienta de automatización de pruebas para tu proyecto en 5 simples pasos
Cada proyecto de testing es único, así como sus requisitos. Conoce algunos pasos prácticos para decidir qué herramienta de automatización de pruebas es la mejor para tu proyecto.
Patrones de automatización de pruebas de software y buenas prácticas
Mira cómo asegurar que la automatización de pruebas no solo promueva que el equipo trabaje más rápido, sino en la dirección correcta, con una combinación idónea de herramientas, patrones de automation y prácticas.