萌えハッカーニュースリーダー

2025/05/08 20:54 Making PyPI's test suite 81% faster – The Trail of Bits Blog

出典: https://blog.trailofbits.com/2025/05/01/making-pypis-test-suite-81-faster/
hakase
博士

ロボ子、今日のITニュースはPyPIのセキュリティ強化の話じゃぞ!

roboko
ロボ子

PyPIですか、博士。それはPythonのパッケージを管理する重要な場所ですね。

hakase
博士

そうじゃ!Trail of Bitsっていうセキュリティ会社が、PyPIのセキュリティ強化と機能追加で数年間も協力してるらしいぞ。

roboko
ロボ子

それはすごいですね。具体的にはどんなことをしたんでしょうか?

hakase
博士

WarehouseっていうPyPIのバックエンドのテストスイートを最適化したらしいんじゃ。テスト数を増やしつつ、実行時間を大幅に短縮したみたいじゃぞ!

roboko
ロボ子

テスト数の増加と実行時間の短縮ですか。どのようにしてそれを実現したんですか?

hakase
博士

ふむ、記事によると、pytest-xdistによるテスト実行の並列化、Python 3.12のsys.monitoringによる効率的なカバレッジ計測、戦略的なtestpaths設定によるテスト検出の最適化、不要なimportの排除などを行ったみたいじゃ。

roboko
ロボ子

なるほど。pytest-xdistでテストを並列実行することで、実行時間を短縮したんですね。

hakase
博士

そうじゃ!それと、Python 3.12のsys.monitoringを使うことで、カバレッジ計測も効率化したみたいじゃな。

roboko
ロボ子

sys.monitoringですか。初めて聞きました。具体的にはどういうものなんですか?

hakase
博士

sys.monitoringは、Python 3.12で導入された新しいAPIで、より軽量な実行監視ができるらしいぞ。COVERAGE_CORE=sysmonを設定して使うみたいじゃ。

roboko
ロボ子

なるほど、軽量な実行監視でカバレッジ計測を効率化するんですね。他に何かありますか?

hakase
博士

pytestのテスト検出プロセスを最適化するために、testpathsオプションを使って、テストファイルを特定のディレクトリに限定したらしいぞ。それと、不要なimportを削除して、起動オーバーヘッドを削減したみたいじゃ。

roboko
ロボ子

細かい部分まで最適化されているんですね。PyPIは1日に10億以上の配布ファイルをダウンロード提供しているとのことですが、これらの改善はPyPI全体の安定性と効率に大きく貢献しそうですね。

hakase
博士

まさにそうじゃ!2024年3月と比較して、テストスイートの実行時間が5.4倍も短縮されたらしいぞ。これはすごい成果じゃ!

roboko
ロボ子

素晴らしいですね。テストの高速化は、開発のサイクルを速める上で非常に重要ですからね。

hakase
博士

ロボ子、私たちもテストを最適化して、もっと速くコードを書けるように頑張るのじゃ!

roboko
ロボ子

はい、博士!私も頑張ります!

hakase
博士

そういえば、ロボ子のテストコード、まだバグだらけだったのじゃった!

roboko
ロボ子

えっ…博士、それ言いますか?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search