
En este módulo vamos a estar aprendiendo todo lo necesario para empezar a trabajar en Automation Testing como profesionales. Los pilares de la Programación Orientada a Objetos y cómo estos se relacionan con nuestro trabajo como Testers.
Este curso está orientado particularmente a Automation Testers, SDETs y Performance Testers para lograr un trabajo profesional y un mantenimiento óptimo en el código para el tester y el equipo que trabaje con él.
En esta primera sección vamos a definir qué es un lenguaje de programación y cómo lo usamos para instruir a un programa para que realice lo que deseamos.
En esta sección voy a contarles qué lenguajes son los más importantes y buscados por los empleadores en el mundo de Automation Testing y cuáles vamos a enfocar para conseguir trabajo, diferenciando entre grandes empresas y startups.
Objetos? Programación? Luego de esta clase vas a poder entender finalmente cómo es que la Programación Orientada a Objetos funciona y por qué es tan importante en el mercado actual del desarrollo de software.
Les gusta ocultar cosas? Conozcan al Encapsulamiento! Primer pilar de la Programación Orientada a Objetos. Qué es? Cómo se usa? Cómo se aplica realmente en Automation Testing? Ejemplos prácticos.
Nada mejor que heredar cosas para ahorrarnos trabajo. Pasa en la vida y pasa en Automation Testing! Qué es? Cómo funciona? Cómo se aplica realmente en Automation? Ejemplos prácticos.
A veces necesitamos generalizar... por suerte existe la abstracción! Qué es? Cómo funciona? Cómo se aplica realmente en Automation Testing? Ejemplos prácticos.
Es lindo generalizar para ahorrarnos tiempo, pero cuando hay que trabajar, necesitamos que las cosas tomen distintas formas! Esto nos trae al último pilar de la Programación Orientada a Objetos: El polimorfismo! Qué es? Cómo funciona? Cómo se aplica realmente en Automation Testing? Ejemplos prácticos.
Todo muy bello con los pilares de la Programación Orientada a Objetos pero... los usamos realmente en Automation? En este módulo van a aprender cuáles y de qué manera se usan!
En este módulo vamos a entender qué es una Clase en el mundo de la programación. Por qué está compuesta y vamos a tomar dos ejemplos muy sencillos de entender.
En la clase freerangetesterhomepage.py que encuentran adjunta, pueden ver cómo se ve una clase. En este caso, es una clase de Python, pero la convención es muy similar entre los diferentes lenguajes como verán en los otros cursos disponibles sobre Automation en Java, JavaScript y Python.
Pueden observar, que tiene una sección al comienzo donde se declaran los imports. Estos imports son librerías que vamos a estar usando en esta clase. Importamos piezas que vamos a utilizar en esta clase.
Luego, con la palabra reservada "class" vamos a definir el nombre de la clase, que es a elección nuestra (aunque siempre recomiendo que sea algo coherente con lo que hace la clase). En este caso verán que la clase se llama TheFreeRangeTesterHomePage.
En Python no hace falta abrir y cerrar el cuerpo de la clase, como vamos a ver que SI es el caso en lenguajes como Java (con {}) y JavaScript.
Finalmente pueden ver que hay atributos, como URL, NAVIGATION_BUTTON y POPUP_INICIO y métodos como "init", "load" "enable_navigation" y "close_popup".
Estamos definiendo ambos en esta clase. Recuerdan que les dije que en los atributos se definían en la instancia que se crea del objeto generalmente? Bueno, en Automation y particularmente el Page Object Model (ya lo veremos más adelante en el curso de Automation con Selenium) sucede algo diferente. Los atributos corresponden a los elementos en la página web y van a ser definidos en la misma clase, respondiendo al pilar del encapsulamiento.
Las clases están compuestas de Atributos y Métodos (también conocidos como Funciones), pero... qué son realmente? En este módulo lo definimos y damos ejemplos siguiendo con nuestra Clase Persona!
En esta clase vamos a ver en detalle y con ejemplos, los condicionales: If, elif, else y mucho más.
Otra de las herramientas que más vamos a usar de la programación en Automation Testing son los loops. Aprende sus fundamentos, cómo usarlos y qué hacen en esta clase!
Comenzamos con los Principios SOLID y el primero del que vamos a ocupar va a ser el Principio de Responsabilidad Única!
Otro de los principios SOLID, en este caso el de Open/Closed. Va a ser uno de los que más atención tengamos que poner a la hora de desarrollar y crear nuestras funciones!
La L en SOLID la pone el Principio de Sustitución de Liskov. En él, vamos a comprender cómo superclases y clases derivadas deberían poder intercambiar funciones sin romper.
Vamos que nos quedan solo dos principios! El principio de Segregación de Interfaces expande un poco lo propuesto por el principio de Responsabilidad Única.
El último principio: Inversión de Dependencias. No se preocupen si suena demasiado técnico, es para que sepan que estos principios existen y luego, en los cursos cuando les diga "se acuerdan cuando hablamos de este principio? Acá lo estamos usando!" sepan de dónde viene!
En esta sección vamos a aprender algo que, en mi opinión, es clave para empezar a trabajar en Automation y buscar trabajo: SCM. Pero...qué es?
En esta clase explico por qué es importante SCM y por qué ustedes, en sus roles de testers, deben aplicar esta forma de trabajar incluso cuando estén en equipos que no lo hacen.
Qué componentes encontramos en un repositorio remoto? Vamos a ver un pantallazo sobre ellos y sus fundamentos.
Qué son los branches en un repositorio? Por qué debemos usarlas?
Listo, entramos ya en el flujo de trabajo! Tenemos nuestros cambios hechos y necesitamos hacérselo saber al mundo... cómo se hace correctamente?
Nuestro equipo va a trabajar y modificar muchas cosas en el repositorio que trabajemos juntos... cómo obtener esos cambios?
Última clase para terminar con los conocimientos que vas a necesitar para los próximos cursos ya automatizando con distintas herramientas: Creación de branches.
Aprendé los fundamentos de programación que necesitás para empezar a estudiar automatización de pruebas. Este curso para testers conecta los conceptos de código, programación orientada a objetos y control de versiones con su aplicación en proyectos de Automation Testing.
Vas a empezar por qué es un lenguaje de programación y cómo se relaciona con el trabajo de automatización. Después vas a recorrer los cuatro pilares de la programación orientada a objetos: encapsulamiento, herencia, abstracción y polimorfismo, con ejemplos de su aplicación en testing.
El curso también trabaja sobre clases, métodos, tipos de datos, listas y diccionarios. Vas a conocer condicionales y loops para controlar la ejecución de un programa, además del manejo de errores con try/catch. Estas bases te ayudan a leer código y comprender la lógica detrás de una automatización.
Con los principios SOLID vas a explorar responsabilidad única, abierto/cerrado, sustitución de Liskov, segregación de interfaces e inversión de dependencias. El enfoque está en entender cómo estas ideas ayudan a separar componentes y organizar el código de un proyecto de pruebas.
También vas a conocer el control de versiones y el trabajo con repositorios: branches, fork, clone, add, commit, push, fetch, pull y checkout. Vas a relacionar estos conceptos con la colaboración en un equipo de automation.
La sección de Java incluye la estructura de un programa, variables, tipos de datos, operadores, control de flujo y arrays. Además, los cuestionarios te permiten repasar los conceptos de programación orientada a objetos, SOLID y control de versiones.
Este curso está pensado para testers y personas de QA que quieren construir una base antes de aprender herramientas de automatización que requieren código. Al terminar, vas a contar con fundamentos para continuar tu formación en automation y entender mejor la estructura de un repositorio de pruebas.