STP の機能の詳細とテストの実行結果については、http://www.osdl.org/stp/ を参照してください。
ここでは基本的な概要を説明します。
OSDL の STP は Linux カーネルビルドをテストするためのフレームワークを提供します。Patch Lifecycle Manager を使用してパッチの作成とビルドができます。そして、STP フレームワークを使用して、選択したパフォーマンステストおよびスケーラビリティテストを実行できます。STP はカーネルパッチをロードし、指定したハードウェアプラットホーム上で選択したテストを実行します。カーネルパッチは kernel.org から取得した既存のカーネルにビルドされます。
STP フレームワークの目的は、オープンソースコミュニティに対し、カーネルの特定要素に対するインクリメンタルな変更をテストできる各種 SMP プラットホームを提供することです。そのシステム構成は変動しないため、以前のテストランとの有意な比較が可能です。
あるパッチが先行するパッチと依存関係にある場合、パッチを組み合せて追加できます。依存関係の最上位のパッチが、STP ランタイム環境のコアとして使用される起点となります。テストが選択されると、STP フレームワークのリクエストブローカは、OSDL のテストラボ内でテストランに使用可能なシステムを探します。テストリクエストは、リクエストブローカが定める優先順位に従ってキューに入ります。キューの先頭に来たテストに対し、リクエストブローカはそのハードウェア構成要件を満たす次に使用可能なシステムを探します。STP エンジンは、カーネルパッチをロードする前に、まずシステムからすべてのコードを消去します。つまり STP では、すべてのテストランごとにシステムの新規インストールが行われるようになっています。コードをすべて消去したシステムに対して、STP エンジンはスクラッチからディストリビューションをロードし、カーネルパッチを適用し、選択されたテストをシステム上に展開して実行します。テスト結果は回収され、テスタには電子メールで通知が送られます。実行の流れを次の図に示します。

STP エンジン
システムで一時点に実行されるテストは 1 つだけです。これによって、次のテストの実行前にテストシステムをクリーンな状態へ戻すことを保証し、次のテストランに影響を残さないようにすることができます。テストが完了すると、結果が取得されテストランの完了を通知する電子メールが送信されます。
テストケースの実行は、ランスクリプト(wrap.sh)によって制御されます。STP のウェブインターフェースを介してテストを選択すると、テストは選択したシステムタイプでの実行されるべくキューに入ります。システムが利用可能になると、テストはテストシステム上にロードされ wrap.sh ファイルが呼び出されます。wrap.sh はテストの実行を制御し、本質的には、テストするカーネルの機能を実行するためのあらゆるシステムオペレーションを行うことができます。wrap.sh スクリプトから他のスクリプトや実行プログムを呼び出すと有用なことがしばしばあります。履歴データを含む既存のグラフに新しいデータをプロットするレポートスクリプトなどがそれに当たります。wrap.sh 自体は、シェル、Perl、Python などどんなスクリプト言語でも記述できます。テストの実行結果は、通常、見やすい形式で出力される必要があります。そのためには、wrap.sh ファイル自体にスクリプトコードを含めるか、results.sh ファイルなどの結果データのフォーマット処理をするその他のスクリプトや実行プログラムを呼び出します。results/ ディレクトリに index.html がある場合、STP はデフォルトでそのページを表示します。これは、実行されたテストに最適なフォーマットで各種結果データを表示するのに役立ちます。
Linux カーネルの重要性が増すにつれ、メインラインに受け入れられる良いパッチを用意することは難しくなってきています。厳密なテストによる品質証明は、カーネルパッチが受け入れられることと、Linux の今後の成功、成長に不可欠です。OSDL の Scalable Test Platform は、この試みにおける鍵となるツールです。
科学的に厳密なテストの実行には、管理されたテスト環境、各種ハードウェア、そしてさまざまなシステム構成が必要なので、非常に多くの課題が伴います。広範な構成にわたって自分のパッチとその他のパッチとの有意な比較を行うこともきわめて重要です。しかし、そのようなリソースを利用できる開発者はごくわずかです。
さらに、より重要な点として、時間は限られています。大規模なテスト環境のセットアップや管理を行い、各種パッチやテストなどを追っていると、その他の問題にあてる時間などなくなってしまうでしょう。
OSDL の Scalable Test Platform と Patch Lifecycle Manager は、さまざまな SMP およびシングルプロセッサシステム上でパッチを実行するパフォーマンステストを選択するための直観的なインターフェースを提供することで、これらの重要なニーズに応えます。STP はオペレーティングシステムのインストールとテストの実行を完全に自動化し、ハードウェアは OSDL のスタッフによって提供、保守されるため、システムの構成やテストの実行などの面倒な詳細事項を意識する必要がなくなります。さらに、STP フレームワークでは新しいテストをシステムに追加できるので、カーネルの成長に伴った応用性と実用性の向上をユーザが直接実現することができます。
Patch Lifecycle Manager を併用することで、ほとんどすべてのカスタムカーネルのコンパイルとテストが可能です。また、STP フレームワークはどんなテスト設備にも依存しないため、オープンソースコミュニティのニーズの変化に合わせて柔軟に対応でき、Linux カーネルの品質を高めるのに役立ちます。
|