WorksheetsO que são Testes de Software?
Total questions: 56
Worksheet time: 28mins
Complete: O teste de software é o processo de avaliar e verificar se um produto ou aplicação funciona corretamente, com _______ e ________, de acordo com seus requisitos específicos.
segurança; eficiência
rapidez; beleza
aleatoriedade; sorte
lentidão; instabilidade
Complete: Testes e ________ são pilares para garantir a qualidade.
documentação
implementação
execução
validação
Qual das opções abaixo NÃO é um motivo para testar softwares?
Garantia de Qualidade (QA)
Redução de Riscos e Custos
Aumentar o número de bugs
Melhor Experiência do Usuário
Complete: No desenvolvimento moderno (DevOps e CI/CD), o teste não é a etapa final. Ele começa no ________ (shift-left) e continua monitorando após a implementação (shift-right).
planejamento
deploy
monitoramento
codificação
Qual é o benefício de identificar uma falha de arquitetura ou segurança antes do lançamento?
É infinitamente mais barato do que corrigir a falha depois que milhões de usuários estão usando o sistema.
Permite que o sistema seja lançado sem testes adicionais.
Garante que não haverá mais falhas no futuro.
Elimina a necessidade de atualizações de software.
Sistemas que funcionam como esperado geram ________, aumentam vendas e melhoram a reputação da marca.
confiança
desconfiança
prejuízo
incerteza
dúvida
Em routes.py, onde está localizada toda a lógica de adicionar tarefa no exemplo apresentado?
Dentro da rota add_task.
No arquivo config.py.
Na função delete_task.
No template HTML.
O que acontece se o campo 'title' estiver vazio ao adicionar uma tarefa, considerando que em models.py o campo title é nullable=False?
O código funciona normalmente
O código ignora o campo title
O código quebra e gera um IntegrityError do SQLAlchemy
O código adiciona uma tarefa sem título
De acordo com o slide 'Do Código ao Teste: Isolando a Lógica', qual é a principal melhoria apresentada no código da rota create_tarefa?
O código está desacoplado da rota
O código valida a entrada
O código não faz validação
O código não utiliza banco de dados
Segundo o slide, a lógica de validação ainda está dentro da rota create_tarefa, o que dificulta o teste isolado dessa regra.
Verdadeiro
Falso
Preencha a lacuna: No código apresentado, se não houver dados ou o campo 'título' não estiver presente, a resposta será _________.
um erro com a mensagem 'o campo título é obrigatório' e status 400
um sucesso com status 200
um aviso sem mensagem de erro
nenhuma resposta será enviada
O que significa a Separação de Preocupações (Proposta de Refatoração) apresentada no slide?
Juntar toda a lógica em uma única função
Isolar a lógica em funções separadas e chamá-las de diferentes partes do código
Escrever código sem funções
Não documentar o código
Qual é o objetivo principal desta função?
Validar os dados de entrada para uma nova tarefa, garantindo que o campo 'título' esteja presente e não seja vazio.
Enviar notificações ao usuário sempre que uma nova tarefa for criada.
Excluir tarefas antigas automaticamente do sistema.
Atualizar o status de todas as tarefas para 'concluída'.
Complete: Se o campo 'título' não estiver presente nos dados, a função validar_dados_tarefa retorna _________.
False, "O campo título é obrigatório"
True, "O campo título é obrigatório"
None, "O campo título é obrigatório"
False, "O campo descrição é obrigatório"
Segundo o slide, é possível testar a função validar_dados_tarefa separadamente da rota create_tarefa.
Verdadeiro
Falso
O que é sugerido como ideal para separar preocupações no desenvolvimento de software, segundo o slide 'Do Código ao Teste: Isolando a Lógica'?
Colocar toda a lógica na rota da API
Criar uma função de lógica isolada e chamá-la da rota
Não separar lógica e rota
Escrever toda a lógica no banco de dados
No exemplo de código apresentado, qual é o propósito da função 'create_tarefa'?
Criar uma nova tarefa a partir dos dados recebidos em uma requisição POST.
Excluir uma tarefa existente do banco de dados.
Atualizar o status de uma tarefa para concluída.
Listar todas as tarefas armazenadas no sistema.
Complete: Para validar os dados recebidos na função 'create_tarefa', é chamada a função _________.
validar_dados_tarefa
checar_autenticacao
salvar_no_banco
enviar_email
Complete: O foco principal do Teste de Unidade (Unit Testing) é _________
Componente ou Função Individual
Integração entre Sistemas
Testes de Aceitação do Usuário
Desempenho do Sistema
Quem realiza o Teste de Aceitação (UAT)?
Desenvolvedores
Testadores / Equipe de QA
Usuários Finais / Clientes
Gerentes de Projeto
Complete: O Teste de Sistema (System Testing) é realizado por _________
Testadores / Equipe de QA
Desenvolvedores
Usuários finais
Gerentes de Projeto
Conceito: Testar a menor unidade: nossa função _________. Preencha a lacuna.
validar_tarefa
executar_projeto
criar_usuario
remover_item
Objetivo: Verificar se a lógica de negócio (a regra dos 3 caracteres) funciona perfeitamente, isolada de qualquer outra parte. Isso significa testar sem: Escolha a alternativa correta.
Flask e banco de dados
Interface gráfica
Internet
Usuários reais
Características: O teste unitário precisa de um servidor Flask rodando.
Verdadeiro
Falso
Características: O teste unitário executa em _________.
milissegundos
horas
dias
semanas
Qual é o nome do arquivo de teste criado para os testes unitários apresentados?
test_logica.py
teste_logica.py
logica_test.py
logicaTeste.py
O que a função test_validar_tarefa_com_conteudo_curto_deve_falhar() está testando?
Está testando se uma tarefa com conteúdo curto (menos de 3 caracteres) falha na validação.
Está testando se uma tarefa com conteúdo longo é aceita.
Está testando se a função retorna um erro para tarefas duplicadas.
Está testando se a tarefa é salva corretamente no banco de dados.
A função test_validar_tarefa_com_conteudo_valido_deve_passar() verifica se uma tarefa com o conteúdo 'Comprar pão no SENAI' é considerada válida. Verdadeiro ou falso?
True
False
Complete a frase: Testes de Integração verificam se os ________ funcionam juntos.
módulos
testes
usuários
dados
Qual é o objetivo dos Testes de Integração apresentados?
Garantir que a interface do usuário funcione corretamente
Garantir que a Rota Flask (/add) consiga se comunicar com o Banco de Dados (SQLAlchemy) e salvar a tarefa.
Garantir que o servidor esteja online
Garantir que o código esteja documentado
Complete a frase: Para testar uma rota em Flask usando pytest-flask, em vez de um navegador, usamos um ________ do Flask. Este teste precisa de um banco de dados (geralmente um de teste).
test_client
web_browser
http_server
api_gateway
Qual é o conceito de Teste de Sistema?
Avaliar apenas partes isoladas da aplicação
Avaliar a aplicação completa, como um usuário final faria
Garantir que o código está correto
Testar apenas a interface gráfica
Qual é o objetivo do Teste de Sistema?
Garantir que o fluxo completo do usuário funciona
Encontrar bugs no código-fonte
Testar apenas a base de dados
Avaliar a performance do servidor
Complete: No teste de caixa preta, o testador (QA) não precisa saber que usamos ______. Ele só precisa do link (http://localhost:5000) e dos requisitos (o que o app deveria fazer).
Flask
React
Django
Node.js
Exemplo (Cenário de Teste Manual): Cenário: Adicionar e Concluir uma Tarefa. Passo 2: Verificação: A página carrega e o título "Minha Lista de Tarefas" é exibido?
Sim, a página carrega e o título é exibido.
Não, a página não carrega.
Sim, mas o título não é exibido.
A página carrega, mas exibe um erro.
Exemplo (Cenário de Teste Manual): Cenário: Adicionar e Concluir uma Tarefa. Passo 5: Verificação: A página recarrega? A tarefa "Estudar Testes de Sistema" apareceu na lista de "Pendentes"?
Sim, a tarefa apareceu na lista de "Pendentes".
Não, a tarefa não apareceu na lista de "Pendentes".
A tarefa apareceu na lista de "Concluídas".
A página não recarregou e nada mudou.
Cenário: Adicionar e Concluir uma Tarefa. Passo 7: Verificação: A página recarrega? A tarefa "Estudar Testes de Sistema" saiu da lista de "Pendentes" e apareceu na lista de "Concluídas" (ou foi riscada)?
Sim, a tarefa saiu da lista de "Pendentes" e apareceu na lista de "Concluídas" (ou foi riscada).
Não, a tarefa permaneceu na lista de "Pendentes".
A tarefa foi excluída completamente do sistema.
A tarefa foi movida para uma lista chamada "Em Progresso".
Conceito: UAT (User Acceptance Testing) é a etapa final de validação, realizada por quem?
Usuários finais ou representantes do cliente (o "dono" do software).
Equipe de desenvolvimento.
Equipe de testes automatizados.
Gerentes de projeto.
O objetivo do UAT é determinar se o software atende às expectativas do usuário e se está pronto para uso em produção. O foco do UAT é:
Encontrar bugs
Validar o valor de negócio
Corrigir código
Testar desempenho
Resultado: Com base no UAT, o cliente pode decidir por quais das opções abaixo?
Aceito
Aceito com ressalvas
Rejeito
Todas as anteriores
O Teste de Aceitação (Cliente) vai validar se o fluxo faz sentido para o negócio dele.
Verdadeiro
Falso
O gerente da loja virtual acessa o sistema de homologação e tenta comprar um produto aplicando um cupom de desconto. Ele valida se a regra de negócio 'o cupom de 10% de Dia das Mães só pode ser usado uma vez por CPF' está sendo seguida. Qual é o objetivo desse teste?
Validar se a regra de negócio está sendo respeitada no sistema.
Verificar se o sistema permite compras sem cupom.
Testar se o sistema calcula o frete corretamente.
Avaliar se o layout da página está responsivo.
O que o Teste Funcional verifica?
Como o software se comporta em diferentes condições
Se a aplicação se comporta de acordo com os requisitos
O tempo de resposta do sistema
A compatibilidade do sistema
Qual das opções abaixo é um exemplo de Teste Não-Funcional?
Teste de Caixa Branca
Teste de Caixa Preta
Performance
Regressão
Complete: O Teste Não-Funcional avalia ______ o software se comporta em diferentes condições.
como
quando
onde
por que
Complete: Exemplos de Teste Funcional incluem Teste de Caixa Branca, Teste de Caixa Preta, Regressão, Sanidade, Fumaça e ____.
UAT
Teste de Performance
Teste de Stress
Teste de Volume
Preencha a lacuna: O teste funcional do tipo _______ foca nas funcionalidades externas.
Caixa Preta
Caixa Branca
Exploratório
Unitário
Qual é a definição de teste do tipo Caixa Branca?
Foco nas funcionalidades externas.
Teste baseado no conhecimento do código.
Garante que novas modificações não quebraram o que já funcionava.
Testes básicos para ver se a versão é estável.
Qual exemplo prático corresponde ao teste de Regressão?
O Teste de Sistema, onde o testador clica nos botões "Adicionar" e "Excluir" sem saber o nome das rotas.
O Teste Unitário, onde criamos o test_validacao_tarefa_falha_sem_titulo porque sabemos que existe um if not 'titulo' in dados em api_routes.py.
"Implementamos a rota PUT /api/tarefas/
"Antes de testar o fluxo de deleção, rodamos um Teste de Fumaça. A rota / (index) carrega? Se sim, continuamos. Se der 'Erro 500', a build está quebrada e nem iniciamos os testes."
Qual tipo de teste avalia a velocidade e estabilidade de um sistema?
Usabilidade
Segurança
Performance
Carga (Load)
Complete: O teste de _______ identifica vulnerabilidades e ameaças.
Segurança
Desempenho
Usabilidade
Compatibilidade
No contexto do exemplo prático apresentado, qual teste seria realizado ao simular 200 usuários acessando a rota GET ao mesmo tempo para verificar se o servidor aguenta ou começa a recusar conexões?
Carga (Load)
Unidade (Unit)
Funcional (Functional)
Exploratório (Exploratory)
Complete: O teste é ________.
essencial
opcional
desnecessário
impossível
Complete: A base do teste é ______ a lógica (como propomos extrair a validação da api_routes.py).
isolar
duplicar
ignorar
complicar
Quais são as ferramentas mencionadas para testes?
pytest e unittest
Selenium e JUnit
Mocha e Jasmine
Pytest e Mocha
Complete: Os quatro níveis garantem a cobertura, desde o test_nova_tarefa (__________), passando pelo test_api_create_tarefa (Integração), até o fluxo manual (Sistema).
Unitário
Funcional
Exploratório
Aceitação
