Você está na página 1de 17

Perguntas técnicas – QA

1- O que são testes manuais?


O teste manual é um processo no qual os testadores interagem
diretamente com o software, simulando a experiência do usuário
final, para identificar erros, falhas e áreas de melhoria.

2- Cite vantagens e desvantagens dos testes manuais.


Vantagem: O teste manual permite aos testadores identificar
problemas que podem ser ignorados pela automação, como
problemas de usabilidade e design. Ele também ajuda a entender
melhor a perspectiva do usuário, melhorando a experiência geral
do produto.

Desvantagem: O teste manual pode ser demorado e propenso a


erros humanos. Além disso, é difícil reproduzir e rastrear testes
manuais, o que pode levar a inconsistências nos resultados.

3- O que são testes exploratórios?


Os testes exploratórios são uma abordagem de teste manual em
que os testadores exploram ativamente o aplicativo sem um roteiro
predefinido. Isso permite identificar problemas inesperados e obter
insights sobre a usabilidade do software.

4- O que são testes de aceitação?


O Teste de Aceitação do Usuário é um tipo de teste manual
realizado por usuários finais reais para validar se o software atende
às suas necessidades e expectativas. É a última etapa antes do
lançamento do produto.

5- Qual a importância dos testes manuais no desenvolvimento do


software?
O teste manual desempenha um papel fundamental na garantia da
qualidade do software, complementando os testes automatizados.
Ele permite identificar problemas e melhorias na perspectiva do
usuário, resultando em um produto final mais eficiente e
agradável.

6- O que são testes não funcionais?


Os testes não funcionais avaliam aspectos como desempenho,
segurança e usabilidade do software, garantindo que ele atenda às
expectativas do usuário e às demandas do mercado.

7- Quais os tipos de testes não funcionais?


Dentre os diversos tipos de testes não funcionais, destacam-se os
testes de desempenho, segurança, usabilidade, compatibilidade,
confiabilidade e escalabilidade. Cada um desses testes tem um
objetivo específico para garantir a qualidade do software.
8- O que são testes de desempenho?
Testes de desempenho avaliam a capacidade do software de lidar
com cargas de trabalho sob diferentes condições. É como verificar
se um carro pode manter a velocidade e a estabilidade em uma
estrada movimentada.

9- O que são testes de segurança?


Testes de segurança verificam a capacidade do software de
proteger dados e informações contra ameaças e ataques. Imagine
um cofre robusto que mantém seus pertences seguros.

10-O que são testes de usabilidade?


Testes de usabilidade garantem que o software seja fácil de usar e
acessível para os usuários finais. Pense nisso como garantir que
uma pessoa consiga encontrar facilmente o caminho em um novo
edifício.

11-O que são testes de compatibilidade?


Os testes de compatibilidade verificam se o software funciona
corretamente em diferentes sistemas operacionais, dispositivos e
navegadores. Isso garante que o software seja como um adaptador
universal, funcionando em várias situações.

12-O que são testes de confiabilidade e escalabilidade?


Os testes de confiabilidade e escalabilidade asseguram que o
software funcione de forma consistente e possa lidar com o
aumento da demanda. Imagine uma ponte que suporta o tráfego
crescente sem falhar.

13-Qual a importância dos testes não funcionais?


Realizar testes não funcionais é crucial para garantir que o
software atenda às expectativas dos usuários e funcione
adequadamente em diversos cenários. Esses testes ajudam a
entregar um produto completo, confiável e de alta qualidade.
14-O que é teste de regressão?
Realizar testes não funcionais é crucial para garantir que o
software atenda às expectativas dos usuários e funcione
adequadamente em diversos cenários. Esses testes ajudam a
entregar um produto completo, confiável e de alta qualidade.

15-Explique como são as técnicas de testes de regressão.


