Três Bugs de Compilador C++: Uma História de Recursos Obscuros

2025-09-23
Três Bugs de Compilador C++: Uma História de Recursos Obscuros

O engenheiro sênior Michael Gibson relata a descoberta de um bug de compilador clang++ decorrente da combinação de três recursos C++ raramente usados. Ao implementar uma asserção REACHABLE em seu SDK C++, eles usaram inicialização estática, parâmetros de modelo não tipados e namespaces anônimos. No entanto, um novo pipeline de otimização no clang++ 17+ conflitou com essa combinação, levando a erros de desduplicação de símbolos. Isso destaca o risco de bugs obscuros surgindo de interações de recursos incomuns em sistemas complexos e mostra o poder dos testes automatizados na descoberta de tais problemas.

Leia mais

Jogos para testar software: como uma empresa conquistou Metroid e Mario

2025-08-24
Jogos para testar software: como uma empresa conquistou Metroid e Mario

Uma empresa utilizou jogos do Nintendo, especificamente Metroid e Super Mario Bros., para testar sua plataforma de software, Antithesis. Inicialmente, seu sistema de teste de IA ficou preso em uma porta vermelha em Metroid porque priorizava eliminar inimigos, esgotando seus mísseis. Isso os levou a desenvolver uma nova técnica de 'teste em enxame' que otimiza objetivos enquanto explora o espaço de estados, como priorizar ter mais mísseis. Isso não apenas resolveu o problema da porta vermelha, mas permitiu que o Antithesis explorasse o mundo do jogo de forma mais eficiente, descobrisse bugs e até mesmo explorasse as mecânicas do jogo para speedruns. Essa técnica não se limita a testes de jogos; é aplicável a vários cenários de testes de software, como encontrar vazamentos de memória ou anomalias de desempenho.

Leia mais
Desenvolvimento

Tornando Tudo Testável: O Desafio de Teste de GPU de Mitchell

2025-07-06
Tornando Tudo Testável: O Desafio de Teste de GPU de Mitchell

O cofundador da HashiCorp, Mitchell, enfrentou um desafio considerável ao desenvolver seu último projeto, Ghostty, um emulador de terminal renderizado por GPU: testar o código de renderização da GPU. Este artigo resume sua apresentação no BugBash, explorando como tornar o código aparentemente intestado testável. Ele destaca a falta de soluções amplamente aceitas para testes de GPU na era da IA, tornando a abordagem de Mitchell particularmente valiosa. Sua solução e o trabalho na Antithesis demonstram um compromisso em expandir os limites dos testes de software.

Leia mais
Desenvolvimento teste de GPU