Mostrando postagens com marcador QA. Mostrar todas as postagens
Mostrando postagens com marcador QA. Mostrar todas as postagens

Carreira em testes de software: como iniciar?


Olá Pessoal,


Esses dias eu recebi um e-mail, pelo formulário de contatos aqui do blog, e decidi escrever um post sobre o assunto pois obviamente fiquei animada 😃😃😃. A pessoa me perguntou como fazia para iniciar a carreira na área de testes, deu uma breve descrição sobre sua formação e trabalho e perguntou se era isso mesmo. 

Show né? Vou tentar explicar para vocês. Vamos do início então:

Que formação devo ter para iniciar a carreira de testes?

Conheço várias pessoas com faculdade e sem faculdade trabalhando nessa área de testes de software. Existe um caminho único? Claro que não! 
As faculdades das áreas de tecnologia/informática são as mais comuns. Os testadores com formação em TI são conhecidos como testadores mais técnicos por eles não terem medo de "mexer no computador". Com o tempo eles adquirem experiência em negócio. Nas faculdades de Sistemas de Informação e Análise e desenvolvimento de Sistemas é comum ter uma matéria de Testes de Software.
Mas isso não quer dizer uma uma faculdade como Psicologia, Recursos Humanos, Contabilidade e Administração, entre outras, não possam gerar testadores. Muito pelo contrário. Eles sabem como ninguém o negócio das mais variadas áreas, pois estudaram a fundo o tal "negócio". Exemplo: a pessoa que cursa ou está cursando Recursos Humanos sabe como ninguém como se calcula uma folha de pagamento de funcionário nas mais variadas situações. Por isso, essas pessoas são chamadas de testadores de negócio.
Independente da formação superior escolhida, as especializações e os MBA's específicos de testes ou engenharia de software normalmente não requerem formação superior na área de TI. O mesmo vale para certificações técnicas.

Como iniciar a carreira de testes numa empresa?

As empresas que contratam pessoas para a área de testes normalmente querem que o candidato tenha experiência em testes ou que conheça o negócio da empresa em questão. As vezes, na sorte mesmo, aparecem vagas de estágio de testes para quem não tem experiência com testes nem negócio. Mas essas vagas de estágio em testes são raras.


Como iniciar a carreira de testes se não tenho experiência?

O caminho mais comum é iniciar trabalhando com suporte. Suporte ao usuário, suporte ao sistema, tanto faz aqui. Isso vai te dar experiência no negócio.

O que é esse "negócio"?

O "negócio" que você vai adquirir experiência é uma linha de produto que você vai atender. Por exemplo: se você presta suporte à usuários de ERP, com o tempo você adquire conhecimento em algum módulo dele (financeiro, contábil, produção, manufatura, logística, etc.). Esse conhecimento adquirido é o conhecimento em negócio.

Fora a faculdade, o que você recomenda estudar?

Hoje a área de testes está indo cada vez mais para linha de automação de testes. Então sugiro você estudar sobre frameworks que consigam automatizar processos. Os mais conhecidos são os que gravam tela ( Selenium é o mais famoso, e TestComplete. Outra ferramenta legal e bem fácil de usar é o Katalon). Onde eu trabalho estamos usando o CodecepJS que usa o Selenium de forma embarcada.
Outra coisa legal é que quase todas as empresas (de Startup a grandes empresas) criam APPS para tudo. Então ter a expertise de "fuçar" aplicativos mobile também é legal.  
Certificações na área de testes também são legais por N motivos:

  1. Você não precisa ter curso superior para tirar;
  2. Você aprende muito;
  3. Algumas tem validade internacional.

Além disso, não posso deixar de falar nos cursos de especialização e MBA que existem e abordam sobre testes de software.


Você possui outro caminho? Entra em contato para incrementar o post! 😄
Espero que tenham gostado, até mais! 😃

Quem é o QA dentro do Ágil?

Hoje de manhã eu estava lendo um artigo no caroli.org, que me fez lembrar que eu já falei aqui no blog do P.O, do Scrum Master, do System Team, mas que eu esqueci de falar do Q.A..
QA vem do inglês, Quality Analyst, e significa analista de qualidade no bom português. Este é um papel muito importante dentro das equipes que trabalham com produtos digitais ágeis. Apesar de existir um outro acrônimo de QA, que em inglês significa Quality Assurance e em português é "Garantia de Qualidade", o papel do QA aqui está mais voltado ao analista de qualidade de testes que à garantia de qualidade propriamente dita.

Qual o objetivo de um QA?
O QA, assim como o System Team, deve garantir a qualidade do produto. Mas mais do que isso, ele deve garantir que o software que estamos entregando ao cliente é exatamente o que eles querem. Uma análise aprofundada de testes é realizada. A diferença aqui para o System Team, é que o QA está dentro do projeto ágil enquanto o System Team aparece com maior evidência no final das entregas. Para saber mais sobre o System Team, clique AQUI.
O controle de qualidade parece como o trabalho no estilo "camaleão": muda de responsabilidades diárias à medida que a equipe aprende e cresce, e o projeto passa por mudanças.

O que faz um QA?
O QA ai orquestrar todos no time para garantir que essas tarefas sejam realizadas pelas pessoas mais adequadas para realizá-las. O QA é responsável por entender como  se encaixam todas as atividades relacionadas à qualidade da equipe. Lembrem-se, o teste não é mais de feito exclusivamente por um testador.
No ágil todos estão preocupados com a qualidade do produto. O QA é o especialista de conduz o produto do time à qualidade esperada.


Quais são as responsabilidades do QA?
  • Análise de teste: Isso inclui análise de risco e design de teste. O QA faz análise de teste quando pensa num teste exploratório, quando está escrevendo casos de teste de regressão, quando está colaborando nos critérios de aceitação da história, quando está implementando ou mantendo testes automatizados, ou quando está decidindo quais testes de regressão não deve fazer porque não vai ter tempo.
  • Estratégia de testes: Os QAs geralmente colaboram com os desenvolvedores na estratégia geral de testes da equipe, já que muitos testes, testes funcionais de baixo nível, testes de contrato de serviço, testes de UI são feitos por desenvolvedores. É importante que os esforços de automação de teste entre os QAs e os desenvolvedores se complementem, porque, de outra forma, pode haver lacunas de cobertura que introduzam riscos ou duplicações que retardam a equipe.
  • Análise de negócios: os QAs podem ajudar (e muito) os analistas de negócios a definir critérios de sucesso para as histórias.
  • Verificação da história – Como os desenvolvedores terminam as histórias ao longo da iteração, alguém precisa testá-las cuidadosamente para garantir que elas atendam aos critérios de aceitação e às necessidades dos usuários. A equipe confia nos QAs, pois possuem habilidades de teste: rigor e conhecimento de técnicas eficientes para encontrar erros.
  • Teste manual: Antes de escrever um teste automatizado, precisamos testar as coisas manualmente para ter uma idéia de como elas funcionam e para ter uma idéia melhor do que automatizar. Esta tarefa normalmente é feita de modo aprofundado pelo QA, mas também é executada por um desenvolvedor.
  • Automação de teste: Mais uma tarefa compartilhada com o desenvolvimento. Fazer testes de rotinas manualmente deixa uma grande chance de erro. Muitas vezes, é melhor se a maioria das funcionalidades importantes forem testadas automaticamente.
  • Testes exploratórios: é aqui que uma QA brilha, pois tenta descobrir casos e combinações que os desenvolvedores não imaginaram ao escrever o código. Aqui o QA incorpora o usuário leigo e o especialista de negócio para encontrar bugs.
  • Teste de regressão: Uma regressão é uma alteração indesejada para a funcionalidade existente. Infelizmente, a experiência que tenho como System Team mostra que as equipes ágeis cortam os testes de regressão com maior frequência do que deveriam. Esta atividade é tão importante quanto os testes exploratórios. Apesar de ser uma tarefa dos QAs, devido ao frequente corte de escopo, é aqui que o System Team brilha! ;)
  • DevOps: a maioria dos testes acontece em um "Ambiente de Teste", o que muitas vezes significa que o QA é a primeira pessoa que tem uma necessidade real de um produto implantado em funcionamento. Isso às vezes significa que o QA se torna uma pessoa DevOps para a equipe, pois eles começam a solucionar as falhas de implantação por conta própria.
  • Comunicação de Riscos e Defeitos: Pessoas em diferentes papéis precisam de informações diferentes sobre riscos e problemas, apresentadas de diferentes maneiras. O QA precisa ser o mais detalhista e preciso possível quando conversar com um desenvolvedor sobre um defeito.
  • Liberação de tomada de decisão: O QA geralmente tem a responsabilidade de fazer, ou participar na tomada de decisões, go/no-go ou vai/não-vai, para novas funcionalidades e produtos.

Como você pode ver, é uma tonelada de coisas! Tentando fazer tudo é impossível, mas, por sorte, a qualidade é uma atividade de toda a equipe. Embora seja responsabilidade do QA garantir que as coisas aconteçam, não é necessariamente a responsabilidade deles fazer todo o trabalho!

O que um QA deve aprender para iniciar suas atividades?
A desvantagem de tudo isso é que é difícil dizer a alguém exatamente o que eles devem aprender em sua jornada como QA. O que vou propor aqui, é um compilado de vários QAs de várias empresas. Lembrem-se: isso não é uma receita de bolo, mas sim uma sugestão vinda de pessoas que já passaram pelo caminho das pedras.
  1. Aprenda sobre o domínio: entender os diferentes tipos de usuários, entender o que é construído e porquê, entender como a coisa que está sendo construída é dividida em pedaços menores (épicos e histórias). Aqui você não precisa debulhar o código fonte, mas sim sentar e conversar para entender bem o produto.
  2. Compreenda os princípios básicos do teste: quais são os diferentes tipos de testes, como deve ser um testador, como aplicar testes diferentes às histórias e Critérios de Aceitação.
  3. Saiba documentar um defeito: aprendendo quais informações precisam ser incluídas, como funcionam as ferramentas padrão de rastreamento de erros. Existem ferramentas básicas que já falamos aqui no blog: Lightshot para corte e edição rápida de printscreens (http://bitlady.blogspot.com.br/2016/10/lightshot-uma-ferramenta-de-captura-de.html) e LICEcap ou ScreenToGif para criação de .GIFs (http://bitlady.blogspot.com.br/2017/10/licecap-e-screentogif-ferramentas-leves-para-criar-gifs.html).
  4. Aprenda mais sobre o sistema operacional: muitos dos scripts, implantação e solução de problemas mais recentes que você precisa fazer dependem da sua capacidade de entender e navegar em torno do seu sistema operacional. Você precisará entender os conceitos básicos de como os principais sistemas operacionais funcionam: Windows, Linux, OS X, Android, iOS – e você precisará estar confortável trabalhando na linha de comando. Cedo ou tarde, você vai precisar. Então quanto antes se acostumar, melhor.
  5. Aprenda tudo sobre o browser: (cookies, preferências de localização, browser strings, etc.)
  6. Desenvolva habilidades básicas no Excel: Para testar aplicativos, eles precisam ser preenchidos com dados de teste, e o Excel é uma ferramenta extremamente comum para criar, editar e gerenciar dados de teste. Você precisará trabalhar com grandes conjuntos sem fazer alterações um por um, então aprenda as fórmulas para fazer a edição em lote. Muitas empresas usam Excel para gerenciar casos de teste também, então, quanto mais confortável você estiver com ele, mais eficiente voce será nas suas tarefas.
  7. Compreenda como funciona Integração Contínua: Compreenda os princípios por trás da Integração Contínua. Saiba como funciona e o que é testado em que fase do pipeline no Git ou do TeamCity. Lembrando que você não precisa fazer, mas compreender como funciona, ajuda bastante.
  8. Conheça os logs: Quando você está investigando erros, você terá que descobrir quais logs procurar, como encontrar coisas nesses logs (como abrir, pesquisar, navegar), como encontrar códigos de erro, e quando é apropriado trazer algo que você encontrar para um desenvolvedor.
  9. Entenda os fundamentos da Web: seletores HTTP e HTML / DOM / CSS. Pelo menos o básico é importante.
  10. Conheça alguns drivers do navegador (por exemplo, WebDriver / Selenium / Watir): Os drivers do navegador são a maneira principal de testar automaticamente as interfaces de usuário baseadas na web. 
  11. Saiba os fundamentos de testes móveis: Além de emuladores e implantação de pacotes construídos para vários dispositivos, esta área fornece uma introdução natural à análise de combinações e permutações. Saiba quando repetir absolutamente tudo em cada navegador em cada dispositivo. Aprenda a técnica de teste “parwise”.


Pessoal, ninguém vem pronto para o mercado para trabalhar como QA (nem depois de 4 ou 5 anos de faculdade). Aqui estão dicas do que estudar para você melhorar suas habilidades e conseguir responder sobre a qualidade de um produto numa sprint. Além disso, no ágil todos da equipe são responsáveis pela qualidade do produto.

O que acontece depois de liberar o produto numa sprint?
De duas, uma:
ou cairá para o System Team estabilizar a versão, de modo integrado com os demais produtos, para então liberar o produto ao final de uma release;
ou você dará o OK final para colocar a versão no mercado.

Você concorda? Deixe sua opinião também!

Referências: Caroli. <http://www.caroli.org/o-que-faz-um-qa/>. Acesso em: 05/10/2017>.