[Testlinkjp-users] TestLink 1.8.0用のXML-RPC拡張パッチ、getTestLinkClient

Back to archive index

西山 博実 hnish****@skygr*****
2009年 1月 20日 (火) 09:27:44 JST


あきぴーさん
西山です。   おはようございます。

> TestLinkのビルド=Hudsonのビルド番号を、XML-RPC経由で実装は可能ですか?

既に、本家から以下がリリースされています。

class TestlinkXMLRPCServer extends IXR_Server

 /**
  * Creates a new build for a specific test plan
  *
  * @param struct $args
  * @param string $args["devKey"]
  * @param int $args["testplanid"]
  * @param string $args["buildname"];
  * @param string $args["buildnotes"];
  * @return mixed $resultInfo
  *
  * @access public
  */
 public function createBuild($args)

GetTestLinkClientのロードマップにも以下を追加しましょう。
GetTestLinkClient::createBuild(projName, planName,buildname,buildnotes)

0. テスト計画にビルド名を新規作成する:createBuild

1. テストケースに要件をアサインする:assignRequirementsByTCName



>Test結果の『備考』に自動的に書き込みたいのですが、何かいい方法はありますか? 
>

 GetTestLinkClient::setTCResultByTCName(testcasename, testsuitename, result, 
projName, planName,
 buildName, testerName, notes, bugid)
でも書き込めます。





----- Original Message ----- 
From: "Akipii Oga" <akipi****@gmail*****>
To: "TestLink JP Users ML" <testl****@lists*****>
Sent: Saturday, January 17, 2009 12:18 AM
Subject: Re: [Testlinkjp-users] TestLink 1.8.0用のXML-RPC拡張パッチ、getTestLinkClient


> 西山さん
>
> あきぴーです。
> 最近はTestLink-MLが活発で読むのが楽しいです。
>
> XML-RPC実装について、下記の要望(妄想?)があるので、一意見として聞いて
> 実装を検討して頂けると嬉しいです。
>
> 妄想ですが、Hudsonによる回帰テストをTestLinkで連携したいのです。
> #川西さんの考えに沿えば、TestLinkのビルド=Hudsonのビルド番号とマッピング
> すれば、回帰テストになります。
>
> TestLinkのビルドを、XPL-RPC経由で、Hudsonのビルド番号で更新したいのです。
>
> #回帰テストのイメージ
>
> Hudsonで回帰テスト (手動)
> →JUnitも含めてビルド (以下自動)
> →JUnitのテストケース仕様をTestLinkへインポート(既にインポート済みでも良い) 
> 
>
> →JUnitの結果をTestLinkへ登録
> →TestLinkのビルド=Hudsonのビルド番号で登録
>
> のようなフローができれば、まさに、継続的インテグレーションは回帰テストの実装になります。
> #重たいかもしれませんが。。
>
> TestLinkのビルド=Hudsonのビルド番号を、XML-RPC経由で実装は可能ですか?
>
> 以上、よろしくお願いします。
>
> 2009/01/13 15:19 西山 博実 <hnish****@skygr*****>:
>> あきぴーさん
>> 西山です。
>>
>>
>>> docid・・DOC-ID、要件管理ID
>>> title・・タイトル、要件内容のタイトル
>>> description・・スコープ、要件の詳細内容
>>>
>>> の形式です。
>>> 要件Specはどれを指しているのでしょうか?
>>
>> 現状には無いので、1.8での拡張パッチを検討してます。
>>
>> TCのエクスポート、インポートにimportance指定を追加するパッチも考えられますが、
>>
>> テスト計画にテストケースを追加する:addTCPlanByTCNameに
>> urgency(1:High, 2:Medium, 3:Low)のオプションを追加しますので、こちらは検討しません。
>>
>> 将来(1.9.0)への追加機能案としては以下があるでしょうかね。
>> 1-1. 要件-Document作成画面にimportance指定を付加する。
>> 1-2. 要件-Documentのエクスポート、インポートにimportance指定を追加する。
>> 1-3. 実行レポートで、要件のimportance別のカバレッジを表示する。
>>
>>
>>> TestLinkで要件とテストケースを紐づけた時、要件別にテストスイート単位の
>>> テストケース数を出力する機能はありますか?
>>
>> 1.8.0 RC2の画面には無いようです。
>> 実はXML-RPCロードマップ作成で浮かんだのですが、消してしまいました。
>>
>> 要件別のテストケース名を取得する:getTCNameByRequirements(projname,ReqSpec,ReqDoc)
>> も追加しましょう
>>
>>
>> ----- Original Message -----
>> From: "Akipii Oga" <akipi****@gmail*****>
>> To: "TestLink JP Users ML" <testl****@lists*****>
>> Sent: Tuesday, January 13, 2009 2:25 PM
>> Subject: Re: [Testlinkjp-users] TestLink 1.8.0用のXML-RPC拡張パッチ、getTestLinkClient
>>
>>
>>> >西山さん
>>>
>>> あきぴーです。
>>>
>>>> 要件をEXCELから一括インポートするには、
>>>> TestLink上のインポート機能にて、要件Specを指定できる様にするのが良いと考えます。
>>>
>>> すみませんが上記の意味が分かりません。
>>> TestLinkへ要件をXMLインポートする時、ver1.7.4では、
>>>
>>> docid・・DOC-ID、要件管理ID
>>> title・・タイトル、要件内容のタイトル
>>> description・・スコープ、要件の詳細内容
>>>
>>> の形式です。
>>> 要件Specはどれを指しているのでしょうか?
>>>
>>> >川西さん
>>>
>>> TestLinkで要件とテストケースを紐づけた時、要件別にテストスイート単位の
>>> テストケース数を出力する機能はありますか?
>>>
>>> ver1.7.4では、テスト結果欄でしか、要件とテストケースのカバレッジを確認できません。
>>> 僕の希望としては、要件とテストケースを紐づけるタイミングで、要件のカバレッジを
>>> 出力したいのです。
>>>
>>> 理由は、W字モデルのように、要件定義や設計工程でテスト計画やテスト仕様書も同時に
>>> 作るという使い方をしたいのです。
>>>
>>> つまり、テストケース・要件・要件とテストケースの紐づけの3種類をTestLinkへインポート
>>> した場合、テストされない要件はあるか? あるいは、この要件のテストケースが余りにも
>>> 少なすぎる、などの判断に使いたいのです。
>>>
>>> モチーフは、テスト駆動開発のように、仕様をテスト可能なプログラムとして書くように、
>>> 要件定義や設計工程でも検証可能な要件や仕様に落とすのに使いたいからです。
>>>
>>> 実際の現場では、プログラミングと言う下流工程よりも、要件定義や設計工程の成果物の
>>> 品質がすごく低いように思うからです。
>>> 設計時にテストケースも考えれば、たった一つの仕様を追加するだけでどれだけ影響を
>>> 及ぼすか、という意識を設計者が持つようになるだろうと思います。
>>>
>>> 以上、よろしくお願いします。
>>>
>>>
>>> 2009/01/13 10:28 西山 博実 <hnish****@skygr*****>:
>>>> あきぴーさん
>>>> 西山です。  ご意見ありがとうございます。
>>>>
>>>>> もう一つ要望があるとすれば、テスト結果出力時に、
>>>>> 「マイルストーン毎の進捗率を出力する」
>>>>> も加えて欲しいです
>>>>
>>>> これは、
>>>> ・現在までの要件、テストケースカバレッジの推移を取得するgetReqCoverageStatistics
>>>> でのテストスイート別オプションの他に、「テスト優先度別」オプションで実現しましょう。
>>>>
>>>>
>>>> 追伸:
>>>> 要件をEXCELから一括インポートするには、
>>>> TestLink上のインポート機能にて、要件Specを指定できる様にするのが良いと考えます。
>>>>
>>>> いかがでしょうか?
>>>>
>>>>
>>>> ----- Original Message -----
>>>> From: "Akipii Oga" <akipi****@gmail*****>
>>>> To: "TestLink JP Users ML" <testl****@lists*****>
>>>> Sent: Monday, January 12, 2009 6:42 PM
>>>> Subject: Re: [Testlinkjp-users] TestLink 1.8.0用のXML-RPC拡張パッチ、getTestLinkClient
>>>>
>>>>
>>>>> あきぴーです。
>>>>> 西山さん作成のTestLink運用フローは非常に参考になります!
>>>>>
>>>>> リンク先が無かったので、情報共有のために記載しておきますね。
>>>>>
>>>>> TestLink運用の流れ図の表示 - TestLinkTools - SourceForge.JP
>>>>> http://sourceforge.jp/projects/testlinktools/docs/TestLinkFlowChart/ja/6/TestLinkFlowChart.txt
>>>>>
>>>>> >>西山さんへ
>>>>>
>>>>> もう一つ要望があるとすれば、テスト結果出力時に、
>>>>> 「マイルストーン毎の進捗率を出力する」
>>>>> も加えて欲しいです。
>>>>>
>>>>> http://sourceforge.jp/projects/testlinkjp/docs/testlink_18_milestone/ja/1/testlink_18_milestone.png
>>>>>
>>>>> 上記は、川西さんがTestLink 1.8ベータで試されたマイルストーンの例です。
>>>>> この情報をリアルタイムに出力できれば、管理者としては、テスト工程での意思決定の
>>>>> 材料として強力に使えます。
>>>>> 何せ、テストケースの優先度別にその進捗具合が分かりますから。
>>>>>
>>>>> テスト工程では、BTS以上に、テストケースの消化具合という進捗管理が非常に重要
>>>>>
>>>>> ですから。
>>>>>
>>>>> 以上、よろしくお願いします。
>>>>>
>>>>> 2009/01/09 11:40 西山 博実 <hnish****@skygr*****>:
>>>>>> みなさん
>>>>>> 西山です。
>>>>>>
>>>>>> 新年でもあるので、あきぴーさんの運用フローを元に
>>>>>> TestLink運用流れ図を「TestLinkTools::文書」に作成し、
>>>>>> 全体を俯瞰して、XML-RPCロードマップを見直しました。
>>>>>>
>>>>>> ご意見、要望をお願いします。
>>>>>>
>>>>>> -----------------------------
>>>>>> XML-RPC ロードマップ
>>>>>> -----------------------------
>>>>>> 1. テスト計画にテストケースを追加する:addTCPlanByTCName
>>>>>> 2. テストケースに要件をアサインする:assignRequirementsByTCName
>>>>>> 3. テストスイート単位にユーザを一括アサインする:assignTSuiteTesterByName
>>>>>> 4. 指定した期間の要件、テストケースカバレッジを集計する:getReqCoverageStatistics
>>>>>> 5. 最新の要件カバレッジを取得する:getCoverageByReqSpecDoc
>>>>>>
>>>>>> これらの前に、ver. 0.42として下記を予定しています。
>>>>>> ・reportTCResult():引数に$args["bugid"] - optionalを追加
>>>>>> ・getTCResult():戻り値に["bugid"]を追加 (bugidとはRedmineチケットIDのことです)
>>>>>>
>>>>>>
>>>>>> -----
>>>>>> 追伸:
>>>>>> TestLink 1.8.0  xml-rpcでのマルチバイト未対応の原因調査&対応をちょっとだけしました。
>>>>>> third_party配下のxml系ではマルチバイト未対応のstr_replace()を多用しています。
>>>>>>
>>>>>>
>>>>>>
>>>>>> これ以外にもmb_系への対応が必要なものがありそうです。
>>>>>> str_replaceのみ対応しただけではシングルバイトもNGでした。
>>>>>> RC2では、日本語のProje名の取得すらNGです。
>>>>>> xml-rpcの日本語対応は大変かもしれません。。。。。
>>>>>>
>>>>>>
>>>>>>
>>>>>> ----- Original Message -----
>>>>>> From: "西山 博実" <hnish****@skygr*****>
>>>>>> To: "TestLink JP Users ML" <testl****@lists*****>
>>>>>> Sent: Wednesday, January 07, 2009 10:34 AM
>>>>>> Subject: Re: [Testlinkjp-users][tef-testlink 5823] TestLink 1.8.0用のXML-RPC拡張パッチ、getTestLinkClient
>>>>>>
>>>>>>
>>>>>>> あきぴーさん
>>>>>>> 西山です。 おはようございます。
>>>>>>>
>>>>>>>
>>>>>>> 1> ・テスト計画にテストスイート、テストケースを一括アサインする
>>>>>>> 2> ・テストケースにテストスイート単位にユーザを一括アサインする
>>>>>>>
>>>>>>> 1は私のロードマップにもあります。 ver. 0.6
>>>>>>> 2を私のロードマップに追加します。 ver. 0.7
>>>>>>>
>>>>>>>
>>>>>>> 要件のインポートは、CSVからしているのですか?
>>>>>>> XMLからの要件インポートでは、Requirements Specificationの作成は
>>>>>>> 手入力する必要がありますね、これも面倒?
>>>>>>> XML-RPCなら、ここも自動作成できるかも(要調査)
>>>>>>>
>>>>>>>
>>>>>>> (TestLink上でプロジェクトを作成)
>>>>>>> (TestLink上で計画を作成)
>>>>>>> (TestLink上でビルドを作成)
>>>>>>>
>>>>>>> 手入力するのは、これだけにしたい。。。^^
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ----- Original Message -----
>>>>>>> From: "Akipii Oga" <akipi****@gmail*****>
>>>>>>> To: "TestLink JP Users ML" <testl****@lists*****>
>>>>>>> Sent: Tuesday, January 06, 2009 6:36 PM
>>>>>>> Subject: Re: [Testlinkjp-users][tef-testlink 5823] TestLink 1.8.0用のXML-RPC拡張パッチ、getTestLinkClient
>>>>>>>
>>>>>>>
>>>>>>>> 西山さん
>>>>>>>>
>>>>>>>> あきぴーです。
>>>>>>>> 西山さん作成のテストケースImpotマクロは重宝しております。
>>>>>>>>
>>>>>>>> 下記の関数は非常に興味アリです!
>>>>>>>>
>>>>>>>> 僕が作るテスト仕様書では、
>>>>>>>>
>>>>>>>> ・要件一覧
>>>>>>>> ・テストケース一覧
>>>>>>>> ・テストケースごとに要件管理IDを振っている
>>>>>>>>
>>>>>>>> のマスタデータはあるので、下記の関数を使ったRubyプログラムを用意
>>>>>>>> すれば、1回のバッチ処理で、要件とテストケースを紐づけできるわけですね!
>>>>>>>>
>>>>>>>>
>>>>>>>> 僕としては、下記2点の関数もあると嬉しいです。
>>>>>>>>
>>>>>>>> ・テスト計画にテストスイート、テストケースを一括アサインする
>>>>>>>> ・テストスイート、テストケースにユーザを一括アサインする
>>>>>>>>
>>>>>>>> つまり、下記のTestLink運用フローが全て、XML-RPC経由で一括更新
>>>>>>>> できれば非常に役立ちます。
>>>>>>>>
>>>>>>>> 仮定:
>>>>>>>> テスト計画、ユーザはTestLink上で作成済み。
>>>>>>>> 要件、テストケース、要件とテストケースの紐付けの各データは作成済み。 
>>>>>>>> 
>>>>>>>>
>>>>>>>>
>>>>>>>> 運用フロー:
>>>>>>>> 要件を一括インポート
>>>>>>>>>>>>>>>> テストケースを一括インポート
>>>>>>>>>>>>>>>> テストケースと要件の紐付けを一括更新
>>>>>>>>>>>>>>>> テスト計画にテストケースを一括アサインする
>>>>>>>>>>>>>>>> テストスイート単位にテスト担当者を一括アサインする
>>>>>>>>>>>>>>>> (TestLink上でビルドを作成)
>>>>>>>>>>>>>>>> 関連するテストケースを成功(or 失敗 or ブロック)で一括登録する
>>>>>>>>>>>>>>>> テストケース失敗時は、関係するテストケース全てにRedmineチケットIDを登録する
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>>> ・全般的なテスト計画のメトリクス→テスト担当者単位でテスト進捗率を日別で表示
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ・各テストケースの全バグ→NGテストケースのバグチケットのステータスを表示
>>>>>>>>
>>>>>>>> ・要件とテストケースのカバレッジ
>>>>>>>> を出力する
>>>>>>>>
>>>>>>>> TestLinkをテスト仕様書代わりに運用する場合、テストケース数は数千〜数万オーダー
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> が当たり前なので、TestLinkで手作業で運用しいている部分をXML-RPCで自動化
>>>>>>>>
>>>>>>>> できれば、運用がすごく楽になります。
>>>>>>>>
>>>>>>>> ご検討して下さると幸いです。
>>>>>>>> 以上、よろしくお願いします。
>>>>>>>>
>>>>>>>> 2009/01/06 17:39 西山 博実 <hnish****@skygr*****>:
>>>>>>>>> garyoさん、あきぴーさん
>>>>>>>>> 西山です。
>>>>>>>>>
>>>>>>>>> 「要件とテストケースの割付け関数」を検討してみました。
>>>>>>>>> テストケースと要件の1:1の割付け(アサイン)と、切離し(未アサイン)をします。
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 疑問点は、tl.relationTCAndReq(TCid, Reqid)、tl.freeTCAndReq(TCid,
>>>>>>>>> Reqid)
>>>>>>>>> の処理で、req_coverageテーブル以外に更新するテーブルがあるかどうかです。
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ざっとgrepした範囲では無い様ですが、御本家へ問い合わせて頂けますと
>>>>>>>>> 安全かなとも思います。。。
>>>>>>>>>
>>>>>>>>> ご意見をお願いします。
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ●テストケースと要件を割付ける関数:GetTestLinkClient::relationTCAndReqByName(projname,ReqSpec,ReqDoc,testcasename,testsuitename)
>>>>>>>>>
>>>>>>>>> (1)tl.getProjects()により、projname から、proj_idを得る
>>>>>>>>> (2)tl.getRequirementsIDByName(proj_id, ReqSpec, ReqDoc)により、Reqidを得る
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> (3)tl.getTestCaseIDByName()により、testcasename, testsuitenameから、TCidを得る
>>>>>>>>> (4)tl.relationTCAndReq(TCid, Reqid)により、テストケースと要件を割付ける
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ●テストケースと要件を切離す関数:GetTestLinkClient::freeTCAndReqByName(projname,ReqSpec,ReqDoc,testcasename,testsuitename)
>>>>>>>>>
>>>>>>>>> (1)tl.getProjects()により、projname から、proj_idを得る
>>>>>>>>> (2)tl.getRequirementsIDByName(proj_id, ReqSpec, ReqDoc)により、Reqidを得る
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> (3)tl.getTestCaseIDByName()により、testcasename, testsuitenameから、TCidを得る
>>>>>>>>> (4)tl.freeTCAndReq(TCid, Reqid)により、テストケースと要件を切離す
>>>>>>>>>
>>>>>>>>> ------------
>>>>>>>>>
>>>>>>>>> ●要件名から要件IDを取得する関数:tl.getRequirementsIDByName(proj_id,
>>>>>>>>> ReqSpec, ReqDoc)
>>>>>>>>> (1)req_specs:要件テーブルからtestproject_id == proj_id AND title
>>>>>>>>> ==
>>>>>>>>> reqSpec で、ReqSpec_idを得る
>>>>>>>>> (2)requirements:ドキュメントテーブルから srs_id == ReqSpec_id
>>>>>>>>>  で、id,
>>>>>>>>> statusを得る
>>>>>>>>>  (3)status==有効以外ならば、id=0を戻す
>>>>>>>>>
>>>>>>>>> ●テストケースIDと要件IDを割付ける関数:tl.relationTCAndReq(TCid,
>>>>>>>>> Reqid)
>>>>>>>>> (1)req_coverage:テーブルに、req_id = Reqid, testcase_id = TCid
>>>>>>>>> のケースがなければ追加する。
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ●テストケースIDと要件IDを切り離す関数:tl.freeTCAndReq(TCid,
>>>>>>>>> Reqid)
>>>>>>>>> (1)req_coverage:テーブルから、req_id == Reqid, testcase_id ==
>>>>>>>>> TCid
>>>>>>>>> のケースがあれば削除する。
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Testlinkjp-users mailing list
>>>>>>>>> Testl****@lists*****
>>>>>>>>> http://lists.sourceforge.jp/mailman/listinfo/testlinkjp-users
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Testlinkjp-users mailing list
>>>>>>>> Testl****@lists*****
>>>>>>>> http://lists.sourceforge.jp/mailman/listinfo/testlinkjp-users
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Testlinkjp-users mailing list
>>>>>>> Testl****@lists*****
>>>>>>> http://lists.sourceforge.jp/mailman/listinfo/testlinkjp-users
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Testlinkjp-users mailing list
>>>>>> Testl****@lists*****
>>>>>> http://lists.sourceforge.jp/mailman/listinfo/testlinkjp-users
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Testlinkjp-users mailing list
>>>>> Testl****@lists*****
>>>>> http://lists.sourceforge.jp/mailman/listinfo/testlinkjp-users
>>>>>
>>>>
>>>> _______________________________________________
>>>> Testlinkjp-users mailing list
>>>> Testl****@lists*****
>>>> http://lists.sourceforge.jp/mailman/listinfo/testlinkjp-users
>>>>
>>>
>>> _______________________________________________
>>> Testlinkjp-users mailing list
>>> Testl****@lists*****
>>> http://lists.sourceforge.jp/mailman/listinfo/testlinkjp-users
>>>
>>
>> _______________________________________________
>> Testlinkjp-users mailing list
>> Testl****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/testlinkjp-users
>>
>
> _______________________________________________
> Testlinkjp-users mailing list
> Testl****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/testlinkjp-users
>




Testlinkjp-users メーリングリストの案内
Back to archive index