テストマネジメントツール Redmine Impasse を試してみた。

と以前つぶやいた自分が気になっていたバグが無事修正頂いたので、テストマネジメントツール Impasse v1.1.1 (Redmine Plugin) を試してみました。

環境

CentOS 6 x86
Redmine 1.3.1
Ruby 1.8.7
MySQ 5.1
Redmine Impasse v1.1.1

前提

基本は右クリックで「作成」

Test case が個々のテスト
Test suite が、Test case の入れ物

バージョンありき

ロードマップにバージョンを作成しないとテスト計画を作成できません。(テストケースの作成は可能)
テスト計画が作成できたら、作成したTestをテスト計画に割当て、担当者にアサインします。この時にアサイン可能な担当者はプロジェクトに所属している必要があります。この辺りはRedmineの機能にマッチしていますね。

使ってみた感じ

Redmine にテスト管理機能を追加するイメージ。機能はシンプルでテストケースを作成して、実行計画にアサインして実行、問題を検出したらチケット発行とわかりやすいですね。

気になった点

右クリックする場所が気づきにくい。

これは慣れの問題ですが、始めて使う場合どこを操作すればよいか悩みました。

あるプロジェクトで作成したテストケースを別のプロジェクトで流用できない。

個々のテストケースはRedmineの個別のプロジェクトに所属する形になっていて、あるプロジェクトで作成したテストケースを別のプロジェクトへ移動できません。同一プロジェクト内であれば、コピー&ペーストできるのですが。将来的にできるといいですね。

SQLiteで動作しない。

v1.2.0でサポート予定なので、そちらに期待 :)

他のテストマネジメントツールとの比較

テストマネジメントツールをちゃんと使った事がないので比較のため、TestLinkと比較してみました。

きちんと学びたいテストエンジニアのためのTestLink入門 の「TestLinkの代表的な機能」から比較のためTestLinkの機能を引用。

TestLink は試しに触っただけで複雑すぎて断念したので思い込みの面があるかもしれないので参考程度に。

構成管理

機能 TestLink Impasse 備考
テストケースの管理
テストケースのバージョン管理 ×
テストケースのインポート/エクスポート ×

テスト進捗のモニタリングとコントロール

機能 TestLink Impasse 備考
テスト実施状況/実行結果の表示
テスト計画別のテストケースの選択
要件仕様の登録とテストケースと関連づけ × Test case/Test suite がRedmineのチケットとリンクできればいいですね。
登録したテストケースのレポート出力 ×

テストの組織

機能 TestLink Impasse 備考
テストチーム内の役割設定 Redmineのロールで、テストの参照、Manage testcases、Setting testcasesを管理。粒度が粗めなので、テストケース作成者とテスト実施者の分業はできません。
テストケースごとの担当割り当て
テストプロジェクト毎のユーザ管理 Redmineで管理

インシデント管理

機能 TestLink Impasse 備考
バグ管理システムとの連携 Redmineのチケット(トラッカー指定可)に双方向リンク

という感じになりました。なるほど、個々のテストケースのバージョン管理は欲しくなりますね。
テストケースのインポート/エクスポートもExcelベースで既にテスト項目がある場合は要望されそうです。

比較してみてTestLinkの機能の豊富さを改めて気づかされましたが、TestLinkは複雑すぎて挫折したのでわかり易いImpasseに期待しています。;-)

第2回 IT英語学習法カンファレンスに参加しました。 #itencon

2/29(水)に、第2回 IT英語学習法カンファレンスに参加してきました。

 

スピーカーは、放送通訳者の柴原 早苗さん。

1. 講演 「BBC採用までの道のり」
2. 体験ワークショップ

の二部構成でした。

1. 講演 「BBC採用までの道のり」

[幼少期]

  • 中学校二年生の二学期に日本に帰国。
  • 困った事、日本史の知識が欠落
  • 海外で幼少期を過ごしたのは、発音は覚えるのにはいい環境でした。
  • ただ、4年間覚えた英語の内容を半年で忘れる。

