RFP – Qualidade

Questionário de RFP – Avaliação de Qualidade de Software

Stack obrigatória: Angular (Frontend / Micro-frontends), Java (Backend / Micro-serviços), PostgreSQL (Banco de Dados)
Arquitetura: Micro-serviços, API First, Micro-frontend
Qualidade: Testes automatizados, segurança, escalabilidade e boas práticas arquiteturais


1. Funcionalidade (Functional Suitability)

  1. Como a solução garante rastreabilidade completa entre requisitos funcionais e APIs (API First)?
  2. Como os contratos de API (OpenAPI/Swagger) são versionados e validados?
  3. Como mudanças de requisitos impactam micro-serviços já em produção?
  4. Como é garantida a consistência funcional entre micro-frontends?
  5. Quais mecanismos asseguram que funcionalidades críticas sejam priorizadas e protegidas?

2. Performance / Eficiência

  1. Como a arquitetura garante baixo tempo de resposta sob alta concorrência?
  2. Quais estratégias de cache são utilizadas (frontend, backend, banco)?
  3. Como são realizados testes de performance e stress?
  4. Como o PostgreSQL é otimizado para alto volume de leitura/escrita?
  5. Como gargalos entre micro-serviços são identificados?

3. Confiabilidade (Reliability)

  1. Como falhas em um micro-serviço não impactam todo o sistema?
  2. Quais padrões de resiliência são adotados (circuit breaker, retry, timeout)?
  3. Como é tratada a recuperação automática de falhas?
  4. Qual o histórico de estabilidade da solução em ambientes produtivos?
  5. Como erros são registrados e monitorados?

4. Usabilidade (Usability)

  1. Como o Angular é utilizado para garantir consistência visual entre micro-frontends?
  2. Como princípios de UX e acessibilidade são aplicados?
  3. Como feedback do usuário é coletado e incorporado?
  4. Como erros são apresentados de forma clara ao usuário final?
  5. A solução é responsiva e compatível com múltiplos dispositivos?

5. Segurança (Security)

  1. Como é implementada autenticação e autorização (OAuth2, OpenID Connect)?
  2. Como as APIs são protegidas contra ataques (OWASP Top 10)?
  3. Como dados sensíveis são protegidos no PostgreSQL?
  4. Como segredos e credenciais são gerenciados?
  5. Como testes de segurança são executados (SAST, DAST)?

6. Manutenibilidade (Maintainability)

  1. Como o código Java é organizado para facilitar manutenção?
  2. Quais padrões arquiteturais são utilizados?
  3. Como o acoplamento entre micro-serviços é minimizado?
  4. Como a documentação técnica é mantida atualizada?
  5. Qual o tempo médio para corrigir defeitos?

7. Portabilidade (Portability)

  1. A solução é containerizada (Docker)?
  2. Como é garantida a execução em diferentes ambientes (cloud/on‑premises)?
  3. Como dependências externas são abstraídas?
  4. Como o Angular é configurado para múltiplos ambientes?
  5. Existe dependência de fornecedor (vendor lock-in)?

8. Escalabilidade (Scalability)

  1. Como micro-serviços escalam horizontalmente?
  2. Como o banco PostgreSQL é escalado?
  3. Como picos de acesso são tratados?
  4. Como micro-frontends escalam independentemente?
  5. Como limites de capacidade são monitorados?

9. Disponibilidade (Availability)

  1. Qual o SLA garantido da solução?
  2. Como é garantida alta disponibilidade dos serviços?
  3. Existe estratégia de failover?
  4. Como janelas de manutenção são tratadas?
  5. Como indisponibilidades são comunicadas?

10. Interoperabilidade (Interoperability)

  1. Como APIs REST seguem padrões de mercado?
  2. Existe suporte a integração via eventos/mensageria?
  3. Como versionamento de APIs evita quebra de contratos?
  4. Como sistemas legados são integrados?
  5. Como erros de integração são tratados?

11. Testabilidade (Testability)

  1. Qual a cobertura mínima de testes automatizados?
  2. Existem testes unitários, de integração e end‑to‑end?
  3. Como testes são executados em CI/CD?
  4. Como micro-frontends são testados isoladamente?
  5. Como dados de teste são gerenciados?

12. Reusabilidade (Reusability)

  1. Como componentes Angular são reutilizados?
  2. Existem bibliotecas comuns entre micro-serviços?
  3. Como APIs são projetadas para reutilização?
  4. Como duplicação de código é evitada?
  5. Existem guidelines formais de reutilização?

13. Robustez (Robustness)

  1. Como o sistema lida com entradas inválidas?
  2. Como falhas externas são isoladas?
  3. Como exceções são tratadas no backend?
  4. Como o sistema se comporta sob condições extremas?
  5. Existem testes de caos (chaos testing)?

14. Responsividade (Responsiveness)

  1. Como o frontend garante carregamento rápido?
  2. Como chamadas assíncronas são tratadas?
  3. Existe uso de lazy loading?
  4. Como o tempo de resposta é monitorado?
  5. Como SLAs de resposta são garantidos?

15. Conformidade com Padrões

  1. Quais padrões arquiteturais são seguidos?
  2. A solução segue normas ISO ou equivalentes?
  3. Como conformidade é auditada?
  4. Como boas práticas de REST são aplicadas?
  5. Existem padrões internos documentados?

16. Auditabilidade (Auditability)

  1. Como logs de auditoria são registrados?
  2. É possível rastrear ações por usuário?
  3. Logs são imutáveis?
  4. Existe integração com SIEM?
  5. Como relatórios de auditoria são gerados?

17. Configurabilidade (Configurability)

  1. Como configurações são externalizadas?
  2. Existe separação entre código e configuração?
  3. Como mudanças de configuração são aplicadas?
  4. Existe versionamento de configurações?
  5. Configurações são seguras?

18. Modularidade (Modularity)

  1. Como micro-serviços são delimitados?
  2. Como micro-frontends são independentes?
  3. Existe baixo acoplamento entre módulos?
  4. Como dependências são gerenciadas?
  5. Como módulos podem evoluir isoladamente?

19. Flexibilidade (Flexibility)

  1. Como a arquitetura suporta novas funcionalidades?
  2. Como novos micro-serviços são adicionados?
  3. Como mudanças de negócio impactam o sistema?
  4. Como APIs evoluem sem impacto?
  5. Existe suporte a extensões futuras?

20. Integridade (Integrity)

  1. Como a integridade dos dados é garantida no PostgreSQL?
  2. Como transações distribuídas são tratadas?
  3. Existe validação consistente de dados?
  4. Como corrupção de dados é detectada?
  5. Existem mecanismos de rollback e versionamento?

Observação: As respostas devem incluir evidências técnicas, diagramas arquiteturais e exemplos práticos.