3つのC++コンパイラバグ:隠れた機能の物語

2025-09-23
3つのC++コンパイラバグ:隠れた機能の物語

シニアエンジニアのMichael Gibsonは、めったに使われない3つのC++機能の組み合わせから生じたclang++コンパイラバグを発見した経緯を語っています。C++ SDKでREACHABLEアサーションを実装する際に、静的初期化、非型テンプレートパラメータ、匿名名前空間を使用しました。しかし、clang++ 17以降の新しい最適化パイプラインがこの組み合わせと衝突し、シンボルの重複除去エラーが発生しました。これは、複雑なシステムにおける珍しい機能の相互作用から生じる、隠れたバグのリスクを浮き彫りにし、このような問題を発見する際の自動テストの威力を示しています。

続きを読む
開発

ゲームでソフトウェアをテスト?ある企業がメトロイドとマリオで成功

2025-08-24
ゲームでソフトウェアをテスト?ある企業がメトロイドとマリオで成功

ある企業が、任天堂のゲーム、特にメトロイドとスーパーマリオブラザーズを使って、自社のソフトウェアプラットフォームAntithesisをテストしました。当初、AIテストシステムはメトロイドの赤いドアで行き詰まりました。敵を倒すことを優先したため、ミサイルを使い果たしてしまったのです。そこで、状態空間を探査しながら目的を最適化する新しい「群テスト」技術を開発しました。例えば、より多くのミサイルを持つことを優先するといった具合です。これにより、赤いドアの問題が解決されただけでなく、Antithesisはゲームの世界をより効率的に探査し、バグを発見し、スピードランのためにゲームのメカニズムを利用することさえ可能になりました。この技術はゲームテストのみに限定されず、メモリリークやパフォーマンス異常の発見など、さまざまなソフトウェアテストシナリオに適用できます。

続きを読む
開発

すべてをテスト可能にする:ミッチェルのGPUテストの課題

2025-07-06
すべてをテスト可能にする:ミッチェルのGPUテストの課題

HashiCorpの共同設立者であるミッチェルは、最新のプロジェクトであるGPUレンダリングターミナルエミュレーターGhosttyの開発中に、大きな課題に直面しました。それはGPUレンダリングコードのテストです。この記事では、BugBashでの彼のプレゼンテーションをまとめ、一見テスト不可能なコードをどのようにテスト可能にするかを探っています。AI時代のGPUテストに対する広く受け入れられたソリューションの不足を強調し、ミッチェルのアプローチの価値を高めています。彼の解決策とAntithesisでの取り組みは、ソフトウェアテストの限界を押し広げるというコミットメントを示しています。

続きを読む
開発 GPUテスト