A regressão completa é uma inspeção completa, oferecendo a
maior cobertura de teste.
A seleção de teste de regressão é mais específica, concentrando-se
nas mudanças de código no módulo.
A priorização de caso de teste, por sua vez, considera o impacto
nos negócios e as funcionalidades mais utilizadas, ajudando a
equipe a decidir onde focar os esforços.

16-Quando se deve usar testes de regressão?


Assim como inspeções de rotina, os testes de regressão devem ser
realizados sempre que novos recursos, melhorias ou correções de
bugs forem adicionados à base de código ou aplicativo existente.
Isso garante que as alterações não afetem negativamente o
desempenho geral e a funcionalidade do software.

17-Quando o teste de regressão está concluído?


Determinar a conclusão do teste de regressão é semelhante a
decidir quando uma inspeção de rotina está completa. É importante
encontrar um equilíbrio entre o tempo disponível, os recursos e o
risco que a equipe pode assumir. Isso inclui analisar prioridades de
funcionalidades e considerar defeitos anteriores para direcionar os
esforços de teste de forma mais eficiente.

18-Qual a vantagem do teste de regressão?


Testes de regressão garantem a qualidade e a funcionalidade
contínuas do seu aplicativo, permitindo que você encontre bugs
mais cedo e libere software com menos riscos.

19-O que é teste de performance?


Um teste de performance é uma avaliação que visa medir a
eficiência, velocidade, escalabilidade e estabilidade de um sistema,
aplicativo, dispositivo ou serviço sob diferentes condições e cargas
de trabalho.
O objetivo é identificar gargalos, pontos fracos e áreas que
precisam de otimização para garantir que o sistema ou aplicação
possa atender às necessidades e expectativas dos usuários em
termos de desempenho.

20-Quais os principais tipos de teste de performance?


 Teste de Fumaça (Smoke Test)
 Teste de Carga (Load Test)
 Teste de Estresse
 Teste de Imersão (Soak Testing)
 Teste de Pico (Spike Test)
 Teste de Ponto de Interrupção (Breakpoint)

21-O que é teste de fumaça (Smoke Test)?


O teste de fumaça é um teste inicial com carga mínima, realizado
para garantir que as funcionalidades básicas do sistema estejam
funcionando corretamente. É como acender um fósforo para ver se
há fumaça! Esses testes são executados para conferir se os scripts
funcionam bem, se o sistema opera adequadamente com carga
mínima e para coletar valores de desempenho da linha de
base.Com o teste de fumaça, temos a certeza de que nosso sistema
está pronto para lidar com cargas maiores e oferecer uma
experiência sólida aos usuários.

22-O que é teste de carga (Load Test)?


Os testes de carga simulam o número de usuários simultâneos e
solicitações por segundo, refletindo comportamentos típicos no
ambiente de produção. Essa abordagem aumenta gradualmente a
taxa de transferência ou VUs e mantém a carga média por algum
tempo, permitindo identificar gargalos e otimizar a capacidade do
sistema. Dependendo das especificidades do sistema, o teste pode
encerrar repentinamente ou apresentar um breve período de
desaceleração. Assim, garantimos que nossos sistemas estejam
prontos para lidar com demandas reais dos usuários!

23-O que é teste de estresse?


Este teste analisa a estabilidade e a confiabilidade do sistema sob
condições extremas e uso intenso. Momentos incomuns, como
prazos apertados, dias de pagamento, horários de pico e fins de
semana de trabalho, podem gerar eventos de alta carga, exigindo
que nossos sistemas enfrentem cargas de trabalho muito maiores
que o normal.
Os testes de estresse nos ajudam a garantir que tudo funcione
perfeitamente, mesmo nessas situações desafiadoras!

24-Teste de pico (Spike Test)?


O teste de pico é um tipo de teste menos comum, mas
extremamente importante para sistemas que podem enfrentar picos
repentinos de atividade, algo não usual na maioria das plataformas.
Esse teste nos ajuda a entender como nosso sistema se comportará
e se resistirá à carga repentina. A carga, consideravelmente acima
da média, geralmente se concentra em um conjunto de processos
diferente dos outros tipos de teste. Assim, garantimos que nossos
sistemas estejam prontos para enfrentar qualquer desafio e oferecer
uma experiência de usuário consistente, mesmo em situações de
pico!

