「Asakusa0.7の新機能で、テストデータをどうドキュメントするのか的な実用的なアレ」...

Preview:

DESCRIPTION

「Asakusa0.7の新機能で、テストデータをどうドキュメントするのか的な実用的なアレ」 by @okachimachiorz1

Citation preview

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.Proprietary & ConfidentialNAUTILUS

Asakusa 0.7~新機能でででで

テストデータをうまくドキュメント化するアレ

2014/8/22株式会社ノーチラス・テクノロジーズ

http://www.nautilus-technologies.com/mailto:contact@nautilus-technologies.com

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のテストフレームワークはいろいろ便利になっています。以上、おしまい

Recommended