このページを共有

# テストフレームワークでの自動テスト実行のトリガー

このトピックでは、ALM Octaneをテストフレームワークと統合する方法について説明します。次に、ALM Octaneのテストフレームワークから自動テストを選択し、テストスイートのコンテキストで実行できます。

このトピックの内容:

## テストフレームワーク統合の概要

この統合により、ALM Octaneは、CIサーバーを介してテストフレームワークでテストを実行できます。

これは、多くのシナリオで役立ちます。たとえば、CIサーバーが自動化された夜間テストを実行し、ALM Octaneパイプラインが特定のテストが失敗したことを示しているとします。修正をプッシュした後、時間がかかる可能性のある完全なパイプラインを実行するのではなく、ALM Octaneから直接特定のテストを実行できます。

ALM Octane-テストフレームワークの統合には、次の手順が含まれます。

1. CIサーバーでジョブを作成。統合をセットアップするには、CIサーバーでジョブを作成して、テストフレームワークでテストを実行します。

2. ALM Octaneでテストランナーを作成。ALM Octane設定で、CIサーバー上のこのジョブに対応するテストランナーエンティティを作成します。

3. テストの実行。ALM Octaneで、テストフレームワークで実行するテストを含むテストスイートを作成し、スイートを実行します。ALM Octaneは、CIサーバーのジョブを介してテストの実行をトリガーします。

4. リリースおよびプロダクトの品質の分析: バックログ、品質、およびダッシュボードの各モジュールで、全体データの一部としてのテスト結果を追跡します。

トップに戻る

## 前提条件

1. CIサーバーをALM Octaneに接続する必要があります。詳細については、CIサーバーのセットアップを参照してください。

2. ALM Octane内に、CIサーバーを介してテストフレームワークからテストを注入するパイプラインを作成します。詳細については、パイプラインの作成と設定を参照してください。

3. すぐに使用できるこの統合は、Maven、Protractor、GradleでのJUnitやTestNGテストなどのさまざまなフレームワークをサポートします。すぐに使用できるオプションの完全なリストは、プラグインのドキュメントに記載されています。

   Jenkinsプラグインバージョン5.9以降を使用すると、以下で説明するように、カスタムオプションを使用して、追加のフレームワークで自動実行をトリガーできます。

   テストフレームワークまたはCIサーバーを追加するには、ALM Octaneサポートにお問い合わせください。

トップに戻る

## ステップ1: CIサーバーでジョブを作成して、テストフレームワークでテストを実行します

1. CIサーバーで、テストフレームワークで特定のテストを実行するジョブを作成します。

2. フレームワークでテストを実行するコマンドに加えて、このジョブにはtestsToRunパラメーターが含まれている必要があります。testsToRunパラメーターは、ジョブが実行されるALM Octaneからテストのリストを受け取ります。

   testsToRunには、各テストの次のテストの詳細が含まれています。

   - パッケージ

   - クラス名

   - テスト名

   - 実行ID

   - 外部テストID (オプション)

   - テスト実行パラメーターフィールドからのカスタムパラメーター

   testsToRun値には、テキストとJSONの2つの形式があります。

   テキスト形式:

   この形式は、key=valueの形式でテストの詳細に合格します。各セットはパイプ記号 (|) で区切られ、異なるテストはセミコロン (;) で区切られます。

   最初の3つの詳細は事前定義されており、値はパッケージ名|クラス名|テスト名です。

   例 :

       v1:com.simple.tests|AppTest|testAppB|externalTestId=bbb|runId=1081|param1=value1|param2=value2;com.simple.tests|AppTest|testAppA|externalTestId=aaa|runId=1082

   JSON形式:

   テキスト形式は文字を使用します| ;および=特殊文字として。テストの詳細にこれらの文字が含まれている可能性がある場合、CIサーバー側での解析でエラーが発生します。この場合、JSON形式に切り替える必要があります。これは、サイト/スペースパラメーターTESTS_TO_RUN_PARAMETER_JSON_FORMAT = trueを定義することで実行できます。

   JSON形式の例:

       {
           "version": "v2",
           "testsToRun": [{
                   "packageName": "com.simple.tests",
                   "className": "AppTest",
                   "testName": "testAppB",
                   "parameters": {
                       "externalTestId": "bbb",
                       "runId": "1077",
                       "param1": "value1",
                       "param2": "value2"
                   }
               }, {
                   "packageName": "com.simple.tests",
                   "className": "AppTest",
                   "testName": "testAppC",
                   "parameters": {
                       "externalTestId": "ccc",
                       "runId": "1078"
                   }
               }
           ]
       }

   カスタムパラメーターを定義するには、テストの実行時にカスタム実行パラメーターを使用するを参照してください。

   次に、このパラメーターの内容を、テストフレームワークで使用できる構文に変換する必要があります。

3. (オプション)testToRunパラメーターに加えて、ジョブはALM Octaneから追加のパラメーターを受け取ることができます。希望する名前のパラメーターをジョブに追加します。可能な値:

   - suiteId

   - suiteRunId

   - octaneWorkspaceId

   - octaneSpaceId

   - octaneEnvironment

     注: このパラメーターは、特定のテストランナーに関連するすべての実行が同じ環境定義を共有している場合にのみ受信されます。

4. 最後のステップで、testToRunの生データを関連するフレームワーク形式に変換します。

   Team City

   Team Cityを使用している場合は、Testing_frameworkというパラメーターを追加し、mvnSurefire(JUnitの場合)、protractorまたはgradleのいずれかの値を入力します。

   Gherkinを使用するTeam Cityについては、Gherkinテスト結果をTeam Cityで公開するを参照してください。

   JenkinsまたはBamboo

   JenkinsまたはBambooを使用している場合は、Micro Focus ALM Octane テストフレームワークコンバータービルドステップ/タスクをジョブに追加します。

   これにより、testToRunの生データが関連するフレームワーク形式に変換されます。これを支援するために、Jenkinsプラグインバージョン5.5.2以降またはBambooプラグインバージョン1.6以降でMicro Focus ALM Octaneテストフレームワークコンバーターを使用できます。

   コンバーターはtestsToRunConvertedパラメーターを作成し、それをテストの実行に使用します。したがって、コンバータステップがテスト実行ステップの前に実行されることを確認してください。

   カスタムテストフレームワーク

   Jenkinsプラグインバージョン5.9以降またはBambooプラグインバージョン1.10.2以降を使用している場合は、一般的なテストフレームワークを使用して、JenkinsまたはBambooで変換形式を次のように定義できます。

   1. Micro Focus ALM Octane テストフレームワークコンバータービルドステップ/タスクで、Customを選択します。
   2. カスタム変換形式フィールドで、テストをraw形式からテストフレームワークの形式に変換する方法を説明します。
   3. 変換後、結果はtestsToRunConvertedパラメーターに挿入されます。

   このフィールドの右下の領域にあるドロップダウンを使用して、サンプル構成を含むテンプレートを表示できます。次に、テストフレームワークの構文に従ってこのテンプレートテキストを変更する必要があります。

   詳しくは、フィールドのヘルプボタンをご覧ください。

トップに戻る

## testsToRunConvertedの使用例

以下は、JenkinsでtestsToRunConvertedを使用する方法の例です。
JenkinsとMaven Surefire

- Windowsバッチビルドステップ: `mvn clean -Dtest =%testsToRunConverted%test`

- Linuxシェルビルドステップ: `mvn clean -Dtest=$testsToRunConverted test`

- WorkflowJob (Windows): `bat'mvn clean -Dtest=${params.testsToRunConverted}test '`

- WorkflowJob (Linux): `sh'mvn clean -Dtest=${params.testsToRunConverted}test '`

Jenkins with Maven Failsafe

- Windowsバッチビルドステップ:`mvn clean -Dit.test =%testsToRunConverted%verify`

- Linuxシェルビルドステップ: `mvn clean -Dit.test=$testsToRunConverted verify`

- WorkflowJob (Windows): `bat'mvn clean -Dit.test=${params.testsToRunConverted}verify '`

- WorkflowJob (Linux): `sh'mvn clean -Dit.test=${params.testsToRunConverted}verify '`

Jenkins with Protractor

- Windowsバッチビルドステップ: `protractor conf.js --grep="%testsToRunConverted%"`

- Linuxシェルビルドステップ:`protractor conf.js --grep="$testsToRunConverted"`

- WorkflowJob (Windows): `bat(/protractor conf.js --grep="${params.testsToRunConverted}"/)`

