◇ OpenCyber Academy
Engenharia · Capítulo 14 · Português

Capítulo 14 — Engenharia de software

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 14 — Engenharia de software

Mapa da aula

Aula 14 publicada. Mapa, exemplo, EX040.

flowchart TD
  N0["14.1 Requisitos para pipelines"]
  N1["14.2 Testando pipelines"]
  N2["14.3 Gestão de versões"]
  N3["14.4 Manutenibilidade"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX040"]

Desenho lógico

flowchart LR
  N0["14.1 Requisitos para pipelines"]
  N1["14.2 Testando pipelines"]
  N2["14.3 Gestão de versões"]
  N3["14.4 Manutenibilidade"]
  N0 --> N1 --> N2 --> N3 --> Q["EX040"]
[14.1 Requisitos para pipelines]
    |
    v
[14.2 Testando pipelines]
    |
    v
[14.3 Gestão de versões]
    |
    v
[14.4 Manutenibilidade]
    |
    v
[Exemplo resolvido] --> [Exercício EX040]

Objetivos de aprendizagem

Você vai (1) aplicar práticas de requisitos e testes a pipelines de dados; (2) gerenciar as versões da lógica de dados; (3) projetar pensando na manutenibilidade.

14.1 Requisitos para pipelines

Kofi escreve os requisitos do pipeline de dados de medidores como afirmações testáveis: toda leitura aceita tem medidor e unidade válidos; as leituras rejeitadas são relatadas com os motivos em até uma hora; os totais diários de cada distrito batem com a soma das leituras. Cada requisito tem um responsável e um teste de aceitação. Ele explica que requisitos vagos, como os dados devem ser exatos, não podem ser testados e, portanto, não se pode demonstrar que foram cumpridos nem rastrear sua falha. Os responsáveis aprovam cada teste de aceitação.

14.2 Testando pipelines

Kofi monta três camadas de testes. Os testes unitários verificam regras individuais. Os testes de integração passam um pequeno conjunto de dados sintéticos por todo o pipeline e comparam os resultados com os esperados. Os testes de dados rodam sobre os resultados de produção e verificam propriedades como contagens de linhas dentro das faixas esperadas e ausência de consumo negativo. Os testes de dados detectam um problema que os unitários não poderiam pegar: um arquivo do fornecedor chega com uma nova ordem de colunas, e as leituras caem nos campos errados até que o leitor seja atualizado. Agora uma verificação dos nomes das colunas roda primeiro.

14.3 Gestão de versões

As mudanças na lógica do pipeline seguem um processo de liberação: revisão de código, testes, uma execução em homologação sobre a réplica sintética do mês anterior e uma comparação dos resultados. Diferenças acima das tolerâncias acordadas precisam ser explicadas antes da liberação. Kofi argumenta que as versões do pipeline merecem o mesmo cuidado que o software voltado aos clientes, porque uma pequena mudança em uma regra pode alterar milhares de contas. Cada nota de versão aponta para o registro de decisão que justificou a mudança da regra. No último trimestre, duas versões foram retidas porque diferenças não explicadas excederam as tolerâncias.

14.4 Manutenibilidade

Kofi documenta o pipeline com um diagrama, um catálogo de regras e um guia de operação. Ele remove código sem uso e substitui limiares fixos no código por valores de configuração que os donos dos dados podem revisar. A Profa. Varga explica que a manutenibilidade é uma preocupação de governança: quando a pessoa que construiu um pipeline vai embora, a organização ainda precisa conseguir explicá-lo e alterá-lo. Pipelines sem manutenção viram caixas-pretas cujos resultados ninguém consegue justificar. Uma nova integrante da equipe usa o guia de operação para reexecutar uma carga com falha em sua primeira semana, sem ajuda.

Exemplo resolvido

Kofi escreve requisitos testáveis para o pipeline, monta testes unitários, de integração e de dados que detectam uma mudança na ordem das colunas, acrescenta comparações nas liberações e documenta o pipeline para facilitar a manutenção.

Caso sintético. O pipeline é sintético.

Erros e limites

Tolerâncias largas demais escondem mudanças reais; revise-as com os responsáveis.

Exercícios

Continue estudando — aula 14 (capítulo 14 de 50)

← Capítulo 13 · Índice das aulas · Capítulo 15 →

Continue para a próxima aula já escrita.