[大学時代]

  • 大学は社会学を先攻
  • そのうち、昔暮らしたイギリスにもう一度暮らしてみたいという想いが募る。(イギリス?オランダ?)
  • 大学の留学生制度・・海外で住んだ事が無い人が対象。制度対象外。断念。
  • 授業がつまらない…内職 ⇒資格試験など形に残るものをやってみよう⇒英検合格(大学3年末)
  • 英検協会から手紙「あなたの英語の内容はすばらしい。海外への短期留学に招待します。夏休みはどうですか?」
  • 大学に相談すると「4年生の夏休みに海外に行くなんて就職活動を捨てるようなもの」と否定される。
  • しかたなく、自力で職探し。KLMオランダ航空募集を見つける。
  • 面接で「初任給20万どう思いますか?と聞かれる。」学生の身でどう答えたよいか悩み「すごいと思います。」と答えたところ印象に残ったらしく採用に。

[仕事時代]

  • 書くのが得意だったので広報部を希望してたが、カート(貨物部)に配属、出鼻を挫かれる。
  • その後、西船橋に異動、通勤に2時間かかり非常に苦痛に、なんとかして欲しく上司をすっとばして支店長にメールで直談判を行い、結果的に一ヶ月で元の職場に戻る。でも新人がそんな事をしていたのでなんとなくいづらく…。
  • やはりイギリスに行きたい想いが募る。
  • 求人広告を見る。JapanTimes の月曜日版には求人広告がいっぱいある。
  • Oxford 大学日本事務所の秘書の募集。企業の社会貢献(フィナンソロフィー)的な位置づけで寄付金集めが主な仕事。(転職して3年ほど勤めた。)
  • 貯金がたまったのでイギリスの大学院に留学。
  • 卒業後、日本に戻っても職が無い「高学歴・高年齢(20台後半)・女性」はデメリット
  • 通訳学校の先生に電話。通訳に採用。フリーランスで活動。
  • イギリスにまた行きたい。行くためにはPh.Dとして行くか仕事として行くかの選択肢しかなかった。
  • JapanTimes をまた見る。BBCの求人の放送通訳者に申し込む。
  • 「デモカセットテープを送れ」面接で放送通訳の経験はなかったが独自に研究している事をアピール。'96年採用。(ただ、待てど暮らせど本採用の連絡がない…問い合わせたら、実はWaiting List の募集だったんそうな。)⇒ いつ声がかかるかわからないので他に就職できずフリーランスままの2年半待ち。
  • 「諦めない。」「それについて考える事をやめない。」「細く、長く、ろうそくの小さな火を消さない。

[BBC入社]

  • ついにBBCに入社。年齢的に結婚はあきらめていたが、なぜか同僚と結婚。子供2001年に生まれる。
  • ただ、その頃、真夜中のシフトも出るぐらい忙しくなった。(実はイギリスは産休、育休が実はあるようで無い。)人事部にかけあい、なんとか育休確保。
  • 日本は収入によって保育料が異なる(稼ぎが少ないと安くなる)という素晴らしい制度⇒イギリスは一律、当時保育料15万円/月程度かかった、毎月の家賃も25万円、通勤手当もでない。(いろんな手当がでない会社)
  • 家計的に無理と判断、旦那さんと日本に帰宅。二人そろって無職に。二人目の子供も生まれそうな時期でご主人の実家に転がり込む。
  • なかなか職が見つからなかったが2003年の春、(ご主人は英語の非常勤講師などしてた)イラク戦争発生。このとき通訳者のイベントがあって東京の通訳が京都にごっそりいっていたタイミング。
  • 知人から放送通訳に戻ってくれないかと依頼。(世の中の流れの不思議)

[好きだったから](10年近く続いた理由。)

  • 個人的にニュースが非常に好き。「好きな事を仕事に結びつけられるというのがモチベーションによい。」
  • 日本に生まれた偶然性にあぐらをかいていてはいけない。「ハイチの復旧より、もっと被害の大きいはずの東日本の復旧の方が早い」好きな仕事だから微力でも世の中の役にたっていきたい。
  • 運と人とのご縁。そのときのタイミング、世の中の動き、ジタバタしてもしょうがないときはじっと待つ。強いて上げるとすれば、手紙を書くのが好き。筆まめでいるのがいろんな人との結びつきを保つのがいいのでは、密に連絡を取り合っていたのがよかったのでは。いろんな人から、生きる力を頂いた。

[Q&A]


