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.