Pular para o conteúdo principal

Questão de Engenharia de Software — Conceitos e Tipos de Testes de Software — FCC 2025

Engenharia de SoftwareConceitos e Tipos de Testes de Software
Código
fc150542
Banca
FCC
Órgão
SEFAZ PI
Ano
2025
Cargo
ATE ( )

Considere, por hipótese, que durante a elaboração do plano de testes do sistema de Acompanhamento de Autos de Infração, a equipe de uma Secretaria da Fazenda tenha adotado as decisões abaixo.

 

- Planejou realizar testes funcionais automatizados para as principais regras de negócio, como geração de autos e emissão de relatórios, integrando-os a um pipeline de integração contínua.

- Decidiu omitir os testes de usabilidade, considerando que os usuários finais já estavam habituados com sistemas internos anteriores semelhantes.

- Documentou os casos de teste com base em critérios de aceitação definidos em reuniões com stakeholders de algumas áreas da Secretaria.

- Planejou testes de regressão exploratórios a cada nova entrega do sistema, utilizando um conjunto base de funcionalidades críticas.

- Realizou os testes de homologação em uma única iteração.

 

Ao analisar essas decisões, um Analista do Tesouro Estadual afirmou corretamente que a

  1. Asubstituição de testes exploratórios por testes manuais documentados garante maior flexibilidade e menor esforço de planejamento.
  2. Bautomação dos testes funcionais e sua integração ao pipeline de CI/CD garantem rastreabilidade, agilidade e redução de falhas em funcionalidades críticas.
  3. Cdecisão de excluir os testes de usabilidade com base no perfil dos usuários reduz a complexidade e permite concentrar esforços no desempenho do sistema.
  4. Dopção por realizar testes de homologação em uma única iteração garante que a equipe identifique e resolva todos os problemas de maneira mais eficiente, mantendo a qualidade e a confiabilidade do produto final.
  5. Eausência de testes automatizados nas fases finais de entrega evita erros de sobreposição entre testes manuais e automatizados.
Revelar gabarito e comentário

GabaritoB — automação dos testes funcionais e sua integração ao pipeline de CI/CD garantem rastreabilidade, agilidade e redução de falhas em funcionalidades críticas.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Testes de Software: automação, CI/CD e boas práticas

Gabarito: letra B. A automação dos testes funcionais integrada a um pipeline de CI/CD é uma prática consolidada de engenharia de software que garante rastreabilidade, agilidade e redução de falhas em funcionalidades críticas, pois cada integração de código é verificada por um build automatizado que executa os testes, detectando erros rapidamente. As demais alternativas apresentam decisões tecnicamente incorretas ou injustificáveis, como omitir testes de usabilidade, realizar homologação em uma única iteração ou substituir testes exploratórios por manuais documentados.

A questão avalia o conhecimento sobre estratégias e tipos de teste de software, um tema central da engenharia de software. Para resolvê-la, é preciso entender o que são testes funcionais, testes de regressão, testes exploratórios, testes de usabilidade e testes de homologação, além de compreender o papel da automação e da integração contínua no ciclo de desenvolvimento.

Testes funcionais (também chamados de testes de caixa preta) verificam se o software atende aos requisitos funcionais, ou seja, se as funcionalidades operam conforme o esperado, sem considerar a estrutura interna do código. Eles são essenciais para validar regras de negócio, como a geração de autos e a emissão de relatórios mencionadas no enunciado. A automação desses testes consiste em escrever scripts que executam os casos de teste automaticamente, sem intervenção manual, o que permite que sejam executados com frequência e de forma consistente.

A integração contínua (CI) é uma prática de desenvolvimento em que os membros da equipe integram seu trabalho frequentemente, e cada integração é verificada por um build automatizado que inclui a execução dos testes. Isso permite detectar erros de integração o mais rápido possível, reduzindo significativamente os problemas e permitindo que a equipe desenvolva software coeso mais rapidamente. Quando a automação dos testes é integrada ao pipeline de CI/CD, cada alteração no código dispara a execução automática dos testes, fornecendo feedback imediato sobre a saúde do sistema.

A rastreabilidade é outro benefício da automação: os resultados dos testes ficam registrados, permitindo identificar quais casos foram executados, quando e com qual resultado. Isso é fundamental para auditoria e para garantir a qualidade do produto. A agilidade vem da capacidade de executar uma suíte de testes completa em minutos, em vez de dias, e a redução de falhas decorre da detecção precoce de defeitos, antes que eles cheguem à produção.

Por outro lado, a decisão de omitir testes de usabilidade é questionável, pois a usabilidade é um atributo de qualidade importante, e a familiaridade dos usuários com sistemas anteriores não garante que o novo sistema seja intuitivo. Os testes de homologação (ou testes de aceitação) devem ser realizados de forma iterativa, com feedback dos usuários, e não em uma única iteração, para que os problemas sejam identificados e corrigidos ao longo do desenvolvimento. Os testes exploratórios são uma técnica valiosa que combina aprendizado, design e execução de testes, e não devem ser substituídos por testes manuais documentados, que são menos flexíveis e exigem maior esforço de planejamento.

A pegadinha desta questão está em apresentar decisões que parecem razoáveis no contexto de um projeto real, mas que contrariam as boas práticas de engenharia de software. O candidato deve identificar qual alternativa descreve uma prática correta e benéfica, em vez de apenas julgar as decisões pelo senso comum.

Testes de software
  • 1Tipos
    • Funcionais (caixa preta)
      • Validam regras de negócio
      • Automação + CI/CD
    • Regressão
      • Garantem que alterações não quebram
    • Exploratórios
      • Flexíveis, descobrem defeitos
    • Usabilidade
      • Atributo essencial de qualidade
    • Homologação (aceitação)
      • Iterativa, não única
  • 2Automação + CI/CD
    • Rastreabilidade
    • Agilidade
    • Redução de falhas
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A substituição de testes exploratórios por testes manuais documentados não garante maior flexibilidade, pois os testes exploratórios são, por natureza, mais flexíveis, permitindo que o testador explore o sistema de forma criativa e descubra defeitos que não seriam encontrados por roteiros pré-definidos. Além disso, os testes manuais documentados exigem maior esforço de planejamento, pois cada caso de teste precisa ser detalhadamente especificado antes da execução. A alternativa inverte os benefícios das duas abordagens.

Alternativa B — ✅ Correta ⟵ GABARITO

A automação dos testes funcionais e sua integração ao pipeline de CI/CD é uma prática recomendada, pois garante rastreabilidade (os resultados ficam registrados), agilidade (os testes são executados automaticamente a cada integração) e redução de falhas (defeitos são detectados precocemente). Essa abordagem é especialmente valiosa para funcionalidades críticas, como as regras de negócio mencionadas no enunciado, pois assegura que alterações no código não introduzam novos defeitos.

Alternativa C — ❌ Incorreta

A decisão de excluir os testes de usabilidade com base no perfil dos usuários é injustificável, pois a usabilidade é um atributo de qualidade essencial, e a familiaridade com sistemas anteriores não garante que o novo sistema seja intuitivo ou atenda às expectativas dos usuários. Além disso, a alternativa afirma que isso permite concentrar esforços no desempenho, mas a exclusão de um tipo de teste não implica automaticamente em melhoria de outro; cada tipo de teste atende a objetivos distintos e não são mutuamente exclusivos.

Alternativa D — ❌ Incorreta

Realizar testes de homologação em uma única iteração não garante a identificação e resolução de todos os problemas de maneira eficiente. A homologação deve ser um processo iterativo, com feedback dos usuários e correções ao longo do desenvolvimento. Concentrar todos os testes de aceitação em uma única fase aumenta o risco de problemas não detectados e dificulta a correção, comprometendo a qualidade e a confiabilidade do produto final.

Alternativa E — ❌ Incorreta

A ausência de testes automatizados nas fases finais de entrega não evita erros de sobreposição entre testes manuais e automatizados. Na verdade, a automação de testes é benéfica em todas as fases, incluindo as finais, pois permite executar rapidamente uma suíte de regressão para garantir que as alterações não introduziram novos defeitos. A sobreposição entre testes manuais e automatizados é um problema de gestão, não uma justificativa para eliminar a automação.

Gabarito: letra B

Link permanente: /questoes/fc150542