Q.「ベースとして幼少時代に身につけたものがあったからでしょうか?」
A.「それはあったかもしれない、ただ子供の知識なので発音程度では。」


Q.「英語をやる目的がピンと来なかった。」

A.「開発はドキュメントが英語、駆り立てるものがあると英語もいいのでは?」


Q.「なんでそんなにイギリスに行きたかったの?」
A. 「ノスタルジア?空気を吸いたいという感じ。オーケストラS席が学生なら当日券が500円で入れるとかいうのもあった。」

 

「よく英語を音読する。好きな事は続く。でも自分はスマートフォンとかダメ、必要にせまられれば…。」


Q. 「海外で働いて苦労することは?」
A. 「物事が日本みたいにうまく機能しません。」
  苦情は「マネージャ出して。」「本社の連絡先出して。」

Q.「イギリス英語<->アメリカ英語の区別はどうすれば」
A.「ポイントはたくさん聞く。スクリプトと音声を並べ繰り返す。各国の方言の法則を掴む。シンガポール人はThを発言できない。 タフラー(Third floor)など」

ここまでが1部、柴原さんの放送通訳者までの道のりが非常におもしろく、海外事情も含めてのめり込んで聞かせて頂けました。

 

2. 体験ワークショップ

ここから二人ペアになりペアワークです。

 [20秒で、下記について日本語で話してみる]

  1. 名前
  2. どこからきたのか
  3. どういうことをしているのか
  4. 英語についての悩みについて。

 「短い時間でもかなり話せましたか?」

  • 英語を覚えるのが目的ではない。
    コミュニケーションは「手段」、それを「英語で」やる。
  • 時間が無い? 20秒でやったのを1分程度も時間は裂けないんですか?
    時間に対する意識を変える。

[シャドーイング]

  • 日本語のニュースをシャドーイングしてみる。⇒1分程の内容でも結構難しい 。
  • 「知っていること」じゃないとなかなか流暢に言えない。
  • 口の筋肉を使って行った方が英語学習によい。
  • 「きちんとした表現」を日本語でも知っている必要がある。英語でもそれは同じ。

 基礎的な文法は重要。
 英語を学ぶのは五感を使った勉強がよい。

[オーバーラップ(英語)]

  • 英語の音声に被せて英文を読む。
  • Vocabulary もちゃんと読む。

[スラッシュリーディング]

  • 意味の固まりで読む。(訳文を見てもOK)
  • タイマーで区切る(だらだらやらない。気を抜くとついつい時間をかけてしまう。)

 逐次通訳の練習にもなります。

[英語の教材]

ベストなものは下記が揃っていること。

  1. 音声
  2. スクリプト
  3. 訳文

逐次通訳の場合メモを(備忘録、速記ではない。)⇒「ポイントを押さえてメモを取る。」

f:id:ju-na:20120302010710j:plain

  • 「生」活が良くなるを上昇の矢印で
  • 2012年、年は重要
  • 「人々」
  • 福島は漢字で書いてる時間は無いので「ふ」
  • 「原」発
  • 「長く」を長い矢印で表現

といったメモを取り易い記法を自分で工夫する。


[暗唱(英文)]

重要な構文を覚えるトレーニング。

  1. 行のうしろから読む。
  2. 一回読んだら文面を見ないで同じ文章を読む。また文面に戻る。読んだら文面を見ないで読む。
  3. 内容を一部置き換えて、言い換えの練習もする。

[音読筆写(英文)]

ディクテーション(口述筆記)する場合、白い紙を使うときは、事前に一定間隔の横線を引いておくとよい(書けなかった所を把握しやすい。)

[Q&A]

Q. TOEICの成績が上がらない場合は?

A. TOEIC は応用力を測るようなもの。英語の教材は自分にとってちょっと難しいぐらいのものがよい。興味のある分野の素材などがいい。


Q. Webの記事など、どうしても英・日の素材が揃わない場合は?
A. 英語のわかる人を捕まえてくる。そういった形で聞いたことは忘れない。⇒ 体験の積み重ねが重要。
一人で読む場合、5分考えてダメなら和訳を読む。いくら悩んでも時間の無駄。

Q. 電車の中の時間を有効に使うには?
A. マスクをしてる人なら、口パクで練習。iTunes の英語素材もよい。
英字新聞を駅で(意識付けのためにわざわざ)買う、日本語の日経新聞は購読で。買ったら鞄の中にしまわず重ねて持つ。電車の中で日本語20分、その後英字新聞20分読む。同様に時事ネタがあるので比較して頭に入る。全部英語で読もうとしない。ある程度流す。

 

以上、一部聞き取れなく自分の中で補完してしまった部分もありますが、大変ためになる勉強会でした。

Redmine PDF文字化け問題とその修正について #47redmine

f:id:ju-na:20120123221014j:plain

先週の土曜日に第2回shinagawa.redmine勉強会がありました。

自分はスタッフとして受付を担当していたのですが、せっかくの機会なので、今まで自分が修正してきたRedmine 1.2.0 のPDF出力機能の文字化け修正の内容をLTとして発表しました。

資料はSlideShareで公開しています。

f:id:ju-na:20120123222105j:plain

内容は、Defect #61 Broken character encoding in pdf exportDefect #6505 PDF export broken with Japanese (Gannt and Issue Tracking) の話になります。

f:id:ju-na:20120123222113j:plain

Redmine で使用しているPDFライブラリ"RFPDF"が下記の文字化けの問題を持っていました。

1. キリル語がNG

2. 日中韓がNG

元々RFPDFは、PHP言語で書かれたPDFライブラリ"FPDF"のRubyへの移植になります。

このFPDFをforkして、UTF-8組み込みフォント機能を追加した"TCPDF"というPDFライブラリがありました。

このTCPDFをedwinmossさんが再度RubyにRFPDFの拡張として移植してくれたので、これを使えばキリル語の問題は解消することがわかりました。ただし日中韓はNGでした。

では別の解は無いかということで、"prawn"というPDFライブラリが登場します。これは他言語からの移植ではなくRubyでオリジナルに書かれているため使い易く、かつキリル語OK、日中韓OKとかなりよかったのですが、残念ながら処理速度が遅いという問題がありました。

また、まったく別のライブラリになるためAPIの互換が無く、採用する場合はRedmineのPDF出力処理を全面的に書き換える必要がありました、これに対してedwinmossさんのRFPDFライブラリは互換性がありました。

f:id:ju-na:20120123222149j:plain

決めてが無かったので、結局そのまま4年間放置され続けました。

f:id:ju-na:20120123222207j:plain

ここでRFPDFのAPIの説明に移ります。

Cellメソッドは現在のXY座標にセルを書いてくれる単純なメソッドです。

改行処理などはやってくれません。

メソッド終了時のXY座標はlnで指定します。

f:id:ju-na:20120123222213j:plain

MultiCellメソッドを使うと内部で文字列を分割してCellメソッドを呼び出してくれるので自動改行してくれます。

ここで文字コードが意図したもの以外が渡されると文字の間ではなく文字の中で分割してしまい、自動改行処理時に文字を破壊してしまいます。これが日・中・韓の文字化けの原因でした。

f:id:ju-na:20120123222404j:plain

Redmineの中のRFPDFライブラリの構造と文字列処理の流れです。

GetStrigWidth メソッドは、実際にPDFに文字を書き出す処理に近い部分です。

1byte言語用のfpdf.rb をjapanese.rbで、MultiCellとGetStringWidthをオーバーライドしてマルチバイト(Shift_JIS)を扱えるように拡張しています。

さらにRedmine本体側でもpdf.rbで、Cellをiconvを使う形でオーバライドしています。

ただし、MulitiCellにiconv処理が無いので、そこからCellを呼ぶとき2byteしか処理できないのにUTF-8(3byte)で渡してしまい、文字を破壊し文字化けを発生させていました。

f:id:ju-na:20120123222415j:plain

これを、pdf.rbにiconvを使用する形で、RDMMultiCell、RDMCellメソッドを定義することで文字コード正しく変換し文字化けを解消しました。

f:id:ju-na:20120123222424j:plain

キリル語の文字化け問題が残っていたので、edwinmossさんの移植したtcpdf.rbにアップデートします。これで tcpdf.rb内のGetStringWidth等を使用すれば、UTF-8組み込みFontなどが使えるようになります。

でも残念ながら日本語は(UTF-8に対応した日本語フォントが無いので)、UTF-8以外の処理として前述の処理になります。

f:id:ju-na:20120123222434j:plain

UTF-8を指定した場合は、UTF-8組み込みFontになりめでたくキリル語の文字化けが解決しました。

f:id:ju-na:20120123222445j:plain

未解決の問題がまだあるので引き続き修正できればと思います。

(ちなみにRedmine 1.3.0 では、PDFのWiki書式対応と画像表示対応を行いました。)

知ってました?RedmineのインストールにRailsのGemは不要です。

Redmine Advent Calendar jp 2011 22日目の記事になります。よろしくお願いします。

RubyForgeで配布されているRedmineはvender/rails 配下に最適なバージョンのRailsが同梱して配布されているので個別にRailsをインストールする必要はありません。

Installing Redmine にある

Official releases include the appropriate Rails version in their vendor directory so you only need to make sure that you have the right Ruby/RubyGems/Rake/Rack stack installed.

[意訳]
正式リリースされたものは、vender ディレクトリ配下に適切なバージョンのRailsを同梱しています。あなたはちょうどRuby/RubyGems/Rake/Rackを順にインストールするだけでいいです。

と、最初にちゃんと書いてあります。ただ、英語なのであまり気づかれていません。

よく、RedmineRuby on Rails 2.x系なの?Ruby 1.9.x 未対応なの?など、インストール時に困っている人のつぶやきが散見されますが、実はRailsのバージョンが古めなのはユーザー環境に影響しないんですよね。
(プラグイン開発者には影響してしまいますが…。)

なのでインストール環境にすでにRails環境(古いRedmineなど)が構築ずみの場合でもRailsのバージョン違いは気にする必要はありません。一番安心できる RubyGems 1.3.7 を使用すれば Redmine 1.0.5〜1.3.0 を同じ環境に共存も可能です。(1.0.4 以前で i18n 0.4.2 の gem の問題があるので、そこで共存の壁があります。ちなみに 1.3.0 ではもはや i18n 0.4.2 の gem は不要なはずです。(ドキュメントに反映されていないようですが))

あ、リポジトリから直接checkoutした場合は、Railsは含まれないのでこの話は関係無いですよ!

ちなみに RedmineRuby 1.9.x 未対応なのは残念ながらユーザー環境に影響しますが、次の Redmine 1.4 でいよいよ Ruby 1.9 対応するみたいなので期待しています。

(補足) Redmine 1.4以降ではBundler対応により複数のRailsのgem共存が可能になっためRailsの同梱配布は無くなりました。

Redmine 1.2.2 変更点一覧とチケット変更点の確認方法

Redmine Advent Calendar jp 2011 の7日目になります。よろしくお願いします。

前回のRedmine 1.2.1 変更点一覧に続いて、一ヶ月程前ですがRedmine 1.2.2が出たので変更点をまとめてみました。
※もうすぐ Redmine 1.3.0 が出ますが、一応現時点の最新版になります。:)

■Code cleanup/refactoring
Defect

Patch

■Custom fields
Defect

■Email receiving
Defect

■Issues
Defect

■Issues workflow
Defect

■PDF export
Defect

■SCM
Defect

■Search engine
Defect

■Translations
Defect

Patch

Wiki
Defect

以上、細かい障害修正がメインのリリースでした。
親チケットを削除するとその子供や孫も削除されるんですね。チケットの削除はあまりしないので気づきませんでした。

と、これだけだとあれなので、

☆「Redmine のチケット変更点の確認方法」を説明したいと思います。

  1. チケットのタイトルを読む。
    Featureの場合は大抵問題無いのですがDefectの場合は適切な表現になっていない場合が多いのでこれだけでは無理な事が多いです。
  2. 本文を読む。
    これもFeatureの場合は大抵問題無いのですがDefectの場合は何を言ってるのかよくわからない場合が多いです。
    また、ネイティブでない人もチケットを発行するので適切な表現になっていない場合もあります。
  3. 本文に画像があるとわかりやすいので参考にしましょう。
  4. 本文を読んで何を言ってるかわからない場合は、チケットにリンクされているリビジョンのコミットメッセージを読む。
    これで大分わかります。むしろコミットメッセージが変更内容の結論に近いのでそれを参考にするのも非常によいです。
  5. コミットメッセージをみてもよくわからない場合は、登録されたチェンジセットのソースを読む。
    一行パッチとかならわかりやすいです。
  6. それでもわからない場合は、登録されたチェンジセットのテストコードを読む。
    これも結構重要です。Redmineの開発では常に変更内容に対応するテストコードがコミットされています。これを見ると何を意図した変更なのか把握しやすくなります。
  7. どうしてもわからない場合や、解釈が正しいか不安な場合は実機で確認・再現させてみる。(UIは英語がおすすめ)
    自分はまだまだ英語に不安があるので結構これをします。確認環境がある人向けですね。

補足として、英語<->日本語の対比表現は、UIを切り替えて確認するとか config/locales/en.yml と config/locales/ja.yml を見比べてみるとわかりますね。
実機環境がある場合はUI切り替える方が早いですけどね。※和訳する場合は表現は日本語UIに合わせましょう。

以上、変更点確認方法書いて見ましたが、逆にRedmineを使った開発で変更点を他の人に把握してもらうためには上記の内容(最後の実機確認は除く)を意識すると意図が伝わり易くなると思います。

次は @yohshiy さんです。よろしくお願いします。

Redmine 1.2.1 変更点一覧

前回のRedmine 1.2.0 変更点一覧に続いて、Redmne 1.2.1が出たので変更点をまとめてみました。
Redmine 1.2.0の新機能(プライベートチケット)・大きな修正点(PDF, SCM)を中心にバグフィックスがメインですね。なにげに JRuby関係の修正も多いです。

■Administration
Defect

■Code Cleanup
Patch

■Email receiving
Defect

■Issues
Defect

■Issues permissions
Defect

■PDF Export
Defect

REST API
Defect

■SCM
Defect

■Search engine
Defect

■Translations
Defect

■UI
Defect

Wiki
Defect

Redmine 1.2.0 変更点一覧

先日、Redmine から fork した ChiliProject 2.0.0 が出ましたね。

実は一か月程前に出た Redmine 1.2.0 もかなりの改良点があると思うのですが詳細な変更内容の日本語の説明記事が見当たらないのでRedmine 1.2.0 のチェンジログとロードマップから備忘録も兼ねて訳してみました。(タイトルの直訳だと変更内容が適切ではない場合があるので、ある程度チケットの中身を元に記載しています。)

Accounts
Feature

Administration
Feature

Defect

Attachments
Feature

Code Cleanup
Defect

Custom fields
Feature

Database
Feature

Email notifications
Feature

Email receiving
Feature

Gantt
Defect

Gems support
Feature

Defect

Groups
Defect

I18n
Feature

Defect

Issues
Feature

Defect

Issues permissions
Feature

  • #7412 Add an issue visibility level to each role
    管理のロールに、"表示できるチケット"(すべてのチケット/プライベートチケット以外/作成者か担当者であるチケット)オプションの追加。
  • #7414 Private issues
    プライベートチケット(プライベートフラグを持ったチケット)の追加。

PDF Export
Defect

  • #61 Broken character encoding in pdf export
    PDF出力が、日本語、中国語、韓国語及び、欧米圏の各種言語で文字化けが発生していたのを修正。文字コードUTF-8なものは組み込みフォントになります。(RFPDFライブラリのバージョンアップで対応、日中韓タイ言語以外はTCPDFクラスに変更)

Patch

Permissions
Feature

REST API
Defect

Rails support
Feature

Defect

Roadmap
Feature

Ruby interpreter support
Feature

Defect

SCM
Feature

Defect

Search engine
Defect

Text formatting
Feature

Defect

Time tracking
Feature

Defect

Translations
Defect

Patch

UI
Feature

Defect

Patch

Wiki
Defect

その他(カテゴリ無し)
Feature

  • #7408 Add an application configuration file
    アプリケーション設定ファイル(config/configuration.yml)を追加、それに伴いメール(SMTP)設定ファイルを config/email.yml から config/configuration.yml に変更。

Defect

以上、Redmine 1.2.0 変更点、108チケットでした。Redmine 1.1以降、forkとかごたごたがありましたが、無事1.2.0のリリースまでこぎつけた Redmine開発コミュニティに感謝。仕事で使ってるRedmine は全て1.2.0に上げて非常に快適に使えています。