Ganhos:
- Capacidade de reconhecer e verificar se a IA pode produzir APIs falsas, código inseguro e conteúdo protegido por direitos autorais
- Capacidade de gerenciar o uso de IA dentro dos limites da confidencialidade do código-fonte, dados pessoais e política corporativa
- Compreender que a responsabilidade final pela conformidade da licença, segurança e ética permanece com o engenheiro.
Exame do Módulo
1. Como engenheiro de computação, ao trabalhar com uma ferramenta de geração de código de IA, a responsabilidade final por qual dos itens a seguir deve sempre permanecer com o ser humano?
- A) Aprovação final de correção, segurança, revisão e teste do código colocado em produção ✔
- B) Criando o primeiro esqueleto de código para uma função
- C) Produzindo uma lista de sugestões para nomes de variáveis
- D) Preparando um rascunho de texto para comentários de código
Descrição: IA; Ele pode acelerar tarefas como esqueleto de código, rascunho de teste e documentação. Porém, é responsabilidade do engenheiro revisar, testar e aprovar o código gerado para garantir que ele está correto, seguro e em conformidade com os requisitos, e colocá-lo em produção; isto não pode ser delegado à IA sem verificação independente.
2. A IA produziu uma função para você e parece estar funcionando no caminho certo. Qual é o melhor passo antes de colocá-lo em produção?
- A) Como a função parece funcionar, coloque-a diretamente em produção
- B) Verifique o comportamento escrevendo e executando pequenos testes de unidade que incluem casos extremos ✔
- C) Basta olhar para o número de linhas da função
- D) Tornar o nome da função mais descritivo
Explicação: Parecer trabalhar não significa estar certo. Escrever e executar pequenos testes de unidade que cobrem casos extremos, como entrada vazia, zero, negativo, valor muito grande e incompatibilidade, verificam o comportamento real da função sem movê-la para o ambiente ativo.
3. AI sugeriu um método chamado 'array.sortStable()' que não existe em seu idioma e o explicou de maneira clara. Qual é a primeira ação correta a ser tomada?
- A) Usar o método diretamente porque a IA parece confiante
- B) Defina você mesmo o método e use seu nome exatamente
- C) Verificando a existência do método a partir da documentação oficial da linguagem/biblioteca ✔
- D) Feche o aviso do compilador e continue
Explicação: Os modelos de linguagem podem constituir nomes de bibliotecas, pacotes ou métodos que na verdade não existem (alucinação). Cada API proposta deve ser verificada literalmente em relação à documentação oficial e atual da linguagem ou biblioteca; Se não estiver incluído no documento, não deverá ser utilizado.
4. Você deseja colar o código-fonte confidencial da sua empresa e uma chave de API incorporada em uma ferramenta pública de IA e pedir ajuda. Qual é a abordagem mais correta?
- A) Colando o código como está com a chave API para maior velocidade
- B) Basta deletar o nome da empresa e compartilhar todo o resto
- C) Compartilhar o código e depois pedir à IA para excluí-lo
- D) Retirar segredos e lógicas ocultas e reduzir o problema a um exemplo representativo ou utilizando uma ferramenta institucional ✔
Descrição: Código-fonte secreto e credenciais (chave de API, senha, string de conexão); É arriscado em termos de segredo e segurança da empresa. É necessário eliminar os segredos e a lógica de negócios oculta e reduzir o problema a um exemplo anônimo/representativo ou usar uma ferramenta de compartilhamento empresarial/não-dados.
5. AI disse que a complexidade de uma função de pesquisa que ele escreveu era O(n); mas existem dois loops aninhados no código. Qual é o comportamento correto da engenharia?
- A) Analise o código manualmente e extraia você mesmo a complexidade e meça se necessário ✔
- B) Aceite O(n) e continue porque AI disse
- C) Presumir que o número de ciclos não tem nada a ver com desempenho
- D) Basta alterar o nome da função
Explicação: A complexidade do tempo (Big-O) mostra como o número de operações aumenta à medida que a entrada aumenta. Dois loops aninhados geralmente significam O (n ^ 2). A alegação de complexidade da IA deve ser verificada analisando manualmente o código e medindo com entradas crescentes, se necessário; Confiar na afirmação produz uma falsa suposição de desempenho.
6. Código gerado por IA que insere diretamente a entrada do usuário em uma consulta SQL concatenando texto. Qual é o principal problema e a solução certa aqui?
- A) Sem problemas; mesclar texto é o método mais rápido
- B) Existe risco de injeção de SQL; Deve ser utilizada uma consulta parametrizada (instrução preparada) que separa a entrada ✔
- C) Basta converter a consulta para maiúsculas
- D) Escrever a consulta mais curta resolverá o problema
Descrição: adicionar a entrada do usuário diretamente ao texto da consulta cria uma vulnerabilidade de injeção de SQL; O invasor pode modificar a consulta com a entrada. A solução correta é usar uma consulta parametrizada (instrução preparada) que separe a entrada do texto da consulta. Este é um dos erros de segurança mais comumente esquecidos no código de IA.
7. Você tem tempo limitado ao revisar um trecho de código produzido pela IA. Quais questões são melhores para priorizar?
- A) Formate apenas detalhes como recuo e espaçamento
- B) Apenas o comprimento dos nomes das variáveis
- C) Correção lógica, vulnerabilidades e comportamento de casos extremos ✔
- D) Somente o número total de linhas do arquivo
Descrição: Maior risco na revisão de código; São questões que causam sérios danos, como erros lógicos, vulnerabilidades de segurança e vazamentos de informações confidenciais. Problemas de formato e estilo são corrigidos com ferramentas automáticas; A principal atenção humana deve ser dedicada à precisão, segurança e comportamento extremo.
8. Você deseja que a IA resolva um bug. Qual entrada ajudaria melhor a IA a encontrar a causa raiz?
- A) Apenas dizendo 'o código não funciona, conserte-o'
- B) Basta fornecer o nome do arquivo
- C) Apenas dizendo o resultado esperado, sem o texto do erro
- D) Forneça mensagem de erro completa, rastreamento de pilha, código relevante e exemplo de reprodução mínima ✔
Explicação: Para uma depuração eficaz, é necessário fornecer à IA a mensagem de erro completa, o rastreamento de pilha, o trecho de código relevante e a menor amostra reproduzível que produz o erro. A afirmação vaga “não funciona” força a IA a adivinhar e a fazer recomendações gerais.
9. Todos os testes unitários produzidos pela IA passam na primeira execução. Qual risco não deve ser ignorado nesta situação?
- A) Os testes podem confirmar o estado atual do código, mas não o comportamento real/esperado ✔
- B) O código está absolutamente livre de erros porque todos os testes foram aprovados
- C) A qualidade é garantida se o número de testes for grande
- D) A aprovação no teste prova que a cobertura está completa
Explicação: Os testes podem estar validando o comportamento atual (talvez com erros) do código, e não o comportamento pretendido; ou pode não conter nenhuma afirmação significativa e é sempre passado. Para verificar se os testes estão verificando a real expectativa, é necessário quebrar o código conscientemente e confirmar que o teste fica vermelho.
10. A IA produziu para você um bloco de código pronto para um problema. Você suspeita que o código pode ter sido copiado literalmente de um projeto de código aberto. Qual é a abordagem correta?
- A) Usar a licença sem pensar porque o código funciona
- B) Verificar a fonte/licença do código, reescrevendo se necessário e cumprindo a política corporativa ✔
- C) Basta alterar os nomes das variáveis e considerar o problema resolvido
- D) Assumir que o licenciamento diz respeito apenas às grandes empresas
Descrição: a IA pode reproduzir o código protegido por direitos autorais/licenciado nos dados de treinamento literalmente. A violação da licença em um produto comercial cria sérios riscos legais. É necessário verificar a fonte e a licença do código, reescrevê-lo com suas próprias palavras se necessário e cumprir a política de licenciamento da instituição.
11. A AI sugeriu que você mudasse imediatamente para a arquitetura de microsserviços em seu projeto. Qual é a abordagem de engenharia mais apropriada ao avaliar esta proposta?
- A) Divida imediatamente todo o sistema em microsserviços porque a IA sugere
- B) Presumir que o microsserviço é sempre a melhor escolha
- C) Avalie a proposta de acordo com a real necessidade, carga, estrutura da equipe e saldo positivo-menos ✔
- D) Tomar a decisão com base apenas na popularidade da arquitetura
Explicação: As decisões arquitetônicas dependem do contexto; Os microsserviços agregam valor em necessidades como escala e separação de equipes, mas acarretam custos como complexidade operacional, depuração distribuída e custo. Avaliar a proposta de acordo com a real necessidade, carga, estrutura da equipe e equilíbrio de prós e contras; Os conselhos gerais não devem ser seguidos cegamente.
12. A AI produziu um README simplificado e uma documentação de API para o seu código; mas alguns endpoints e parâmetros não correspondem no código. Qual é o comportamento correto?
- A) Publicar o documento como está porque o texto é fluente
- B) Basta corrigir o título e deixar o resto como está
- C) Adicionar o documento ao armazém sem lê-lo
- D) Compare cada endpoint e parâmetro com o código real e corrija qualquer um que não corresponda ✔
Descrição: A documentação deve ser um reflexo preciso do código real; O documento errado leva os desenvolvedores que o lêem a usá-lo incorretamente. Cada endpoint, parâmetro e valor de retorno devem ser verificados em relação ao código real e quaisquer incompatibilidades devem ser corrigidas.
13. Qual abordagem de entrada é adequada para obter resultados da mais alta qualidade ao solicitar código da IA?
- A) Fornecer claramente idioma/versão, contrato de entrada-saída, restrições e situações de erro ✔
- B) Apenas dizendo 'escreva-me algum código funcional'
- C) Escreva a solicitação mais curta sem fornecer nenhum contexto
- D) Apenas especificando quantas linhas de código haverá
Descrição: Alerta poderoso; Inclui o idioma e a versão usados, o contrato de entrada-saída, restrições de desempenho e estilo, condições de erro e a instrução 'permaneça apenas dentro do escopo solicitado'. Uma solicitação sem contexto do tipo 'escreva-me uma função' é genérica e geralmente produz código inadequado.
14. A IA gerou uma configuração para seu pipeline de CI/CD (integração/implantação contínua) e incorporou a senha do banco de dados nele em texto simples. Qual é a correção correta?
- A) Deixar a senha em texto simples porque funciona
- B) Mover segredos por meio de variável de ambiente ou ferramenta de gerenciamento de segredos, não colocando texto simples no repositório ✔
- C) Mova a senha apenas para a linha de comentários
- D) Alterar o nome do arquivo resolve o problema
Explicação: Escrever segredos como senhas e chaves em texto simples no arquivo de configuração representa o risco de vazamento do controle de versão e acesso não autorizado. Segredos; Deve ser mantido fora por variáveis de ambiente ou por um gerenciador de segredos especial, e nunca deve entrar no repositório em texto simples.