テストデータの管理

テスト管理ツールとしてTestLinkを改めて確認してみた。
テスト管理ツールとして、非常に良くできているし日本語も利用できるので利用すべきという
結論になるのですが、「テストフェーズの進め方」的な文書は必要なので要検討。

簡単なデモ用のテストケースを書いていて思ったが、
テストデータの管理はどうするのか
という問題に気づいた。
一般的にはExcelとかで作成しておいて、DBUnitを利用したロードなので流し込んで
という流れになるのかもしれないが、このExcel管理から脱出したいのがTestLinkであったりするので
テストデータ管理
・DB接続(スキーマ取得)
・テストデータ登録(ロード) ←1テーブル
・テストデータセット(複数のテストデータを一つのくくりとする)
・DBへの置き換え(データセットを選択するとそのデータに置き換わる)・クリアー
といった機能を持つツールがほしい。
できれば、TestLinkと連携してw

Google App Engine for Java

今更ながら、Google App Engineをいじってみた。
環境そのものはともかく、開発環境(Google App Engine Plugin)の充実ぶりがすごいと思った。

難しい部分はすべて開発環境に隠蔽されていて
・JDOのエンハンスメント
・ログの切り替え(ローカルとEngine上)
・UserServiceの切り替え
をPluginがやってくれる〜♪

Java logging APIを使っているとGoogle App Engine のコンソールからちゃんとログが見れる。

JDOを使ってみないといけないと思っているが、マニュアルを読んだだけだと
OODBのようなイメージでいるとよいかも。
ロウレベルAPIを使ってこそのGAEかもしれないが、通常のアプリケーションをスケールするだけでもかなりのメリットあり。

インフラ基盤がスケールして、可用性を担保できて、アプリケーションの作りも大きく変わらないならメリットは大きくなりそう。

もう少し調べてみます。
Strutsが使えるかとかw

HPタブレットPC

HP TouchSmart tx2を買ってみた。
キーボードは期待よりも上で打ちやすい。
大きさが大きいのが持ち運び的にはどうかと思うが・・・

デフォルトだといろいろとハングアップして大変だったが、HPから
ダウンロードしていろいろとやったところそれなりに使えるようになった感じ。

最近のジレンマ

アジャイル

アプリケーション開発における知識獲得(要件・仕様・利用技術)という意味で、

  • フィードバックの間隔を短くする
  • 変更しやすい

という方向性を中心においているアジャイル開発は優れていると思う。

DOA

一方で、基幹系のような大きなシステムにおいては統合されて整合性のある
データモデルが確立されていないとうまくいかない気がする。
(これは気がするなので前提がおかしいかもしれません)
となるとDOAのアプローチが優れていると思う。

データの状態遷移とアプリの関係

統合されて整合性のあるデータモデルは、業務に対する知識がないと作れない。
アジャイルに適している。

データモデルをアジャイルに構築するとデータの状態遷移とアプリケーションは
密接な関係があり、修正箇所が多くなりやすい。
アジャイルに向きにくい。

データの状態遷移が少なく、CRUD表のCRUDが少ない、あるいは変更するアプリケーションが
限られている場合などはアジャイルでいけると思うのですが、データの状態によって処理の仕様が
変わるケースをたくさん含まれている場合は何らかのプラクティスが必要だと思っています。

データベースリファクタリングも一つのプラクティスだと思うのですが、これはデータベースモデリング
柔軟性だと思っていて、アプリケーションとデータモデルの関係の柔軟性につながらない。

CRUD以外のアプリケーション・データモデルの関係を表す手法があればいいかもしれませんが、今のところ
見つけられずにいて、アジャイルDOAのアプローチのバランスや進め方に頭を悩ませています。

Sonar

Sonarの出来がよい。
ニュースになっていた頃はふ〜んという感じでしたが
最近、紹介を受けたので確認したところ、おっ〜という感じで
インストールしてみました。
Mavenプラグインとして実装されていて、いい〜と思いました。
前から、JUnitのレポートの履歴があればいいのにと思っていたところ
ちょうどありました。
どこかのプロジェクトで利用してみたいです。

マルチプロジェクト


複数のプロジェクトの状況を把握できるビューです。

ダッシュボード


これは普通の感じですが、必要な内容だと思います。

タイムマシン


この例ではまだデータがないのでわからないですが、時間軸でカバレッジやテストケース数、成功数などをグラフで比較できるようになっています。