Quality Assurance (QA): O guia de estudos completo

Publicado por Atlas Technologies em

Computador com código, analise de Quality Assurance

O guia de estudos para Quality Assurance (QA) tem o objetivo de apresentar um caminho cheio de informações necessárias para todos(as) que possuem o interesse em ingressar na Atlas como Quality Assurance. Dessa forma, o guia é separado em uma lista de tópicos para auxiliar no desenvolvimento de diversas habilidades, com uma sequência de artigos e documentações das tecnologias apresentadas e utilizadas no Quality Assurance da Atlas.

Dos requisitos obrigatórios, podem ser destacados os conhecimento de: Conceitos de Teste, Git, SQL, BDD, Lógica de programação, noções sobre API, Docker, boa escrita e documentação e a habilidade de comunicação assíncrona;

Dos requisitos diferenciais, caso você souber aumenta suas chances: Conhecimento básico em Java, Javascript, POO (programação orientada a objetos), Selenium, Selenium Appium, Cypress, Teste de API (Postman | Insomnia), Metodologias ágeis (Scrum | Kanban), Conhecimento em JMeter e Conhecimento em Ferramentas CI/CD.

Os principais conceitos de Teste de Software para Quality Assurance saber:

  • Tipo de Teste
  • Plano de Teste
  • Caso de Teste
  • Cenário de Teste
  • Ambiente de Teste
  • Relatório de Teste
  • Defeito
  • Bug

Níveis do Teste:

  • Teste de Unidade
  • Teste de Integração
  • Teste de Sistema
  • Teste de Aceitação

Técnicas de Teste:

  • Teste de caixa branca
  • Teste de caixa preta
  • Testes manuais
  • Testes automatizados

Tipos de Teste:

  • Testes funcionais
  • Teste de desempenho
  • Teste de usabilidade
  • Teste de segurança
  • Teste de stress
  • Teste regressivo
  • Teste exploratório
  • Teste de integração
  • Teste unitário
  • Teste de aceitação
  • Teste de acessibilidade
  • Teste de fumaça
  • Teste de sanidade

Teste de API

Existem ferramentas para teste de API como por exemplo o Postman ou Insomnia.

Não sabe o que são API’s?
Elas são um conjunto de definições e protocolos usados no desenvolvimento e na integração de software e aplicações. Uma API permite a comunicação com produtos e serviços de forma mais fácil, sem necessariamente saber como foram implementados, tornando o desenvolvimento mais rápido. E com o auxílio dessas ferramentas é possível fazer diversas validações!

Teste de UI

O teste de interface do usuário (UI) serve para garantir que todos os itens de uma tela funcionem adequadamente, analisando a interação de um aplicativo, site ou programa com o usuário final. Além disso, também é importante verificar se todos os componentes da tela estão posicionados corretamente assim como quando foi criado pelo time de Design ou UI/UX, cada pixel importa!

Testes de Performance

Os testes que englobam o Teste de Performance são:

Teste de Carga

É utilizado para identificar o comportamento do sistema sob uma carga especificada. Como por exemplo identificar a quantidade de acessos simultâneos de usuário ou determinar a quantidade de transações por hora.

Teste Stress

É utilizado para analisar o comportamento do sistema sob uma carga extrema. O estresse no sistema pode abranger memória insuficiente, hardware e serviços indisponíveis ou recursos compartilhados limitados.

Teste de Volume

É utilizado para verificar a quantidade de dados que o sistema pode gerenciar, o objetivo deste teste é determinar a capacidade do sistema em lidar com o volume de dados especificado nos seus requisitos.

Teste de Pico

É utilizado para verificar o comportamento do sistema durante grandes picos repetidos de carga.

Teste de Resistência

É utilizado para analisar o comportamento do sistema sob uma carga de dados contínua durante um longo período de tempo. Também conhecido como “Teste de Longa Duração”.

Estratégia de Testes:

  • Escopo de Testes
  • Teste de Aceitação

Behavior-Driven Development

Aprenda sobre BDD ou “Desenvolvimento Orientado a Comportamento” (e lembre-se BDD não é Gherkin) além de quais são as vantagens de utilizá-lo. No Youtube tem diversos cursos gratuitos que abordam este tópico.

Aprenda sobre Gestão de Erros

Entenda a diferença entre Defeitos, Erros e Falhas:

Defeito é quando algo foi implementado de maneira incorreta e causa alguma inconsistência ou falha no software.
Erro é o resultado de um defeito que produz um resultado incorreto ou diferente do esperado.

Falha é o comportamento inesperado do software. Uma falha pode ocorrer por causa de um ou mais erros.
Aprofunde seus conhecimentos sobre Gestão de Erros, aprenda sobre custo dos bugs, reporte de bugs, classificação de bugs, por exemplo.

Comunicação

Aprenda como se expressar bem e ser compreendido. Pratique e escreva MUITO!
Quality Assurance trabalha demais com comunicação e documentação.

Faça muito uso de boas práticas de comunicação e da ética no trabalho!
Existem cursos interessantes sobre CNV (Comunicação Não Violenta), que ajudam bastante a compreender sobre comunicação.

Comunicar o Bug/Erro/Falha encontrado de forma neutra, sem criticar a pessoa que o criou, descrevendo o bug com clareza e objetividade é uma das premissas para uma boa comunicação dentro do ambiente de trabalho. Lembre-se, trabalhamos diariamente reportando erros, é importante termos empatia nesse momento do trabalho.

Também poderia dizer que a comunicação é grande parte do trabalho, e base de conhecimento para um QA. É de extrema importância sabermos nos comunicar tanto síncrona como assíncronamente! Basta jogar “comunicação síncrona” no google que você encontrará diversos conteúdos sobre o assunto.

Ainda, como Quality Assurance trabalhamos muito com documentações, então é muito importante sabermos nos expressar por texto, fazermos passo a passo do que precisa ser reportado, e sempre nos colocarmos no lugar de quem irá precisar entender o que está acontecendo pelo texto que descrevemos.

Terminal (Linux)

É bastante interessante conhecer onde vamos trabalhar!

Conheça e utilize o terminal, faça exercícios como abrir e criar pastas, entrar e sair de pastas, tudo utilizando apenas o terminal. Para aprofundar os conhecimentos, indicamos aprender sobre: Programas, processos e pacotes. No Youtube tem diversos cursos gratuitos que abordam este tópico.

Docker

Docker é um projeto que torna a criação e gerenciamento de containers muito mais fácil. Ele ajuda administradores a implementar e executar qualquer aplicativo em qualquer infraestrutura de forma rápida e confiável.

Aprenda mais sobre docker e como utilizá-lo.

Git e Github

Git e Github: Estratégias de ramificação, Conflitos e Pull Requests.

Git (versionamento de arquivos) tem vários comandos básicos que são utilizados no nosso dia-a-dia, alguns exemplos são:

Git fetch

Comando que informa seu git local que ele deve obter as informações de metadados mais recentes do repositório original (embora ainda não faça a transferência dos dados – é como verificar para ver se há mudanças disponíveis)

Git pull

Faz o que o git fetch faz, e também traz (copia) essas mudanças do repositório remoto.

Git checkout

Este comando faz a troca entre branches ou restaura arquivos da árvore de trabalho (git checkout NOME-DA-BRANCH)

 Git reset

Deseleciona o arquivo, mas preserva seu conteúdo.

Aprenda mais sobre comandos Git, e o uso do Github, que é uma plataforma para controlar e compartilhar o seu código.

github-git-cheat-sheet
git_commands

Lógica de programação

No Youtube você encontra diversos cursos gratuitos que abordam este tópico, para aprender você precisa:

  • Algoritmos
  • Lógica de programação
  • Muita prática!

Linguagens de programação

No Youtube tem diversos cursos gratuitos que abordam linguagem de programação, aqui atualmente estamos trabalhando com essas duas:

  • Java
  • Javascript

Selenium

O Selenium WebDriver é um framework web que permite executar testes entre navegadores. A ferramenta é utilizada para automatizar testes de aplicativo baseados na Web para verificar se o comportamento é o esperado. Aqui utilizamos o Selenium com a linguagem de programação Java.

Cypress

O Cypress é um framework de testes, de código aberto e de fácil configuração. Totalmente baseado em uma nova arquitetura, isenta de outros frameworks de testes, o Cypress apresenta um painel próprio que exibe exatamente o que está acontecendo durante a execução dos testes. Utilizamos o Cypress com a linguagem de programação JavaScript.

Apache JMeter

O JMeter é um software de código aberto, um aplicativo Java 100% puro projetado para carregar o comportamento funcional de teste e medir o desempenho. Ele foi originalmente projetado para testar aplicativos da Web, mas desde então se expandiu para outras funções de teste. Aqui estamos implementando para utilizar em testes de desempenho.

Fundamentos de UX

Entenda sobre a experiência do usuário. Você vai trabalhar diretamente envolvido em garantir a melhor experiência para o usuário. Então é muito importante conhecer alguns fundamentos de UX.

Chrome DevTools

O Chrome DevTools é um conjunto de ferramentas de desenvolvedor da Web criadas diretamente no navegador Google Chrome. Aprenda o DevTools do Chrome, com ele conseguimos analisar, inspecionar e depurar páginas Web com mais recursos e assertividade.

Lambda test

O LambdaTest é uma plataforma de teste entre navegadores baseada na nuvem, que ajuda nos testes de compatibilidade manual e do navegador. Os usuários podem realizar testes interativos ao vivo de seu site ou aplicativo da Internet em uma combinação de mais de 2 mil diferentes navegadores e sistemas operacionais, diretamente de seu próprio navegador.

O Lambda Test conta com o LT Browser, que é o navegador nativo do LambdaTest. Pode ser baixado um aplicativo para o computador e é possível realizar execuções direto no aplicativo baixado sem necessidade de browser externo.

Também é possível realizar testes visuais com ele.
Visual UI Testing, na dashboard do lambda, é o local onde temos vários recursos para testes simultâneos, ou seja, com essa ferramenta é possível testar diversos devices de uma só vez. No momento estamos usando o Responsive.

E é possível acompanhar os Logs, onde ficam as informações e prints de testes anteriores e “Issue Tracker”, local onde é armazenado informações de todos os bugs encontrados.

Com a versão demo é possível conhecer algumas funcionalidades e fazer alguns exercícios na plataforma.

LambdaTest

Gerenciador/monitoramento de Tarefas

Aqui na empresa utilizamos o Jira. É bastante fácil achar conteúdos sobre ele no Youtube de forma gratuita.

Metodologias Ágeis

Trabalhamos, como citado anteriormente, com o Jira, utilizando Scrum e Kanban. É muito fácil achar diversos conteúdos gratuitos em diversos canais e até mesmo cursos sobre metodologias ágeis na internet.


Gostou do nosso guia de estudos para Quality Assurance(QA)? Se você sente confiança e tem domínio da maior parte das tecnologias e práticas vem se juntar ao time Atlas, vagas abertas em nosso site.

Confira nossos outros guias para Desenvolvedor Back-End e Desenvolvedor Front-End.


4 comentários

Maria Karoline · 22/08/2022 às 12:55

Me interessei na área de QA faz pouco tempo e estou pesquisando bastante sobre o assunto. Ainda não iniciei um estudo por falta de direcionamento, mas com essas informações ficou mais fácil saber para onde ir!
Muito obrigada e eu espero um dia, trabalhar com vocês <3

    Atlas Technologies · 23/08/2022 às 10:40

    Que legal, Maria!! Esse é o caminho certo e logo esperamos que esteja com a gente também! 💜🚀

Gustavo Lino · 09/04/2023 às 21:55

Entrei de cabeça nessa, estou 100% focado em trabalhar nessa empresa, já estou estudando a um tempo, mas não tive coragem ainda de me candidatar, acho que ainda não estou pronto para uma entrevista técnica, mas logo estarei aí.

Lucia Freitas · 24/04/2023 às 11:05

Um guia excelente!!!! Obrigado por compartilhar. Estou estudando tudo!

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *