このセクションでは、Parasoft Test 製品を構成して、作成者を算定してチーム全体に品質タスクを割り当てる方法を説明します。
このセクションの内容:
通常、1 つの開発プロジェクトには SDLC 全体を通じて数多くのチーム メンバーが参加します。アプリケーション ロジックの開発者や Web インターフェイスの開発者から、エンド ツー エンド プロセスとトランザクションをテストする QA まで、チーム メンバーの構成はさまざまです。
レビュー ワークフローの自動化、静的解析、単体テスト、実行時エラー検出、SOA ポリシーの推進、個々の SOA コンポーネントの機能テスト、そしてエンド ツー エンド テスト シナリオと多岐にわたるテクノロジーによって、Parasoft Test 製品はさまざまなチーム メンバーのための品質タスクを生成します。これらの品質タスクは適切なチーム メンバーに割り当てることができ、手動による割り当てだけでなく、自動検出された作成者データに基づいて割り当てることもできます。
品質タスクの割り当ては、次の目的で行われます。
開発者の場合、コードの作成者データは、テストするデータの量に影響するほか、各開発者の [品質タスク] ビューに表示されるテスト結果に影響します。
テスト コンフィギュレーションの [スコープ] 設定を変更することで、指定の期間または指定の日付の後に作成/変更されたファイル/行だけをテストするよう、テスト範囲を指定することができます。さらに、[ユーザーが作成したファイル/行だけをテスト] オプションを有効にした場合、[品質タスク] ビューには自分が作成したコードからのタスクと自分に割り当てられたタスクだけが表示されます。
QA の場合、Parasoft Test はソース管理データに基づいてさまざまな方法でタスクを割り当てることができます。
Parasoft Test 環境のプロジェクトにソース ファイルを追加した場合、そのソース ファイルの最終更新についての情報だけでなく、そのソース ファイルの特定の行に割り当てられたチーム メンバーを参照できます。
なお、ソース管理システムのデータを使って作成者を算出していない場合、選択した行に対する情報ではなく、ファイルの変更情報が表示されます。 |
Parasoft Test は、サポートするソース管理システムのデータ、@author Javadoc タグ、xml マッピング ファイル (ファイルと作成者の直接マッピング)、および現行のローカル ユーザーに基づいて「作成者」を割り当てることができます。
複数のソースを使って作成者を判定する場合、作成者の優先順位は、[設定] ウィンドウの [スコープと作成者] の設定に従って上から下へ判定されます ( ソース管理システムのリスト、@author タグ、xml マッピング ファイル、最後に現行ユーザー)。ただし、選択したオプションが作成者を判定できない場合 (例えば @author タグが選択されたがファイルには @author タグがない場合)、Parasoft Test は選択された次のオプションに基づいて作成者を判定します。それでも作成者を判定できなかった 場合、ユーザーは "unknown" として設定されます。さらに、どのオプションも選択されていない場合にもユーザーは "unknown" として設定されます。
ソース管理データと @author タグの両方を作成者の算定に使用している場合、可能なかぎりソース管理データが使用され、 @author はソース管理されていないファイルとプロジェクトに対してだけ使用されます。
現行ローカル ユーザーを算定に使用している場合、ローカル ユーザーが作成者と見なされ、ローカルの時刻が最終修正時刻と見なされます。
作成者とタスクは次のように割り当てられます。
ソース コードの特定行に割り当てられた作成者を参照するには、次の操作を行います。
ソース管理システムのデータを使って作成者を算定していない場合、選択された特定の行ではなくファイルについての変更情報メッセージが表示されます。 |
作成者の算定の設定は、次の 2 つの方法で指定できます。
GUI で作成者の算定方法を変更するには、次の操作を行います。
ローカル設定で作成者を設定する方法については、「ローカル設定の指定」を参照してください。
作成者を自動的に算定するのではなく、どの作成者をどのファイルの担当にするかを直接指定したい場合、ファイルと作成者とのマッピングを指定できます。「チーム間での SOAtest の構成」の説明にある自動構成プロセスによって、このマッピングをいったん自動的に構成した後にチーム全体で共有できます。
特定のファイルまたはファイル セットをどのように割り当てるかを直接指定するには、以下の操作を行います。
src/**/Test* - src ディレクトリにあり、名前が "Test" で開始するすべてのファイル (例えば src/some/other/dir/TestFile.c ) を割り当てます。
最も一般的なパスをマッピングの最後に置いてください。例えば次の例では、/ATM/** が最も一般的なパスであるため、最後に置かれています。 /ATM/other/** user 2 /ATM/** user 3 この例では、unittests のファイルが user 1 に、other のファイルが user 2 に、そしてその他のすべての ATM プロジェクト ファイルが user 3 に割り当てられます。もしこの順序を逆にすると、ATM のすべてのファイルが user 3 に割り当てられます。 |
別の方法として、エクスポートされた XML ファイルを使用するよう、次のいずれかの方法で Parasoft Test を設定できます。
次のコードは、XML 作成者マッピング ファイルの例です。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE authorship (View Source for full doctype...)> <authorship> <!-- assigns all files named: "foo/src/SomeClass.java" to "author1" --> <file author="author1" path="foo/src/SomeClass.java" /> <!-- assigns all files whose names starts with any character (except /) and ends with "oo/ src/SomeClass.cs" to "author2" --> <file author="author2" path="?oo/src/SomeClass.cs" /> <!-- assigns all *.c files in any directory to "author3" --> <file author="author3" path="**.c" /> <!-- assigns every file whose path has a folder named "src" to "author4" --> <file author="author4" path="**/src/**" /> <!-- assigns all files located in directory "src" to "author5" --> <file author="author5" path="src/**" /> <!-- assigns all files in directory "src" whose name starts with "Test" i.e. "src/some/ other/dir/TestFile.java" to "author6" --> <file author="author6" path="src/**/Test*" /> </authorship> |
スクリプトを使って、ソース管理システムから XML マッピング ファイルを生成できます。以下の Perl のサンプル スクリプトは、CVS から作成者マッピング ファイルを生成します。別のソース管理システムを使用している場合、サンプル スクリプトを適切に変更してください。
#!perl ############################################################ # GetAuthors.pl # Sample script to generate file --> author mapping. # Note that this is usually run only once, when you first # deploy Parasoft Test . # # This script assumes that you have a list of all the files in the # project. For example, such a list can be obtained on windows # by using "dir /s/b *.c" for c files. ############################################################ sub GetAuthor ############################################################ # Gets the author (person who last modified the file) for # the input file. ############################################################ { my $fileName = shift(@_); my $author = "DontKnow"; system qq(cvs log $fileName > cvslog.txt); open(TMPFILE, "< cvslog.txt") || die "Could not open cvslog.txt"; while (<TMPFILE>) { chop; if (m/(^date.*author:)(.*)(;[\s]*state)(.*)/) { $author = $2; } } close TMPFILE; return $author; } print "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"; print "<mapping>\n"; ############################################################ # AllCFiles.txt has a list of all the c files in the # project. The following loop iterates through all the # files and assigns owners to each. ############################################################ open(FILELIST, "<AllCFiles.txt") || die "Could not open AllCSFiles.txt"; while (<FILELIST>) { chop; my $fileName = $_; my $author = GetAuthor($fileName); print "<file path=\"$fileName\" "; print "author=\"$author\" />\n"; } print "</mapping>\n"; |
Parasoft Test は、ソース管理データ、システムのローカル ユーザー設定、@author タグ、XML マッピング ファイル、インポートされた scanner.properties ファイルなどからユーザー名を検出します。デフォルトでは、Parasoft Test は検出したユーザー名の値をコード作成者のユーザー名と推測し、そのユーザーの電子メール アドレスを [username]@[mail_domain] と推測します。
しかし、自動検出されたユーザー名を別のユーザー名や電子メール アドレスにマップしたい場合もあります。例えば次のような場合です。
これらの作成者の設定をいったん自動的に行った後、「Parasoft Test の環境設定-概要」 で説明している自動設定プロセスを利用してチーム全体で設定を共有できます。
適切な作成者の設定をまだ自動構成プロセスから行っていない場合、あるいはインポートした設定を変更/上書きする場合、検出されたデフォルトのユーザー値を別のユーザー名あるいはアドレスにマッピングできます。次の操作を行います。
チーム メンバーの名前またはメール アドレスを入力できる GUI 中のすべての箇所で (例えばメールの通知、タスクの再割り当て、作成者のファイルだけをテストなど)、名前/アドレスの入力を開始し、オートコンプリートのリストから選択できます。 入力ミスなどによって Concerto データベースにない名前またはアドレスを入力した場合は、警告が表示されます。 |
コマンドラインまたは Concerto に保存された Parasoft Test の設定から、ローカル設定ファイルで作成者マッピングを指定することもできます。 それには、次の操作を行います。
例:
|
作成者の値で大文字と小文字を区別するかどうかを設定できます。この設定は、以下の場所の作成者の値に適用されます。
この設定は、Concerto の大文字/小文字の区別の設定に一致させるべきです。デフォルトでは、Concerto は大文字と小文字を区別します。Concerto での大文字/小文字の区別の設定については、『Concerto ユーザーズ ガイド』を参照してください。
大文字/小文字の区別の設定は、同一ユーザー名の複数の違反を、一人のユーザーとして扱うか、複数のユーザーとして扱うかを決定します。たとえば:
大文字/小文字を「区別しない」モードが特に役立つのは、ユーザー名の大文字/小文字が重要ではない外部データベースを使用している場合です。david というユーザー名がデータベースでは DAVID として格納されていて、大文字/小文字の設定が「区別する」モードの場合、DAVID のタスクとしてインポートされたタスクは、david には影響しません。
[Parasoft 設定] ダイアログの [Parasoft] > [作成者] > [Parasoft Test プラットフォームでユーザー名の大文字/小文字を区別しない] オプションで設定します。
次のローカル設定オプションを使って大文字と小文字の区別を設定することもできます:
authors.ignore.case=true|false
ローカル設定の詳細については「ローカル設定の指定」を参照してください。
チーム メンバーが同じログインで複数のソース管理システムを使用している場合、次のように Parasoft 製品を起動してソース管理システムから正確な作成者を取得できるようにします。
jtest -J-Duser.name=your_username ...
SOAtest -J-Duser.name=your_username ...
cpptest -J-Duser.name=your_username ...
eclipse ....-vmargs -Duser.name=your_username
「ローカル ユーザー」データを使って作成者を判定している場合、デフォルトでは Parasoft Test はマシンで定義されているローカル ユーザー設定を使用します。
別のユーザー名を使用するには、[設定] ウィンドウで左側のリストから [Parasoft] を選択し、[デフォルト] チェックボックスをオフにして [ユーザー名] フィールドに適切な名前を入力します。