Estudo de caso
NetCheck
Ferramenta de linha de comando que diagnostica DNS, conexão TCP e certificado TLS de um ou mais domínios.
Tecnologias
- Python
- socket
- ssl
- unittest
- ruff
- GitHub Actions
Contexto
O NetCheck nasceu para responder uma pergunta de suporte: a falha de acesso vem da resolução de nomes, da conexão com a porta ou do certificado? Evoluiu para aceitar várias portas e domínios, medir latência com várias tentativas e gerar relatório em texto ou JSON.
Decisões
01Somente a biblioteca padrão
Usa socket, ssl, argparse e statistics, sem dependências externas, e pode ser instalado como o comando netcheck.
02Saída para pessoas e para scripts
Relatório em texto, opção --json e códigos de saída 0 (tudo certo), 1 (falha de DNS, conexão ou certificado) e 2 (entrada inválida).
03Testes sem rede, e teste real à parte
Os testes automatizados usam mocks. Em testes manuais contra a rede, o NetCheck detectou o certificado expirado de expired.badssl.com.
04Um defeito achado no teste real
Com -p 80,443, o TLS era verificado na porta 80. Passou a preferir a 443 quando ela está na lista, com um teste para isso.
Resultados
- Testes automatizados
- 29
- Cobertura de linhas (medida localmente)
- 87%
- CI
- ruff + Python 3.10 a 3.13
O que ainda falta
- Resolve apenas IPv4.
- Não faz ping ICMP, traceroute nem varredura de portas.