top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
blanco Frameworkの次期ロードマップを立案作業中です。先月から上司の方々や blanco Frameworkの総会メンバー達と相談しているのですが、次期ロードマップは「単体試験工程の自動化」というものをメインテーマとして据える案に落ち着きそうです。まだ完全に決定ではありませんが、おおむねその方向性にあります。
blanco Frameworkの次期ロードマップを立案作業中です。先月から上司の方々や blanco Frameworkの総会メンバー達と相談しているのですが、次期ロードマップは「単体試験工程の自動化」というものをメインテーマとして据える案に落ち着きそうです。まだ完全に決定ではありませんが、おおむねその方向性にあります。
2006年3月末を目標に実現していきたいと考えているのは下記のような仕様です。
blanco が自動生成するソースコードに対する、JUnitソースコードの自動生成 まずは blancoDbに着眼して自動化を行います。自動生成するJUnitソースコードについては、対応する試験作業の半自動化というところ やや生煮えなところをゴールに設定します。というのも、blancoDbのようなツールが生成したソースコードに対する JUnitソースコードを、完全に自動化して自動生成することを目指すことは ほぼ不可能で しかもナンセンスあると認識しているからです。あくまでも半自動化というところをゴールに設定します。全自動を目指すとうまくいかないことは、私は既にblancoにおいて経験済みで実証済みです(苦笑)。そしてこれは 設計書からソースコードを生成しているからこそ 試験用のソースコードの自動生成が可能になります。設計書つながりになっていないと、試験用ソースコードの自動生成のための「何か設定」という作業が必要になり生産性が低下してしまうからです。 なお blancoValueObjectが自動生成するソースコードに対応する JUnitソースコードは これは完全自動生成が可能であると考えています。正常系・境界系などを織り交ぜて、ごく自然に完全なる JUnitコードの自動生成が可能なことでしょう。 2005.12.26追記 blancoValueObjectのJUnitソースコード自動生成について、試作版の開発が完了しました。次は JUnitから単体試験項目表の自動生成の試作に取りかかります。
JUnitソースコードに対する単体試験項目表の自動生成 JUnitソースコードを入力として単体試験項目表を自動生成することは、これは比較的容易であると考えています。むろん JUnitソースコードの記述方法については、ある程度限定を設けていく必要はあると予想しています。
単体試験項目表の自動生成 単体試験項目表の自動生成について、半自動化を狙います。これは単に 単体試験項目表の記述をblancoに肩代わりしてもらうだけのものです。駆動させるためには Java言語のプログラミング能力を必要とする、これまた微妙な半自動化を狙います。
ポイントは 自動生成されたソースコードの品質検証および品質担保のために、JUnitソースコードを同時に自動生成して これを用いるという点です。自動生成されたソースコードに着眼しているのです。blancoプロジェクトのツールそのものの品質向上ももちろん大切なのですが、生成後のソースコードに対する試験およびドキュメンテーションまでを自動化することにより、試験工程の爆発的な改善を行うことが出来るであろうから、そちらの優先度を高く設定しているのです。
これ以外にも 単体試験工程の生産性向上のために、下記のようなものを考えています。しかしこれは2006年3月末までには作業が納まらないものと考えます。
blanco Frameworkの効能によって製造工程の生産性・品質は向上しました。そうすると今度は単体試験工程の生産性・品質が目立ってきて、それでは単体試験工程の生産性・品質の向上へと取り組もうという狙いです。ここを自動化できれば、トータルとしての生産性・品質が劇的に向上するものと考えます。これが可能なのは、blanco Frameworkが原則として ドキュメントをメタファイルとして利用しているからだと考えています。なお、ドキュメントの自動生成には blancoReportの次期版を採用する予定です。blancoReport次期版の存在によって、私の選択肢が大きく広がっていることをひしひしと感じます。
この件について 上司の同意を取り付けるとともに blanco Framework総会にかけて議論していく予定です。とはいえ もう今年も残りあとわずかなので、はやいとこ進めなくてはなりません。事前に簡単にヒアリングしたところでは、総会メンバーの方々はこのロードマップについて おおむね了承してくださっている模様です。
ちなみに… 2006年3月末をマイルストーンに設定しているのは、開発規模とか工数といったものを適切な手法によって見積もった結果として得られた日付設定ではありません。某プロジェクトの製造開始までに何とか間に合わせたいという私自身の (そしておそらくプロジェクト進捗上の) 希望納期です。試験工程を自動化しないと とっても悲惨なことが起こるということがハッキリと認識されはじめてたのです。純粋に必死です。ふむ、、、もし これだけのスペックを 2006年3月末までにやり遂げるといった結果を出すことができたら、そうしたら私は私を褒めてあげたいです (苦笑)
関連する日記
2005/11/30 日記: blanco単体試験項目表自動生成(名称検討中), blancoJUnitは実現する方向性 , 朝のNHKニュースにて静岡のガンプラ工場が放映
2005/12/20 日記: オープンソースという道のり→ソフトウェア開発生産性・保守性の「カイゼン」 , blancoDbおよびblancoDbDotNetの開発版(不安定版)を更新
blanco Frameworkは当面の間、現状のような 非テンプレート型によるソースコード自動生成タイプの仕様に落ち着く模様です。というのも blanco Frameworkの次のロードマップが単体試験工程の自動化に落ち着きそうだからです。非テンプレート型のソースコード自動生成と 単体試験工程の自動化との間には、意外にも密な相関関係があるからなのです。テンプレート型を採用した事による自由度が、試験ソースコードの自動化と相反すると考えています。また、遠い未来にでも blanco Frameworkの各プロダクトを多言語対応させたいというのも 非テンプレート型によるソースコード自動生成を利用し続ける理由のひとつです。
、、、しかし何といっても 私がテンプレート型の処理全般をニガテとしているいうのも大きな理由なのでしょうね。そして本当の理由は やっぱりこれだったりするのかもしれません… (苦笑) ニガテかどうかはさておき、現状ではテンプレート型ソースコード自動生成に取り組むよりは、むしろ blancoResourceBundleやblancoCsvを利用してカスタマイズ性の提供に努めるほうが、メサキの製造スピードの維持という見方からは適しているという、純粋な作業工程効率化という意味合いや狙いが大きいようにも思います。