25-Teste de imersão (Soak Testing)?


A maioria dos sistemas precisa funcionar por dias, semanas ou
meses sem interrupções. O teste de imersão é crucial para verificar
a estabilidade e a confiabilidade do sistema durante esses longos
períodos de uso. Esse teste detecta problemas de desempenho que
podem surgir apenas após uso prolongado, como degradação do
tempo de resposta, vazamentos de memória ou outros recursos,
saturação de dados e esgotamento do armazenamento. Com o teste
de imersão, garantimos que nossos sistemas estejam preparados
para oferecer desempenho e confiabilidade consistentes ao longo
do tempo!

26-O que é teste de ponto de interrupção (Breakpoint)?


O teste de ponto de interrupção busca identificar os limites do
sistema, permitindo ajustar pontos fracos e planejar correções.
Esse teste aumenta a carga até números extremos, sendo
interrompido quando os limites falham. Realizado em situações
específicas, como crescimento contínuo da carga, alto consumo de
recursos ou após grandes mudanças no código ou infraestrutura.
Conhecer os limites é essencial para garantir a performance ideal
do sistema!

27-Como realizar um teste de fumaça?


Os testes de fumaça são como um check-up geral para o seu
software. Eles devem ser projetados para cobrir as funcionalidades
mais importantes do seu software. A ideia não é aprofundar cada
função, mas verificar se as principais funções estão funcionando
como esperado.

28-O que é teste de caixa preta?


É uma técnica de teste de software que não requer conhecimento
interno do código do programa sendo testado. Isso significa que,
em vez de se concentrar nas funcionalidades internas do software,
o teste de caixa preta se concentra em como o software se
comporta quando as entradas são fornecidas.

29-Como é a técnica de partição de equivalência?


Essa técnica consiste em dividir as possíveis entradas em um
conjunto de classes de equivalência, com o objetivo de testar um
conjunto representativo de entradas de cada classe. Por exemplo,
se o teste é sobre um formulário de cadastro, podemos dividir as
entradas possíveis em classes como "dados pessoais", "dados de
contato" e "dados de login".

30-Como é a técnica de Análise de valor limite?


Essa técnica tem como objetivo identificar e testar os valores de
entrada na borda ou "limite" do domínio de entrada do programa.
Por exemplo, se o programa é um sistema de reservas de voos,
podemos testar valores como o número máximo e mínimo de
passageiros permitido em uma reserva.

31-Como é a técnica de Teste de tabela de decisão?


Nessa técnica, testamos a lógica e o comportamento do software
quando várias condições estão disponíveis, em um formato tabular.
Por exemplo, podemos criar uma tabela para testar um sistema de
controle de estoque, com colunas para as condições "produto",
"quantidade" e "localização" e linhas para cada combinação
possível dessas condições.

32-Como é a técnica de Teste de transição de estado?


Essa técnica de teste de caixa preta testa o comportamento de um
programa conforme ele transita entre diferentes estados ou modos.
Por exemplo, podemos testar um sistema de pagamento online
verificando se ele se comporta corretamente em cada estado, como
"não logado", "logado", "dados do cartão preenchidos" e
"pagamento aprovado".

33-Como é a técnica de teste de pares?


Essa técnica é usada para criar casos de teste para cobrir todos os
pares possíveis de combinações de valores de entrada para um
determinado conjunto de parâmetros. Por exemplo, se o teste é
sobre um sistema de busca em um site de e-commerce, podemos
testar pares como "palavra-chave e categoria", "palavra-chave e
preço", e assim por diante.

34-O que é teste de caixa branca?


Diferente do teste de caixa preta, que se concentra no
comportamento do software, o teste de caixa branca vai além,
analisando a estrutura interna e a lógica do código.
Nessa técnica de teste, os profissionais têm total acesso ao código-
fonte, permitindo a elaboração de casos de teste a partir da lógica
interna do software. É similar a um mecânico que examina
meticulosamente todos os componentes de um motor para
assegurar seu correto funcionamento.

35-O que é teste de caminhos?


Uma das primeiras técnicas usadas é o teste de caminhos. Ele
garante que todas as rotas possíveis do código sejam exploradas e
testadas, verificando, por exemplo, todas as ramificações de uma
instrução condicional, garantindo que tanto os cenários
"verdadeiros" quanto "falsos" operem corretamente.

36-O que é teste de condição?


O teste de condição foca em testar todas as possibilidades de uma
condição, seja ela verdadeira ou falsa. Isso assegura que o software
se comportará corretamente em todas as situações possíveis,
maximizando a cobertura de teste e a robustez do software.

37-O que é teste de ciclo?


Os loops são elementos comuns em programação e, portanto,
precisam ser rigorosamente testados. O teste de ciclo verifica se
esses loops estão operando corretamente sob diferentes condições,
seja com zero, uma ou muitas iterações.

38-O que é teste de fluxo de dados?


O fluxo de dados é uma parte vital de qualquer software. O teste
de fluxo de dados rastreia o caminho que os dados percorrem
através do código, identificando problemas potenciais, como
variáveis não inicializadas, vazamentos de memória ou problemas
de concorrência.

39-O que é teste de cobertura de código?


O teste de cobertura de código é fundamental para garantir que
todos os caminhos do código sejam executados durante o processo
de teste. Isso minimiza a chance de partes do código serem
ignoradas, maximizando a eficácia do teste.

40-Qual a importância do teste de caixa branca?


O teste de caixa branca desempenha um papel essencial na garantia
da qualidade do software. Ao proporcionar uma compreensão
profunda da lógica interna do código, ele identifica e corrige falhas
no início do desenvolvimento. Com o teste de caixa branca, somos
capazes de desenvolver um software mais robusto, confiável e
eficiente, garantindo a entrega de um produto final de alta
qualidade.

41-O que é Shift-Left?


Shift-Left é uma abordagem na engenharia de software que
prioriza a execução de testes logo no início do ciclo de
desenvolvimento. Esta estratégia inovadora tem como meta
principal integrar o processo de garantia de qualidade desde o
início do projeto, evitando que se torne uma mera atividade
subsequente.

42-Qual a diferença entre Shift-Left e a abordagem tradicional?


Na abordagem tradicional, testes são realizados após a codificação,
quase como um "anexo" ao processo de desenvolvimento. Este
modelo pode levar a custos e tempo de desenvolvimento mais
elevados. Com Shift-Left, "mudamos" os testes para o início,
integrando-os às fases iniciais do projeto.

43-Quais as vantagens do Shift-left?


O Shift-Left traz uma grande vantagem, como a identificação e
correção de defeitos mais cedo no ciclo. Isso não apenas melhora a
qualidade do produto, mas também evita custos elevados e atrasos
no desenvolvimento que geralmente são associados a correções
tardias.
Ao realizar testes no início do ciclo de desenvolvimento, o Shift-
Left resulta em um software de melhor qualidade, com um tempo
de lançamento mais curto e custos reduzidos. A eficiência do
processo de desenvolvimento é notavelmente melhorada.
Para QA's, o Shift-Left é crucial, especialmente em ambientes que
adotam metodologias ágeis. Essas metodologias enfatizam a
entrega contínua de pequenos incrementos de software, exigindo
que os testes sejam integrados ao processo desde o início.
Além de melhorar a eficiência do processo, o Shift- Left também
fomenta uma colaboração mais eficaz entre desenvolvedores e
QAs. Ambos estão envolvidos desde o início do projeto, o que
permite uma compreensão mais profunda dos requisitos e uma
abordagem mais eficaz para a garantia de qualidade.

44-Quais são os princípios de testes?


1. Teste mostra a presença de defeitos: Testar um aplicativo é como
procurar agulhas no palheiro! Podemos encontrar muitas, mas
nunca temos 100% de certeza de que encontramos todas.
2. Teste exaustivo: É impossível testar todas as combinações! Temos
que ser estratégicos, selecionando e priorizando nossos testes.
3. Teste antecipado: Lema para vida: quanto mais cedo, melhor!
Iniciar os testes no começo do ciclo de vida do desenvolvimento
nos salva tempo e dinheiro.
4. Agrupamento de defeitos: Os defeitos são como pombos, gostam
de se agrupar! Ao identificar essas áreas, podemos concentrar
nossos esforços de teste.
5. Paradoxo do pesticida: Repetir os mesmos testes muitas vezes?
Eles acabam perdendo a eficácia. Temos que atualizar
regularmente nossos casos de teste.
6. Teste depende do contexto: Não existe "um tamanho serve para
todos" em testes. A melhor estratégia vai depender de muitos
fatores, incluindo recursos, tipo de sistema e riscos associados.
7. O Absurdo é uma falácia: Sistemas perfeitos no papel podem não
ser tão perfeitos para os usuários. A usabilidade é uma parte
crucial da qualidade do software.
45-O que é BDD?
BDD ou Behavior-Driven Development é uma metodologia de
desenvolvimento de software que encoraja a colaboração entre
todos os envolvidos no projeto. Ela ajuda a clarear o entendimento
do comportamento esperado do software através de descrições em
linguagem natural.

46-O que são BDD, Gherkin e Cumcumber?


Gherkin, BDD (Behavior-Driven Development) e Cucumber são
ferramentas e técnicas cruciais para QA's. Eles ajudam a definir
comportamentos e a criar testes automatizados de maneira eficaz.
Vamos entender melhor cada um deles.

47-Diferencie BDD, Gherkin e Cumcuber.


Embora BDD, Gherkin e Cucumber estejam relacionados e
frequentemente usados juntos, eles não são a mesma coisa. BDD é
uma metodologia de desenvolvimento de software que enfatiza a
colaboração e o entendimento comum. Gherkin é uma linguagem
utilizada para escrever cenários de teste no contexto do BDD.
Cucumber é uma ferramenta que suporta BDD, permitindo a
execução de testes escritos em Gherkin.

48-Como usar e não usar BDD?


O BDD deve ser usado para promover a colaboração e a
comunicação clara, mas não deve ser considerado como uma
substituição para outros processos de teste ou documentação
técnica. Lembre-se, BDD é sobre construir um entendimento
comum, não sobre criar scripts de teste perfeitos.

49-O que é Gherkin?


Gherkin é a linguagem utilizada para escrever os cenários de teste
no BDD. Ela utiliza uma sintaxe simples e clara, permitindo que
profissionais não técnicos entendam e contribuam para os testes.

50-Como usar e não usar Gherkin?


Gherkin deve ser usado para escrever cenários claros e
compreensíveis. No entanto, não deve ser usado para definir todos
os detalhes técnicos ou como um substituto para a boa
comunicação entre a equipe.
51-O que é Cumcumber?
Cucumber é uma ferramenta que suporta BDD, permitindo a
execução de testes escritos em Gherkin. Ele ajuda a automatizar os
cenários de teste, proporcionando feedback rápido e claro sobre o
comportamento do software.

52-Como usar e não usar Cumcumber?


Cucumber deve ser usado para automatizar testes baseados em
comportamento, mas não deve ser a única ferramenta em sua caixa
de ferramentas de teste. É importante lembrar que nem todos os
testes são adequados para BDD ou automação.

53-Você teve algum contato com automação de testes?


Sim, no curso e mentoria que acabei de concluir eu aprendi o
básico de JUnit, Selenium e agora estou planejando começar um
curso que comprei de Cypress.

54-O que é JUnit?


JUnit pode verificar se cada unidade de código funciona da forma
esperada. Ele Fornece uma completa API (conjunto de classes)
para construir os testes e Aplicações gráficas e em modo console
para executar os testes criados.
55-O que são testes unitários?
É uma modalidade de testes que se concentra na verificação da
menor unidade do projeto de software. É realizado o teste de uma
unidade lógica, com uso de dados suficientes para se testar apenas
à lógica da unidade em questão.

Em sistemas construídos com uso de linguagens orientadas a


objetos, essa unidade pode ser identificada como um método, uma
classe ou mesmo um objeto.

56-Quais as vantagens de se fazer testes unitários?


 Previne contra o aparecimento de “BUG’S” oriundos de códigos
mal escritos;
 Código testado é mais confiável;
 Permite alterações sem medo (coragem);
 Testa situações de sucesso e de falha;
 Resulta em outras práticas XP como: Código coletivo, refatoração,
integração contínua;
 Serve como métrica do projeto (teste ==requisitos);
 Gera e preserva um “conhecimento” sobre as regras de negócios
do projeto.

57-Você conhece Robot Framework?


O Robot Framework é uma ferramenta genérica de automação de teste
e automação de processo robótico, ele é considerado genérico porque
pode ser usado não apenas no desenvolvimento web, mas também em
sistemas para mobile, desktop e keyword-driven testing (teste
orientado por palavras-chave).
O Robot Framework pode ser implementado em várias linguagens
diferentes, como Python, Java e entre outras, ele é multiplataforma
(Windows, Linux, MAC e em containers Docker) e podem ser escritas
de forma Procedural ou BDD (Gerkin) dispensando frameworks
auxiliares.
Ele possui integração com outras ferramentas e uma comunidade ativa,
o Robot Framework é uma ótima escolha para equipes de
desenvolvimento que procuram melhorar a eficiência e a qualidade de
seus testes automatizados.

58-Você conhece algum banco de dados?


Tenho conhecimentos em SQL e os principais comandos no MySQL,
create, insert, select, uptdate, delete.

59-O que é Jira?


É uma ferramenta de gestão ágil de projetos que oferece suporte a
qualquer metodologia ágil, como Scrum, Kanban ou qualquer outra
que você preferir. Uma vantagem de utilizar Jira é que ela é uma
ferramenta que consegue agrupar todos os times e unificar o
desenvolvimento das atividades.

60-Você conhece o Kanban?


O Kanban é parte essencial de uma boa gestão de projetos, com uma
abordagem simples, eficiente e direta para a administração de
demandas. Kanban é um sistema visual de gestão de trabalho, que
busca conduzir cada tarefa por um fluxo predefinido de trabalho.

61- O que é Arquitetura de software?


Está relacionado a como segmentamos o software e como essas
partes segmentadas irão interagir.  Estrutura organizacional 

62-Ciclo de desenvolvimento de software


Existem 3 fases básicas de um ciclo de software: definição,
desenvolvimento e operação.
Definição
Deve-se conhecer a situação atual e fazer a identificação do problema
para buscar uma resolução do mesmo. É na definição que você fará a
modelagem dos processos e a análise do sistema. O modelo de ciclo
de vida é a primeira escolha a ser feita no processo de software.
Desenvolvimento
Esta etapa envolve atividades relacionadas a design, prototipagem,
codificação, testes, entre outras atividades que forem necessárias,
como por exemplo, a integração com um outro sistema. É importante
ressaltar que essas atividades devem seguir o que foi descrito nas
etapas anteriores, pois é aí que entra as regras de negócio.
Operação
Nesta etapa o software já estará em produção e você dará o devido
suporte aos usuários e, claro, corrigir possíveis bugs que possam
aparecer. Aí também entra a continuidade do software se for preciso,
como atender novos requisitos, novas funcionalidades. Porém, tudo
depende do modelo de ciclo de vida adotado pelo projeto.

Você também pode gostar