Te invitamos a leer la adaptación rusa de un artículo de Tim Ebie, fundador de https://testdemy.teachable.com/ , una plataforma de control de calidad para pruebas de software en línea, creada para ayudar a quienes están iniciando su viaje en las pruebas automatizadas.
Estamos viendo un aumento en el interés y un crecimiento en la cantidad de aplicaciones web en el mercado. Con ellos vienen cada vez más trabajos que requieren programación, habilidades técnicas y diversas habilidades de automatización. Como resultado, los evaluadores manuales, para mantener la demanda, ven la necesidad de pasar de las pruebas manuales puras al control de calidad (QA) y están considerando pruebas automatizadas. Cambiar de pruebas manuales a automatizadas es una opción inteligente, ya que muchos puestos de control de calidad requieren una variedad de habilidades técnicas relacionadas con la escritura de código. Para aquellos a quienes no les gusta el cambio, éste puede resultar incómodo. Otros desarrolladores, por otro lado, ven este “tiempo de cambio” como una oportunidad para llevar sus carreras y habilidades al siguiente nivel y aumentar su relevancia. Cada vez que aumentan las exigencias, se amplían las posibilidades. Los desarrolladores con las habilidades adecuadas pueden subirse al tren y tener carreras excelentes y bien remuneradas. Si está buscando pasar de las pruebas manuales a la automatización, o incluso está considerando pasar de otro campo de desarrollo de software, tiene sentido seguir algunos pasos que lo ayudarán a tener éxito.
A continuación se muestran ejemplos de palabras de búsqueda que se pueden utilizar para generar una valoración de mercado:
Probador de control de calidad (pruebas automatizadas):
A continuación se presentan algunas conclusiones clave de estas descripciones de puestos. Roles híbridos/combinados: preste mucha atención a los títulos de los puestos y a cómo estas empresas ven las pruebas de software automatizadas. Esto se puede ver por los nombres de los roles que enumeran (Desarrollador de automatización de software, Desarrollador de software en pruebas, etc. ¿Nota un patrón? Estas empresas se refieren más o menos a los ingenieros de control de calidad como desarrolladores de software: para los evaluadores manuales, esto significa que es hora de aprenda a escribir código para convertir casos de prueba manuales en scripts de prueba automatizados. Para los desarrolladores que buscan pasar a las pruebas automatizadas, esto significa que deben aprender más sobre las metodologías de prueba de software, el ciclo de vida de las pruebas del software y aprender a crear casos de prueba automatizados para respaldar estos ciclos de vida. No se pierda este cambio crítico o se quedará atrás. Con el auge de las metodologías ágiles y los proyectos basados en Agile, cada vez más organizaciones están mezclando el control de calidad y los desarrolladores en uno solo. Así que es hora de que se prepare para su nuevas responsabilidades. Las personas que tienen una formación básica en el mundo de las pruebas de software y al mismo tiempo tienen un buen conocimiento de las habilidades de un desarrollador de software valen su peso en oro. Tecnologías de código abierto/lenguajes de programación: tenga en cuenta las tecnologías y lenguajes de programación resaltados en negrita en las descripciones . Estas tecnologías y lenguajes están dirigidos a ellos, es necesario aprenderlos para tener demanda en el mercado. Elija una tecnología de alta demanda y comience a desarrollar su conjunto de habilidades practicándolas y participando en aplicaciones y proyectos prácticos del mundo real. Esto acelerará tu aprendizaje. Si no está seguro de con qué lenguaje de programación empezar , reduzcamos un poco el campo.
La programación es la base de las pruebas automatizadas. Si desea dedicarse a las pruebas de automatización, debe poder codificar, y cuanto mejor sea en programación, más éxito tendrá en las pruebas de automatización o en el desarrollo de la automatización. Por lo tanto, si desea seguir siendo competitivo en este mundo de desarrollo y tecnología en constante cambio, debe decidir vencer este miedo y convertirse en un desarrollador de pruebas automatizadas muy solicitado. Lo bueno es que con una mínima orientación de un colega más experimentado, aplicando perseverancia y perseverancia, practicando constantemente (como lo hacemos en JavaRush), definitivamente puedes mejorar tus habilidades de programación. La siguiente pregunta lógica es: ¿qué lenguaje de programación debo aprender? Según nuestra evaluación del mercado, sabemos que los empleadores quieren contratar personas "con un sólido conocimiento de los lenguajes de programación orientados a objetos". Y según nuestro análisis, podemos ver varios lenguajes de programación orientados a objetos a los que hacen referencia. Por ejemplo, Java, C#, JavaScript y Python. Puedes empezar con cualquiera de ellos. Si está comenzando a aprender un lenguaje de programación orientada a objetos, aquí hay algunos conceptos que debe dominar para familiarizarse mejor con las pruebas automatizadas:
Una excelente herramienta que se puede encontrar en el dominio público es Selenium WebDriver. Selenium tiene varios enlaces de lenguaje (Python, Java, C#, Ruby, PHP, JavaScript, etc.), por lo que aprender uno de estos lenguajes de programación proporcionará una base excelente para construir una carrera sólida en automatización. Algunos conceptos clave que debe dominar para crear casos de prueba automatizados confiables, funcionales y eficientes:
Cualquier deportista profesional dirá que ha llegado a la cima de su camino gracias al trabajo y esfuerzo de su entrenamiento. Dicen que Michael Jordan jugó duro, pero entrenó aún más duro. Este enfoque debería ser adoptado por cualquiera que busque automatizar: practique, practique y practique sus nuevas habilidades hasta que se conviertan en algo natural. Ésta es la única manera de mejorar sus habilidades y tener una gran demanda como evaluador. Una de las buenas formas de formarse es aprender activamente un lenguaje de programación y herramientas de automatización al mismo tiempo, “jugando” con ellos. En otras palabras, escriba pequeños programas o scripts de prueba automatizados, descompóngalos, cámbielos y vea cómo funciona ahora. Aprenda de lo que ha hecho y vuelva a intentarlo. Practica jugando, haciendo y aprendiendo. Haga esto y su curva de aprendizaje aumentará.
Si bien intentar cambiar radicalmente la dirección de su carrera puede parecer desalentador, ser valorado y comercializable es esencial. Necesita desarrollar nuevas habilidades para mantenerse en la cima del siempre cambiante mundo del desarrollo de software y ser lo que los empleadores realmente buscan. Empiece poco a poco: evalúe los requisitos del mercado, aprenda herramientas de automatización y programación orientada a objetos y practique constantemente. Y estará preparado para nuevas oportunidades laborales antes de que se dé cuenta. Fuente: https://simpleprogrammer.com/2017/07/28/start-automation-testing-part-1/
Paso 1: Evaluación del mercado
El “hábito número dos” del libro del Dr. Stephen A. Covey “Los 7 hábitos de las personas altamente efectivas” dice : “Comience con el fin en mente”. Creo que este principio es cierto cuando se trata de iniciarse en las pruebas automatizadas. Comience con una evaluación de mercado de las necesidades de quienes contratan ingenieros de automatización. Una vez que comprenda las necesidades técnicas de los empleadores, podrá adquirir las habilidades adecuadas. Un buen punto de partida es consultar las descripciones de puestos de trabajo en cualquier sitio (por ejemplo, Indeed.com , Dice , Monster , LinkedIn , etc.).- Ingeniero de Automatización de Pruebas;
- Desarrollador de Automatización;
- pruebas/probador automatizado (pruebas automatizadas) (Pruebas de automatización/Probador de automatización);
- Ingeniero de Automatización de Calidad ;
- Ingeniero de Desarrollo de Software en Pruebas (SDET).
- ¿Qué habilidades y tecnologías específicas están mencionando?
- ¿Ves un conjunto o “bloque” separado de habilidades o tecnologías para estas habilidades?
- ¿Cuántos años de experiencia se requieren, si corresponde?
- ¿Existen determinadas industrias que tienden a contratar más ingenieros de automatización que otras?
- ¿Qué salario puedes esperar?
- ¿Las herramientas o tecnologías que nos interesan son principalmente de acceso abierto o productos comerciales?
- tiene un conocimiento claro de los lenguajes de programación orientados a objetos ;
- familiarizado con Jenkins , Test Complete, VersionOne, Git, Visual Studio, Oracle, MSSQL, Hyper-V, AQTime;
- Trabaja en estrecha colaboración con desarrolladores, analistas de negocios y otros evaluadores para identificar componentes de automatización de pruebas que se utilizarán para verificar los requisitos del software desarrollado.
- guarda pruebas automatizadas en los sistemas de control de versiones apropiados: TFS, GitHub , etc.;
- sigue estándares de automatización predefinidos y estándares DevOps para la automatización, así como procesos continuos de integración e implementación;
- Experiencia con herramientas ALM (TFS, Jira, HP QC) y herramientas de automatización de pruebas (preferiblemente Selenium WebDriver) .
- Experiencia con Selenium WebDriver ;
- habilidades de programación en Python, Java o lenguajes similares;
- Experiencia de pruebas móviles/ Appium .
- actualizar y ampliar el entorno de prueba y las herramientas de prueba en C#, TypeScript, JavaScript ...;
- Fuertes habilidades de programación en C# o Java y/o JavaScript junto con una comprensión clara de los conceptos de programación orientada a objetos ;
- Experiencia con Visual Studio, Subversion, GitHub, Unity, Teamcity, Jira Cloud, Confluence.
Paso 2: dominar un lenguaje de programación orientado a objetos (POO)
Seamos realistas: la mayoría de los evaluadores manuales tienen miedo de programar. La sola idea de meterse bajo el capó y ver cómo funcionan realmente los sistemas y aplicaciones asusta a muchos evaluadores manuales. Este miedo es principalmente la razón por la que se convirtieron en probadores manuales.- programación orientada a objetos (clases, objetos, instancias, herencia, atributos, etc.);
- Módulos, Bibliotecas estándar (en el idioma que elija);
- estructuras de datos (diccionarios, listas, tuplas, etc.);
- tipos de datos (cadenas, caracteres, números enteros, coma flotante, tipos lógicos o booleanos, NoneType, etc.);
- variables;
- manejo de errores/excepciones;
- operadores aritméticos/orden de precedencia;
- comparación, operadores booleanos lógicos;
- procedimientos/funciones/métodos;
- Flujo de control: declaraciones If, bucles for, bucles while, etc.
- leer/escribir en archivos;
Paso 3: Dominar las herramientas de automatización
Sigo diciendo esto: cuanto mejor puedas programar, mejor podrás automatizar. Una vez que haya comenzado a aprender un lenguaje de programación, el siguiente paso es aprender a utilizar herramientas de automatización. Porque la mayoría de las empresas se inclinan por herramientas de automatización de código abierto (o software gratuito) en lugar de productos comerciales con licencia por razones de costos.- patrones de diseño: modelo de objetos de página;
- buscar elementos de la página web utilizando diferentes localizadores (Selector CSS, XPATH, ID, Nombre, etc.);
- cambiar Windows/iFrames;
- refactorización;
- examen de la unidad;
- pruebas en la nube/pruebas paralelas;
- verificación de datos;
- pruebas en diferentes navegadores web (Firefox, Internet Explorer, Chrome, Safari, Opera, etc.);
- expectativas implícitas y explícitas;
- cadenas de acciones
GO TO FULL VERSION