- WorkflowJob (Linux): `sh(/protractor conf.js --grep="${params.testsToRunConverted}"/)`

Jenkins with Gradle

- Windowsバッチビルドステップ: `gradleテスト%testsToRunConverted%`

- Linuxシェルビルドステップ: `gradleテスト$testsToRunConverted`

- WorkflowJob (Windows): `bat'gradle test ${params.testsToRunConverted}'`

- WorkflowJob (Linux): `sh'gradle test ${params.testsToRunConverted}'`

Jenkins with Cucumber-JVMover Maven

- `mvn clean -Dcucumber.options =%testsToRunConverted%test`

JenkinsとJBehave over Maven

- Windowsバッチビルドステップ: `mvn clean -Dfeatures="%testsToRunConverted%"テスト`

- Linuxシェルビルドステップ: `mvn clean -Dfeatures="$testsToRunConverted"テスト`

- パイプライン: `bat(/mvn clean -Dfeatures="${testsToRunConverted}"test/)`

以下は、Bambooでbamboo_testsToRunConvertedを使用する方法の例です。
Bamboo with Maven Surefire

- Windowsバッチビルドステップ: `mvn clean -Dtest =%bamboo_testsToRunConverted%test`

- Linuxシェルビルドステップ: `mvn clean -Dtest=$bamboo_testsToRunConvertedテスト`

Bamboo with Maven Failsafe

- Windowsバッチビルドステップ:`mvn clean -Dit.test =%bamboo_testsToRunConverted%verify`

- Linuxシェルビルドステップ: `mvn clean -Dit.test=$bamboo_testsToRunConverted検証`

Bamboo with Protractor

- Windowsバッチビルドステップ: `protractor conf.js --grep="%bamboo_testsToRunConverted%"`

- Linuxシェルビルドステップ: `protractor conf.js --grep="$bamboo_testsToRunConverted"`

Bamboo with Gradle

- Windowsバッチビルドステップ: `gradleテスト%bamboo_testsToRunConverted%`

- Linuxシェルビルドステップ: `gradleテスト$bamboo_testsToRunConverted`

トップに戻る

## ステップ2: ALM Octaneでテストランナーを作成します

1. ALM Octaneで、[設定] > [スペース] をクリックしてワークスペースを選択します。

2. [DevOps] > [テストランナー] タブを選択します。

3. +テストランナーをクリックします。

4. JUnit Runnerなど、テストランナーの名前を定義します。

5. JUnitなどのテストフレームワークを選択します。

6. CIサーバーを選択します。

7. CIサーバーで作成したジョブを選択して、テストフレームワークでテストを実行します。リストには、testsToRunパラメーターを持つジョブが表示されます。

8. [保存] をクリックします。ALM Octaneは、テストを実行するジョブをトリガーするテストランナーを作成します。

上記の手順を繰り返して、追加のテストランナーを作成します。

注: 各ジョブは、1人のテストランナーにのみ使用できます。

トップに戻る

## ステップ3: ALM Octaneからテストを実行します

品質モジュールのテストにテストランナーを割り当てます。次に、テストをテストスイートに追加し、ALM Octaneから実行できます。

ALM Octaneは、テストランナーで指定されたCIサーバーのジョブを介してテスト実行をトリガーします。スイートにテストを追加した後、スイートでのテスト用に別のテストランナーを選択できます。さらに、スイートを計画した後、テスト実行用に別のテストランナーを選択できます。

スイートには、複数のテストランナーを使用した自動テストを含めることができます。スイートに手動テストと自動テストの両方が含まれている場合、手動テストの実行中に自動テストがバックグラウンドで実行されます。

テストを実行すると、テストランナーがCIサーバーでテストの実行を開始するまで、ALM Octaneでのステータスは計画済みになります。テスト結果がALM Octaneに返されるまで、テストのステータスは進行中に変わります。

トップに戻る

## テストランナーの管理

テストをテストランナーに関連付けた後、後の段階で変更を加えることができます。

たとえば、CIサーバーまたはテストランナーの関連ジョブを削除し、テストとテストランナーの間の関連付けを維持したいとします。この場合、DevOps > テストランナー内でテストランナーを編集し、このテストランナーに関連付けられたテストに別のCIサーバーまたはジョブを指定します。

同様に、ALM OctaneでCIサーバーを削除しても、このCIサーバーに関連付けられているテストランナーは削除されず、そのテストはテストランナーに関連付けられたままになります。ただし、テストランナーに関連付けられているテストを実行することはできません。

トップに戻る

## テストランナージョブでのパラメーターセットの使用

CIサーバージョブがパラメーター化されている場合は、テストランナーを使用してテストを実行するときに使用できるさまざまなパラメーター値のセットを定義できます。各テストランナーは、パラメーター値の複数のセットを持つことができます。

たとえば、あるデプロイ済み環境で1つのテストスイートを実行し、別の環境で別のテストスイートを実行するとします。標準設定のURLとポートを使用して1つのパラメーターセット (セット1) を作成し、別のURLとポートを使用して別のパラメーターセット (セット2) を作成できます。その後、異なる設定を使用して同じスイートを数回実行できます。

テストランナーでパラメーターを設定するには:

1. テストランナーを作成するときは、テストを実行するジョブを選択します。このジョブがパラメーター化されている場合、CIサーバーで設定されたパラメーターとその標準設定値を示す表が表示されます。

2. カラム見出しにカラムを追加して、パラメーター値の追加セットを定義します。

3. 必要に応じて、各カラム見出しの名前を変更できます。

4. 必要に応じて、パラメーターの各セットのパラメーター値を編集できます。

5. カラムを削除するか、標準設定値に戻すには、カラムの右上隅にある関連するメニュー項目を選択します。

6. [保存] をクリックします。

注:

- ALM Octaneは現在、ブール値と文字列のパラメーターのみをサポートしています。パラメーターに値が含まれていないか、値が正しくない場合 (たとえば、パラメーターがブール値であるが、入力された値が文字列である場合)、テスト実行中にスキップされます。

- UFT Oneテストランナーのパラメーターはサポートされていません。

テストの実行時にパラメーターを選択するには:

テストが計画状態のときにスイート実行を実行するためのパラメーターセットを定義します。特定のランナーを使用するすべてのテストは、選択したパラメーター値を使用して実行されます。

1. 自動テストを備えたテストスイートで、スイート計画 > スイート実行 > 実行を選択します。

2. テストランナータブで、テストランナーの [設定] アイコンを選択します。

3. このテストランナー用に定義されているパラメーターセットのドロップダウンリストから、テスト実行で使用するセットを選択します。

   テストランナーのパラメーターフィールドを実行グリッドに追加して、このスイートの実行用に選択されたパラメーターセットを確認できます。

4. テストスイートを実行します。

   テストスイートは、選択した1つ以上のパラメーター値のセットを使用して実行されます。

トップに戻る

## テストを実行するときにカスタム実行パラメーターを使用する

テストフレームワークを使用してスイートの実行を計画する場合、テストツールで使用されるカスタムパラメーターのセットを1つ以上指定できます。

カスタム実行パラメーターは、Jenkinsプラグインバージョン6.3以降でサポートされています。

カスタム実行パラメーターを定義するには:

1. テストスイートの計画タブで、テスト実行パラメーターフィールドを追加します。

2. <key>=<value>の形式を使用して1つ以上の項目を入力します

3. セミコロン (;) または改行を使用して、パラメーターを区切ります。

4. UFT Oneテスト (Jenkinsプラグイン6.5以降を使用) のパラメーターを定義するには、<key>= (<type-optional>)<value>の形式を使用します。タイプはオプションのフィールドです。サポートされているタイプは、String、Number、Boolean、Date、Anyです。

このフィールドの値は、パラメーターを抽出するために解析されます。有効な値は、テスト実行のために、testsToRunパラメーターでCIサーバージョブに渡されます。

UFT Oneテストのパラメーターの反復を定義するには:

この機能は、UFT Oneの反復モデルを使用します。詳細については、IterationModeプロパティを参照してください。

次の手順は、UFT Oneテストのデータテーブルにいくつかのパラメーターセットがすでに定義されていることを前提としています。

1. テストスイートの計画タブで、テスト実行パラメーターフィールドを追加します。

2. UFTOneテストのテスト実行パラメーターに次のいずれかを入力します。

   - 反復の範囲を実行するには、次のように入力します:`iterations=rngIterations,<start of range>,<end of range>`

     たとえば、反復1～5を実行するには、`iterations=rngIterations,1,5`と入力します。

   - すべての反復を実行するには、次のように入力します。`iterations=rngAll;`

   - 最初の反復のみを実行するには (標準設定)、次のように入力します。`iterations=oneIteration`

トップに戻る

## スイートの実行で自動テストを停止する

注: このフィーチャーは現在、JenkinsとBambooのテストランナーでサポートされています。

自動テストを使用してテストスイートを実行している場合は、スイートが完了する前にテストスイートを停止できます。

スイート実行でのすべてのテスト実行を停止するには:

1. テストスイートのスイート実行タブで、停止するスイートの実行を選択します。(一度に停止できるスイートの実行は1つだけです。)

2. スイート実行グリッドまたはスイート実行の詳細ビューで、スイートの実行の停止をクリックします。

   現在実行中のすべての自動テスト実行は停止します。

3. 停止した実行のステータスはスキップ済みに設定されます。スイートの下のすべての実行がスキップされた場合、スイートの実行のステータスもスキップに設定されます。

注: スイートの実行の停止ボタンは、スイートの実行で少なくとも1つの自動実行があり、テストスイートを実行する権限がある場合にのみ使用できます。

スイートの実行中に特定のテストランナーを停止するには:

1. テストスイートのスイート実行タブで、停止する特定のスイートの実行を選択します。

2. スイートの実行内で、実行タブを選択します。

3. テストランナーペイン (画面の右側) で、アクティビティを停止する各テストランナーで、停止をクリックします。

   これにより、テストランナーの実行の特定のインスタンスが停止するため、このランナーのインスタンスに関連するテストの実行が停止します。ビューを更新すると、関連するテスト実行のステータスがスキップに変わります。

トップに戻る

## 自動テストの再実行

自動実行でテストスイートを実行し、それを再度実行したい場合 (たとえば、テストが失敗した場合) 、新しいスイート実行を作成せずに再実行できます。

注: 再実行は、前の実行が終了した後にのみ可能です。

テストスイート全体を再実行するには:

方法1

1. テストのリスト (TSアイコン) からテストスイートを開き、スイート実行タブを選択します。このページには、スイートの実行のリストが表示されます (SRアイコン)。
2. リストで、1つのスイート実行の横にあるチェックボックスを選択します。

3. 実行をクリックします。ALM Octaneは、以前の結果が上書きされることを警告します。

   テストスイートに含まれるすべての自動テストは、統合サーバーで実行を開始します。

方法2

または、スイート実行詳細タブからテストスイートを再実行することもできます。

1. テストのリスト (TSアイコン) からテストスイートを開き、スイート実行タブを選択します。このページには、スイートの実行のリストが表示されます (SRアイコン)。
2. リストで、スイート実行のIDをクリックします。スイートの実行 (SRアイコン)詳細タブが開きます。
3. 実行をクリックします。ALM Octaneは、以前の結果が上書きされることを警告します。

テストスイートの特定の実行を再実行するには:

1. テストのリスト (TSアイコン) からテストスイートを開き、スイート実行タブを選択します。このページには、スイートの実行のリストが表示されます (SRアイコン)。
2. リストで、スイート実行のIDをクリックします。スイート実行詳細タブが開きます。
3. 実行タブを選択して、このテストスイートの実行のビューを表示します。
4. 1つ以上の実行を選択します。
5. 実行をクリックします。ALM Octaneは、選択した実行を再実行します。

トップに戻る

## テストランナーごとの自動テストを管理する

右側のペインのテストランナータブを使用して、特定のテストランナーテストの実行を個別に管理できます。

テストランナータブから、個々のテストランナーに対して次の操作を実行できます。

- 実行。選択したテストランナーに関連付けられているテストの初期実行を実行します。
- 再実行。選択したテストランナーに関連付けられているテストの自動実行を再実行します。
- 停止。現在実行中または実行キューにある自動実行を中止します。

次の表に、各操作が適用されるテストのステータスを示します。

操作 | テストステータス
--- | ---
実行 | 計画済み
停止 | 初期化
停止 | ランニング
再実行 | 完了
再実行 | 中止
再実行 | 失敗

注: 右側のペインでテストランナーをクリックすると、 Octaneは、そのテストランナーについて、左側のペインにリストされている実行を自動的にフィルタリングします。

トップに戻る

## Cucumber-JVM over Mavenを使用してGherkinテストを実行します

Cucumber-JVM over Mavenを使用して、JenkinsでGherkinテストを実行できます。Gherkinテストを実行すると、すべてのシナリオを含む完全なフィーチャーファイルが実行されます。

これは、Jenkinsプラグインバージョン6.2以降でサポートされています。

前提条件: テストランナーメカニズムを使用してJenkinsでGherkinテストを実行できるようにするには、最初にGherkinテストを自動化し、パイプラインから実行する必要があります。詳細については、自動化のためのGherkinテストの準備を参照してください。

Cucumberのテストランナーを作成するには:

1. 上記のように、Jenkinsでジョブを作成し、ALM OctaneでCucumberテストランナーを設定します。

2. Gherkinスイートを作成します。

   パイプラインからのテスト、およびOctaneで作成したテストを含めることができます。

   注意: テストを手動で実行し、テストランナーを使用して自動化すると、過去の実行カラムの手動実行の履歴が上書きされます。自動実行の履歴に置き換えられます。

3. テストランナーカラムで、作成したテストランナーを選択します。

4. 実行モードカラムで、各テストを手動で実行するか自動で実行するかを指定します。標準設定は、通常の手動テストと同様に手動です。自動テストはテストランナーを使用します。

   このカラムは、他のタイプのテストには関係ありません。

5. スイートを実行します。

   スイート実行 > 実行タブの右側のペインには、自動テストを実行しているテストランナーの詳細が表示されます。

6. 自動として定義していないテストを手動で実行します。

   ヒント: 手動テストを作成し、コードをコピーしてIDEで実行した場合、このテストフレームワークを使用して、ALM Octaneからテストを実行できます。

トップに戻る

## JBehaveを使用したGherkinテストの実行

テストフレームワークを使用してALM OctaneからJBehaveテストを実行するには、エンベッダーが実行するフィーチャーファイルを示すパラメーターを受信できる必要があります。

1. プロジェクトのoctane-jbehave-gherkin-reporterの設定の説明に従って、OctaneGherkinReporterをレポーターとして実行中の設定に追加します。

2. エンベッダーで、次のようにstoryPathsをオーバーライドします。

        @Override
        protected List<String> storyPaths() {
            String include = "**/*.feature";
            String featuresProperty = System.getProperty("features"); // -Dfeatures
            if (featuresProperty != null) {
                include = featuresProperty;
            }
            return new StoryFinder().findPaths(
                codeLocationFromClass(embeddableClass),include,"");
            }

3. 上記のセクションCucumber-JVM over Mavenを使用してGherkinテストを実行するで、テストランナーメカニズムを実装します。

   JBehaveテストランナーを使用してテストを実行します。Jenkinsテストランナー構文の例については、testsToRunConvertedの使用例を参照してください。

トップに戻る

## Gherkinテスト結果をTeam Cityに公開する

Team CityでGherkinテスト結果を公開するには、次の手順を実行します。

1. プロジェクト設定で、Gherkin結果へのアーティファクトパスを定義します。次に例を示します。

       gherkin-results/*_OctaneGherkinResults.xml=>gherkin

   上記の例では、Team Cityはアーティファクトディレクトリにgherkinフォルダーを作成し、パターンgherkin-results/*_OctaneGherkinResults.xmlに一致するすべてのファイルをそのフォルダーに移動します。

2. 手順1で使用したフォルダーの値 (この場合はgherkin) を使用して、構成パラメーターgherkin_artifact_folder_for_octaneを追加します。

3. テストランナーでは、以下を使用します。

   - Mavenコマンド: `clean test "-Dcucumber.options=%testsToRun%"`

   - Parameter: `Testing_framework : cucumber_jvm`

トップに戻る

次のステップ

- Octaneからの自動テストの実行
- 自動テスト実行結果の分析

https://admhelp.microfocus.com ALM Octane 8942
検索結果を改善するためのヒント... ALM Octaneヘルプセンター ALM Octaneヘルプ 15.1.90 すべて ローカルヘルプセンターを表示 オンラインヘルプセンターを表示 戻る ブラウザーの履歴内を戻る 進む ブラウザーの履歴内を進む 検索のハイライトを削除する 次のトピック 次のトピックに進む 前のトピック 前のトピックに戻る 現在のトピックを印刷 バージョン: