Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.Proprietary & ConfidentialNAUTILUS
Asakusa 0.7~新機能でででで
テストデータをうまくドキュメント化するアレ
2014/8/22株式会社ノーチラス・テクノロジーズ
http://www.nautilus-technologies.com/mailto:[email protected]
Tel: 03-6712-0636 Fax: 03-6712-0664
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 2Proprietary & Confidential
okachimachi.orz
最近何やっているのか?– 某社の原価計算システムの構築
要件定義・業務分析・基本設計・詳細設計・テストとか 要するに「設計」 モデル作成とデータフロー作成
– いわゆる「ビジネスロジック」を記述して、 Asakusaバッチ処理がそのロジック通りに動いているか、どうか確かめる
– ・・・なので、テストとかやってる
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 3Proprietary & Confidential
テストの記述ここでいうテストは UTではない
– フローパートのテストですね。
いわゆる ST( system test)に近い
Asakusaでのフローパートのテストは普通に CTとか STのレベルになる
– 厳密には CT/STではないが、 UTではない– バッチのテストなので、 STというとちょっと違う– いずれにしろ、いろいろビジネスロジックを準備する必要がある
– 要するにある程度の準備がどうしても必要になる
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 4Proprietary & Confidential
普通にやるとコレ
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 5Proprietary & Confidential
業務系バッチ処理の Asakusaでのテストカラムが多い
– 超横長エクセルになる カラムが 100を超えたあたりで横スクロールのパチスロ状態
入力ポート /出力ポートが多い– やたらめったらシート数が増える
シート選択スクロールが目押し勝負になる
同じ値が多い– 業務系バッチ処理は movが多い
入力と出力が同じカラムが多い 何もいれないと nullとか 0で放置 なんか適当に定数とか入れとく “ 予約”とか普通にある
挙げ句に「仕様が変わっちゃった・・・てへ www」– 死ねばいいのに・・・– 全データのコピペ嵐
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 6Proprietary & Confidential
そんな貴方に神機能リリース
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 7Proprietary & Confidential
Asakusaのテストシートで
Excelの関数が評価できるようになり
ました
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 8Proprietary & Confidential
へ?
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 9Proprietary & Confidential
Asakusa0.7
テストシート上で Excelの埋め込み関数がそのまま評価されるようになった。
– 例)特定のセルに以下のように Excelの関数を埋め込むことができる 単純参照「 =K206」のように他のセルの値をそのままコピーできる
演算処理「 =+E210/$K$206*$M$241」のように演算処理を埋め込むことができる
Excel上で計算モデルを作っておくとそれがそのままテストデータとして利用できる、ということ
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 10Proprietary & Confidential
一つの Excelのブック
お勧めの方式テストデータを仕様書として構成管理してしまう
InputDataSetのシート群
OutputDataSetのシート群Ref
Ref
計算モデルを Excelの計算式で記述したシートテスト仕様書
Excel方眼紙でソレっぽく記述
Ref
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 11Proprietary & Confidential
こんなまとめシートも作れる
この固まりが入力シート一個分
こっちが出口一個分
そのままテストデータ完全連動
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 12Proprietary & Confidential
・・・ここでさらに小技を披露でも Excelのセル参照って、 null参照だと勝手にゼロ埋めしませんか?
– これはこれで面倒 出力シートはセル参照のコピーで連打したい
– 楽だからw ・・・すると被参照セルが nullだと勝手にゼロ埋めになる
– 出力が「 nullまたは一定の想定数値」というテストルールにしたい! はい?そんなのあったっけ?
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 13Proprietary & Confidential
そんな貴方に神機能リリース
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 14Proprietary & Confidential
Asakusaのテストシートでテストの出力を
勝手にねじ曲げることができるようになりました
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 15Proprietary & Confidential
public interface ModelTransformer<T>
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 16Proprietary & Confidential
これpackage com.asakusafw.testdriver.core;
/**
* Transforms data model objects.
* @param <T> the data model type
* @since 0.7.0
*/
public interface ModelTransformer<T> {
/**
* Transforms the target data model object.
* @param model the target data model object
*/
void transform(T model);
}
割と無敵クラスなので乱用すると収拾不能になります
どうしても困ったときにアーキテクトな人が
フレームワーク的に計画的にご利用ください
因みに 0.7では Undocumentedだそうです。でも使えます・・・
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 17Proprietary & Confidential
・・・ということで
Asakusaのテストフレームワークはいろいろ便利になっています。以上、おしまい