Linux Test Project(LTP)は、Linuxを使用および開発している組織が、何が機能し、何がまだ機能する必要があるかをよりよく理解できるように設計された、汎用の統合テストスイートです。これは、Linuxカーネルとglibcの動作を確認するために設計された回帰テストと適合テストで構成されています。そのツールとテストスイートは、Linuxカーネルと関連するサブシステムを検証することを目的としています。
つまり、Linuxテストプロジェクト(LTP)は、Linuxのテストと改善を目的としています。その目標は、Linux用の一連の自動テストツールを提供し、それらが実行するテストの結果を公開することです。たとえば、Red Hat Enterprise Linux(RHEL)でLTPテストを使用して、Linuxカーネルとシステムライブラリを改善します。
RHTS-LTPとは何ですか?
LTPには一貫した発達リズムがあります。テストスイートの新しい安定バージョンを4か月ごとにリリースします。アップストリームLTPのメインブランチは常に開発中です。 RHELは6か月ごとにマイナーストリームをリリースし、3年ごとにメジャーアップデートを提供します。つまり、RHELの実稼働環境には、多様で、安全で、高効率で、信頼性の高いテストスイートが必要です。このため、Red Hatは、Red Hat Test Suite-Linux Test Project(RHTS-LTP)と呼ばれるLTPの内部バージョンを維持しています。
アップストリームとRedHat間のワークフローを理解する
RHTS-LTPは単独では動作しません。これは、LTPが提供するものに基づいて構築され、パッチをアップストリームに送信します。エンジニアリングの観点から、一般的なワークフローは次のとおりです。
- ベースラインとしてアップストリームから安定したパッケージバージョンを選択します
- 最新のブランチからの新しいパッチをバックポートします。これには次のものが含まれます。
- Common Vulnerabilities and Exposures(CVE)および緊急テストケースの更新
- フレームワークまたはテストの欠陥のバグ修正
- 一般的な問題解決のためにパッチをアップストリームに送信します
- バグ修正、新しい回帰テストなど
バックポートパッチ
上流プロジェクトの観点から見た開発プロセスは、次のようになります。
ltp-full-20210121-> ltp-full-20210524-> ltp-full-20210927-> ltp-full-next
安定版のみがRHTS-LTPにダウンロードされます。したがって、ltp-full-20210927とそのパッチが内部テストで使用されます。通常、重大な一般的な問題、RHELリグレッションのバグ、またはテストフレームワーク自体を修正するパッチがバックポートされます。
[無料のオンラインコースRedHatEnterprise Linux技術概要に登録して、Linuxおよびシステム管理タスクの基本的な実践的なテクニックを学びます。 ]
LTPテストソースの安定バージョンは4か月ごとにリリースされます。一元化されたテストを実施し、いくつかの主流のLinuxディストリビューションの問題を修正した後、テストリリースバージョンに最新の日付のタグが付けられます。次に、プロジェクトメンテナによって圧縮されたtarballとしてアップロードされ、ユーザーはLTPGitHubからダウンロードできます。
RHTS-LTPが最終ステップで構築される前に、RHEL環境または特定のテストハードウェアシステムに適合するように、いくつかの内部構成(重要なパラメーター、ファームウェアなど)が適用されます。その後、LTPバイナリを構築するために多くのRHELのみのパッチが適用されます。
既知の問題のトリアージ
テストのポイントはエラーを特定することであり、エラーは報告された場合にのみ修正されます。 RHTS-LTPの最も重要な部分は、問題のトリアージプロセスです。これは、内部ユーザーが未知の問題から既知の問題を識別するのに役立ちます。 Red Hatは、内部LTPの既知の問題のリストを維持しているため、テストで誤検知を無視したり、誤検知の原因となったエラーを修正したりできます。
LTPの既知の問題のリストは、RHEL 5、RHEL 6、RHEL 7、RHEL 8、RHEL 9、およびアップストリームバージョンを含むビーカータスクでのLTPの互換性を確保するためのさまざまなRHELリリースに基づいています。実行中にRHTS-LTPのケースが失敗すると、既知の問題のリストがチェックされ、LTPツールに欠陥があるかどうか、またはRHELビルドに修正が必要かどうかが識別されます。
これは、特にさまざまな製品ラインのマイナーリリースとメジャーリリースをテストする内部ユーザーが問題を迅速に特定するのに間違いなく役立ちます。
RHTS-LTPのメカニズムの調査
RHTS-LTPは4つの部分で構成されています:
- 安定したLTPパッケージ
- アップストリームパッチ
- 内部構成
- 既知の問題のフィルタリング
私たちは常に最新の安定バージョンのLTPを選択し、カスタム変更を追加してRHEL専用のテストスイートを構築します。
ダイアグラム形式の完全なLTPメンテナンスプロセスは次のとおりです。
マイナー派生バージョンのサポート
RHTS-LTPは、特別な構成と既知の問題の処理に加えて、さまざまな機能チームで専用に使用するためのより派生的なテストバージョンをサポートする共有ライブラリも提供します。これらはすべて、共通のLTP安定バージョンを使用しており、同じ既知の問題がありますが、焦点は異なるコンポーネントにあります。これらには以下が含まれます:
- RHTS-Ltp-lite-test
- RHTS-Ltp-filesystem-test
- RHTS-Ltp-generic-test
- RHTS-Ltp-openposix-test
- RHTS-Ltp-git-test
LTPは、CentOS StreamテストおよびRedHatでの将来のさまざまなカーネルサポート(ark-kernel、mainline-kernel、およびcki-testingを含む)にも展開されます。ほとんどすべての新しい分岐ブランチは、これに基づいて二次開発作業を行っています。内部メンテナは、include-libraryを介して情報を交換し、効率的なトラブルシューティングを可能にするために緊密に連携します。
一緒にテストする
テストは品質保証の重要な部分であり、私たちは皆、Linuxが常に最高の品質であることを望んでいます。これにより、LTPとRHTS-LTPはLinux開発の重要な部分になります。
Linuxは単なる巨大なプロジェクトではありません。それは多様で普及しているものです。テストへの貢献はコミュニティから来ています。その貢献がパッチの形であろうと特殊な構成の形であろうと、それは上流のブランチに明確なプラスの影響を及ぼします。これは、LTPの健全な成長と、ソフトウェア開発におけるより良いテストを促進します。 CentOS Streamがこれまで以上にRHELと緊密に連携することで、コミュニティへの参加が以前よりもさらに簡単になりました。参加する方法については、LTPwikiにアクセスしてください。