JavaRush /Blogue Java /Random-PT /Como começar com testes automatizados, parte 1

Como começar com testes automatizados, parte 1

Publicado no grupo Random-PT
Convidamos você a ler a adaptação russa de um artigo de Tim Ebie, fundador da https://testdemy.teachable.com/ , plataforma de QA para testes de software online, criada para ajudar quem está iniciando sua jornada em testes automatizados
Como começar com testes automatizados, parte 1 - 1
Estamos vendo um aumento no interesse e no crescimento do número de aplicações web no mercado. Com eles vêm cada vez mais empregos que exigem programação, habilidades técnicas e diversas habilidades de automação. Como resultado, os testadores manuais, para continuarem sendo procurados, veem a necessidade de mudar dos testes puramente manuais para a garantia de qualidade (QA) e estão buscando testes automatizados. Mudar de testes manuais para testes automatizados é uma escolha inteligente, já que muitos cargos de controle de qualidade exigem uma série de habilidades técnicas relacionadas à escrita de código. Para quem não gosta de mudanças, tal mudança pode ser desconfortável. Outros desenvolvedores, por outro lado, veem este “momento de mudança” como uma oportunidade para levar suas carreiras e habilidades para o próximo nível e aumentar sua relevância. Cada vez que as exigências aumentam, as possibilidades aumentam. Desenvolvedores com o conjunto de habilidades certo podem embarcar no trem e ter carreiras excelentes e bem remuneradas. Se você deseja passar de testes manuais para automação, ou mesmo considerando mudar de outro campo de desenvolvimento de software, faz sentido seguir algumas etapas para ajudá-lo a ter sucesso.

Etapa 1: Avaliação de Mercado

O “hábito número dois” do livro “7 hábitos de pessoas altamente eficazes” do Dr. Stephen A. Covey diz : “Comece com o fim em mente”. Acredito que esse princípio seja verdadeiro quando se trata de iniciar testes automatizados. Comece com uma avaliação de mercado das necessidades de quem contrata engenheiros de automação. Depois de compreender as necessidades técnicas dos empregadores, você poderá adquirir as habilidades apropriadas. Um bom lugar para começar é consultar as descrições de cargos em qualquer site (por exemplo, Even.com , Dice , Monster , LinkedIn , etc.).
Como começar com testes automatizados, parte 1 - 2
Aqui estão alguns exemplos de palavras de pesquisa que podem ser usadas para gerar uma avaliação de mercado:
  • Engenheiro de Automação de Testes;
  • Desenvolvedor de Automação;
  • teste/testador automatizado (teste automatizado) (Teste de Automação/Testador de Automação);
  • Engenheiro de automação de controle de qualidade ;
  • Engenheiro de Desenvolvimento de Software em Teste (SDET).
Para entender como os empregadores pensam e o que eles realmente esperam dos candidatos, tenha em mente as seguintes perguntas ao pesquisar:
  • Que habilidades e tecnologias específicas eles estão mencionando?
  • Você vê um conjunto ou “bloco” separado de habilidades ou tecnologias para essas habilidades?
  • Quantos anos de experiência são necessários, se houver?
  • Existem determinados setores que tendem a contratar mais engenheiros de automação do que outros?
  • Que salário você pode esperar?
  • As ferramentas ou tecnologias nas quais estamos interessados ​​são principalmente de acesso aberto ou produtos comerciais?
Agora vamos dar uma olhada em algumas descrições de cargos para ter uma ideia do que o mercado está procurando. Lembre-se de que os empregos em questão estão localizados nos Estados Unidos. Se você não mora nos Estados Unidos, consulte as ferramentas de busca de emprego em seu país. Desenvolvedor de Automação de Software I:
  • tem uma compreensão clara de linguagens de programação orientadas a objetos ;
  • familiarizado com Jenkins , Test Complete, VersionOne, Git, Visual Studio, Oracle, MSSQL, Hyper-V, AQTime;
  • Trabalha em estreita colaboração com desenvolvedores, analistas de negócios e outros testadores para identificar componentes de automação de testes que serão usados ​​para verificar os requisitos do software desenvolvido.
Como começar com testes automatizados, parte 1 a 3
Testador de controle de qualidade (teste automatizado):
  • salva testes automatizados nos sistemas de controle de versão apropriados - TFS, GitHub , etc.;
  • segue padrões de automação predefinidos e padrões DevOps para automação, bem como processos contínuos de integração e implantação;
  • Experiência com ferramentas ALM (TFS, Jira, HP QC) e ferramentas de automação de testes (preferencialmente Selenium WebDriver) .
