RSS トレイル・オブ・ビッツ ブログ
フォロー
薬剤時代の突然変異検査
コードカバレッジは危険な指標です。なぜなら、それは実行を測定するだけで、検証を測定しないため、テストされていない重要な機能が隠されてしまう可能性があるからです。ミューテーションテストは、意図的にバグを導入してテストがそれらを検出できるかを確認することで、テストされていないコードにフラグを立てることでこの問題に対処します。歴史的に、ミューテーションテストツールは遅く、言語固有であったため、特にブロックチェーンでの採用を妨げていました。正規表現を使用したUniversalmutatorは普及しましたが、複数行のステートメントや非効率的なミュータントの優先順位付けには限界がありました。Slither-mutateは、ミュータントの優先順位付けとよりクリーンなテストサイクルにより速度を向上させましたが、Solidity固有のままでした。
新しいツールであるMuTONとmewtは、これらの課題を克服することを目指しています。MuTONは、tree-sitterパーサーを利用して言語の理解を深め、複数行のステートメントを処理することで、TONブロックチェーン言語のファーストクラスサポートを提供します。Mewtは、Solidity、Rust、Goもサポートする言語に依存しないコアとして機能します。どちらのツールも結果をSQLiteデータベースに保存し、永続性と柔軟なフィルタリングを可能にします。AIエージェントは、専門的なスキルを使用してキャンペーンを効率的に構成し、結果をトリアージできるようになりました。
今後の開発は、要件をエンコードするAI主導のテスト生成に焦点を当てており、バグ検出だけでなく、要件をエンコードします。目標は、AIエージェントに懐疑心を植え付け、堅牢なテストスイートのために外部検証を要求することです。ユーザーはMuTONとmewtをインストールし、オープンソースプロジェクトに貢献し、ミューテーションテストを合理化する新しいAIスキルに注目することが奨励されています。これらの進歩は、ミューテーションテストをソフトウェア開発のより日常的で効果的な部分に変えることを約束します。