Evolução na profissão
- Como foi a evolução (acadêmica e profissional) até chegar na sua posição atual?
Formado em Técnico em TI, cursei dois semestres de Licenciatura em Computação, transferido para SI na UFU em 2020, atualmente no segundo semestre.
- Quais foram as principais formações (certificação, especialização, curso, etc) extra-curriculares?
Tive a oportunidade de fazer um curso fornecido pela própria Everis, no qual os que se destacassem seriam contratados. Neste curso eles ensinam o básico da profissão e você entra como júnior. Hoje estou estudando para tirar a certificação CPFL e me aprofundando em cursos como Scrum, Agile e automação de testes.
Descrição da atividade atual
- O que efetivamente faz o profissional na sua condição?
Tudo o que acontece de problema no sistema é passado para os desenvolvedores corrigirem, e estes, por sua vez, repassam pra gente poder testar para ver se tudo está funcionando da maneira que deveria.
- O que entrega como resultado?
A gente trabalha muito com o sistema Agile. Tudo o que a gente precisa fazer é colocado em um quadro kambam. A gente faz os teste e tira os prints de todo o processo e entrega em um quality center (atualmente, usamos o HP ALM).
Requisitos mínimos para exercer a profissão
- Cite alguns soft skills necessários para quem tem intenção de seguir essa carreira?
Pensamento analítico, criatividade, observação e aprendizado contínuo.
- Sugira alguns hard skills.
Conhecimento do processo de desenvolvimento do software.
Ferramentas usadas no dia-a-dia
- Cite algumas ferramentas, tecnologias ou metodologias das quais depende para sucesso nas atividades.
A principal ferramenta usada no dia-a-dia é o Lightshot. A metodologia que eu sigo atualmente é o step-by-step, na qual se escreve todos os passos que precisa fazer para testar. Cada passo, cada click, você tira o print e registra no Quality Center. A tecnologia depende da empresa, a gente usa o Quality Center da HP, que é o ALM.
Tecnologias envolvidas
- Automação de Testes (Selenium)
Prazo: 13/05
A automação de testes existe para, através de ferramentas e estratégias, reduzir ao máximo o envolvimento humano em atividades manuais repetitivas, como o cadastro de um cliente ou o login/logout em uma aplicação. O principal objetivo de um teste automatizado é ser usado futuramente em testes de regressão. Esse termo, por sua vez, é usado para quando precisamos efetuar ciclos de re-teste de uma ou várias funcionalidades, com a intenção de identificar problemas ou defeitos introduzidos pela adição de novas funcionalidades ou pela correção de alguma já existente.
Levando em consideração um exemplo real, quando um projeto de software não utiliza testes automatizados em sua concepção, sempre que uma alteração acontece em determinada tela ou módulo, um novo ciclo de testes manuais precisa ser refeito e, assim, sucessivamente até que o projeto esteja terminado. O problema aumenta mais ainda quando o projeto não tem fim e exige manutenção constante, implicando consequentemente em mais custos com uma equipe de teste e possivelmente em entregas sem qualidade, já que não houve tempo o suficiente para testar e re-testar tudo.
Em contrapartida, a utilização de testes automatizados acelera os ciclos do software, uma vez que o teste passa a ser executado por outro software inteligente, que acessa as telas e reexecuta os mesmos testes nos dando relatórios rápidos do que deixou de funcionar. Além disso, estamos menos suscetíveis a erros, já que a máquina nunca erra, ao contrário de termos humanos testando.
Para nos auxiliar, existem as ferramentas de automação, que simulam a interação que um usuário teria, realizando os testes automaticamente quantas vezes forem necessárias. Uma dessas ferramentas é o Selenium. Selenium é um conjunto de ferramentas de código aberto multiplataforma, usado para testar aplicações web pelo browser de forma automatizada. Ele executa testes de funcionalidades da aplicação web e testes de compatibilidade entre browser e plataformas diferentes. O Selenium suporta diversas linguagens de programação, como por exemplo C#, Java e Python, e vários navegadores web como o Chrome e o Firefox. O ecossistema do Selenium é bem completo, sendo:
Selenium IDE: é um ambiente integrado de desenvolvimento para scripts de testes automatizados, onde permite o usuário criar testes de forma muito rápida. Essa ferramenta te permite gravar os scripts, funcionando como um recorder, gravando as ações do usuário. Esse script gerado você pode parametrizar e executar quantas vezes você quiser. O Selenium IDE inclui o Selenium Core, permitindo que você facilmente possa gravar e reproduzir os testes no ambiente real que será executado. O IDE é voltado para testes rápidos, com rápidos feedbacks. É importante ressaltar que o Selenium IDE funcionava até a versão 55 do Firefox – e somente no Firefox. Porém, em 2018 eles voltaram com o projeto, ainda em “alpha”, mas agora disponível para Firefox e Chrome.
Selenium WebDriver: usa o próprio driver do navegador para a automação. É a forma mais moderna de interação atualmente, pois cada browser possui o seu respectivo driver, permitindo a interação entre o script de teste e o respectivo browser. Esta versão é indicada para testes mais elaborados e por usuários familiarizados com a ferramenta. Geralmente usa-se o Selenium IDE para testes básicos, exporta-se o script e depois edita-se o script para realizar testes mais elaborados.
Selenium Grid: no Selenium Grid, você lança seu script sobre diferentes navegadores. O Grid é voltado para clusterização, permitindo você realizar os testes em máquinas diferentes de forma remota. Segundo o site oficial do Selenium, o Selenium Grid leva o WebDriver a outro nível, executando testes em muitas máquinas ao mesmo tempo, reduzindo o tempo necessário para testar em vários navegadores e sistemas operacionais. Utilizando o Selenium Grid você ganha na escala, onde executamos o mesmo teste em centenas de configurações diferentes.
Ética profissional
- Pode dar algum exemplo já vivido por você ou por alguma outra pessoa sobre aspectos éticos na profissão, seja positivo ou negativo?
Quando um desenvolvedor passa um requisito pra gente, o arquiteto de testes estima o ponto de esforço. Certa vez, chegou um requisito e eu peguei para testar. O desenvolvedor queria que eu upasse um arquivo no ambiente, inicialmente uma tarefa simples. Eu não tinha acesso ao ambiente, mas fiz uma solicitação para o pessoal de ambientes para eles colocarem o arquivo no diretório necessário. Após o upload do arquivo, o desenvolver queria que eu fizesse o upload de um segundo arquivo, juntando ele com o primeiro. O primeiro arquivo possuia cerca de 100 linhas e o segundo, 32.500 linhas. O processo não é simplesmente copiar e colar, eu deveria copiar linha por linha e inserir outas informações em cada uma. O desenvolvedor queria que eu fizesse isso tudo manualmente. Eu entrei em contato com meu arquiteto, pois trabalhando 8 horas por dia direto, sem parar pra comer, eu levaria uns 3 dias pra fazer aquilo, o que teoricamente era pra ser apenas um ponto de teste. Meu arquiteto disse para não fazer isso, pois aquilo não estava estimado na carga de esforço do projeto. Esse problema se estendeu por mais 3 sprints, sempre sendo postergado essa atualização do sistema porque o desenvolvedor e os analistas de testes(no caso eu e meu arquiteto) não chegamos a um acordo. O desenvolvedor falava que estava certo, que aquilo era trabalho do tester, quando na verdade no caderno de testes que ele passou pra gente só pedia para entrar no sistema e executar um serviço. Ele não detahou bem o que deveria ser feito e achava que estava certo o tempo todo. A maioria dos desenvolvedores são super de boa e aceitam o erro no código deles, mas esse em questão, foi complicado lidar com ele.
Upload da apresentação
- Tem apresentação? Faça o upload aqui.
Dúvidas
- Dependendo da área de atuação o QA não toma contato com código ou esse foi o seu caso específico?
- QA de testes manuais muito raramente vai ter contato com qualquer tipo de programação, embora seja importante ter algum conhecimento de banco de dados e front, já a área de automação tem mais conhecimentos de códigos necessários para automatizar os testes.
- Você chegou a estudar sobre UI/UX?
- Não é necessário o conhecimento da área embora dependendo do projeto em que trabalha, como implementação de um sistema novo, é até bom ter a percepção do usuário do sistema.
- Como funciona o Selenuum IDE?
- O Selenium atua na gravação de testes executados gerando um script no qual é possível verificar passo a passo do que foi feito e re-executar alguma ação, tudo isso por meio de uma linguagem de programação.
- Como foi o processo para ter a vaga de QA na Everis?
- O primeiro passo foi na inscrição na qual disponibilizaram um formulário, onde você preenchia informações pessoais, como formação, contato e até mesmo anexava o currículo, onde os selecionados foram chamados para uma pequena entrevista e a realização de uma prova de Português, matemática e logica, e a terceira foi a seleção para um pequeno curso, onde quem se destacasse durante as aulas seriam selecionados para a contratação.
- Como funciona a prioridade dos projetos a serem testados ?
- Geralmente trabalhamos em sprints, isto é, um ciclo de geralmente um mês para que seja testado tudo que seja atualização que entram nesse meio tempo, mas em casos a parte, as vezes ocorre o pedido de prioridade em algum requisito mais escalado no qual passamos na frente dos outros na fila para e entrega mais urgente o possível.