Engenheiro de Automação de Garantia de Qualidade - QA ( Engenheiro de Automação de Garantia de Qualidade ):
  • Experiência com Selenium WebDriver ;
  • habilidades de programação em Python, Java ou linguagens similares;
  • experiência de teste móvel / Appium .
Desenvolvedor de software de teste:
  • atualização e ampliação do ambiente de testes e ferramentas de testes em C#, TypeScript, JavaScript ...;
  • Fortes habilidades de programação em C# ou Java e/ou JavaScript , juntamente com uma compreensão clara dos conceitos de programação orientada a objetos ;
  • Experiência com Visual Studio, Subversion, GitHub, Unity, Teamcity, Jira Cloud, Confluence.
Como começar com testes automatizados, parte 1 a 4
Aqui estão algumas conclusões importantes dessas descrições de cargos. Funções híbridas/combinadas: preste muita atenção aos cargos e como essas empresas veem os testes automatizados de software. Isso pode ser visto pelos nomes das funções listadas (desenvolvedor de automação de software, desenvolvedor de software em teste, etc. Notou um padrão? Essas empresas referem-se mais ou menos aos engenheiros de controle de qualidade como desenvolvedores Software: para testadores manuais, isso significa que é hora de aprenda como escrever código para transformar casos de teste manuais em scripts de teste automatizados. Para desenvolvedores que desejam migrar para testes automatizados, isso significa que você deve aprender mais sobre metodologias de teste de software, testar software de ciclo de vida e aprender como construir casos de teste automatizados para dar suporte esses ciclos de vida.Não perca essa mudança crítica ou você ficará para trás.Com o surgimento das metodologias ágeis e dos projetos baseados em Ágil, cada vez mais organizações estão misturando controle de qualidade e desenvolvedores em um só. Então, é hora de você se preparar para seu novas responsabilidades.Indivíduos que possuem treinamento básico no mundo dos testes de software e ao mesmo tempo possuem um bom entendimento das habilidades de um desenvolvedor de software valem seu peso em ouro. Tecnologias/linguagens de programação de código aberto: observe as tecnologias e linguagens de programação destacadas em negrito nas descrições . Essas tecnologias e linguagens são direcionadas, você precisa aprendê-las para ter demanda no mercado. Escolha uma tecnologia de alta demanda e comece a desenvolver seu conjunto de habilidades praticando-as e participando de aplicativos e projetos práticos do mundo real. Isso irá acelerar seu aprendizado. Se você não tiver certeza com qual linguagem de programação começar , vamos restringir um pouco o campo.

Etapa 2: dominar uma linguagem de programação orientada a objetos (OOP)

Sejamos realistas: a maioria dos testadores manuais tem medo de programar. A simples ideia de entrar nos bastidores e ver como os sistemas e aplicativos realmente funcionam assusta muitos testadores manuais. Esse medo é principalmente a razão pela qual eles se tornaram testadores manuais.
Como começar com testes automatizados, parte 1 a 5
A programação é a base dos testes automatizados. Se você deseja entrar em testes de automação, precisa ser capaz de codificar e, quanto melhor você for em programação, mais sucesso terá em testes ou desenvolvimento de automação. Portanto, se você deseja permanecer competitivo neste mundo de desenvolvimento e tecnologia em constante mudança, você deve decidir vencer esse medo e se tornar um desenvolvedor de testes automatizados requisitado. O bom é que com o mínimo de orientação de um colega mais experiente, aplicando persistência e perseverança, praticando constantemente (como fazemos no JavaRush), você pode definitivamente melhorar suas habilidades de programação. A próxima questão lógica é: que linguagem de programação devo aprender? Com base na nossa avaliação de mercado, sabemos que os empregadores querem contratar pessoas “com um forte conhecimento de linguagens de programação orientadas a objetos”. E de acordo com nossa análise, podemos ver diversas linguagens de programação orientadas a objetos às quais eles se referem. Por exemplo, Java, C#, JavaScript e Python. Você pode começar com qualquer um deles. Se você está começando a aprender uma linguagem OOP, aqui estão alguns conceitos para se familiarizar melhor com testes automatizados:
  • programação orientada a objetos (classes, objetos, instâncias, herança, atributos, etc.);
  • Módulos, Bibliotecas Padrão (em qualquer idioma que você escolher);
  • estruturas de dados (dicionários, listas, tuplas, etc.);
  • tipos de dados (strings, caracteres, inteiros, ponto flutuante, tipos lógicos ou booleanos, NoneType, etc.);
  • variáveis;
  • tratamento de erros/exceções;
  • operadores aritméticos/ordem de precedência;
  • comparação, operadores booleanos lógicos;
  • procedimentos/funções/métodos;
  • fluxo de controle: instruções If, loops for, loops while, etc.
  • ler/gravar em arquivos;
A programação é a base dos testes automatizados. Aprenda a programar e você aprenderá a automatizar.

Etapa 3: Dominar as ferramentas de automação

Continuo dizendo o seguinte: quanto melhor você programar, melhor poderá automatizar. Depois de começar a aprender uma linguagem de programação, o próximo passo é aprender como usar ferramentas de automação. Porque a maioria das empresas está optando por ferramentas de automação de código aberto (ou software livre) em vez de produtos comerciais licenciados por razões de custo.
Como começar com testes automatizados, parte 1 a 6
Uma excelente ferramenta que pode ser encontrada em domínio público é o Selenium WebDriver. O Selenium possui diversas linguagens de programação (Python, Java, C#, Ruby, PHP, JavaScript, etc.), portanto, aprender uma dessas linguagens de programação fornecerá uma excelente base para construir uma carreira sólida em automação. Alguns conceitos-chave que você precisa dominar para construir casos de teste automatizados confiáveis, funcionais e eficientes:
  • padrões de design: modelo de objeto de página;
  • busca de elementos de páginas web utilizando diferentes localizadores (Seletor CSS, XPATH, ID, Nome, etc.);
  • alternar Windows/iFrames;
  • reestruturação;
  • testes unitários;
  • testes em nuvem/testes paralelos;
  • verificação de dados;
  • testes em diferentes navegadores (Firefox, Internet Explorer, Chrome, Safari, Opera, etc.);
  • expectativas implícitas e explícitas;
  • cadeias de ações
Se você escolheu uma linguagem de programação orientada a objetos e confiou em ferramentas de automação para avaliar o mercado, o próximo passo lógico é... O que você acha?...

Etapa 4: Pratique, Pratique, Pratique

Faça o que fizer, nunca desista. Aprender algo novo é sempre um desafio. Mas todo desafio pode ser superado com bastante prática e dedicação. Quanto tempo leva para aprender novas habilidades e tecnologias depende inteiramente de você e de quanta prática e dedicação você coloca para dominar essas habilidades.
Como começar com testes automatizados, parte 1 a 7
Qualquer atleta profissional dirá que atingiu o ápice de sua jornada através do trabalho e do esforço de seu treinamento. Dizem que Michael Jordan jogou muito, mas treinou ainda mais. Esta abordagem deve ser adotada por qualquer pessoa que queira automatizar – praticar, praticar, praticar suas novas habilidades até que elas se tornem uma segunda natureza. Esta é a única maneira de melhorar suas habilidades e ser requisitado como testador. Uma das boas formas de treinar é aprender ativamente uma linguagem de programação e ferramentas de automação ao mesmo tempo, “brincando” com elas. Em outras palavras, escreva pequenos programas ou scripts de testes automatizados, quebre-os, altere-os e veja como funciona agora. Aprenda com o que você fez e tente novamente. Pratique brincando, fazendo e aprendendo. Faça isso e sua curva de aprendizado aumentará.

Hora de começar

O mais importante em um novo negócio é começar. Todas as vezes que procrastinamos ou não conseguimos começar, é porque não temos um roteiro ou plano de jogo para ajudar a traçar nosso curso.
Como começar com testes automatizados, parte 1 a 8
Embora tentar mudar radicalmente a direção de sua carreira possa parecer assustador, ser valorizado e comercializável é essencial. Você precisa desenvolver novas habilidades para se manter atualizado no mundo em constante mudança do desenvolvimento de software e ser o que os empregadores realmente procuram. Comece aos poucos: avalie os requisitos do mercado, aprenda ferramentas de programação e automação orientadas a objetos e pratique constantemente. E você estará preparado para novas oportunidades de emprego antes que perceba. Fonte: https://simpleprogrammer.com/2017/07/28/start-automation-testing-part-1/
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION