17
Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved. Proprietary & Confidential NAUTILUS Asakusa 0.7 新新新新新新新 テテテテテテテテテテテテテテテテテテテテテ 2014/8/22 新新新新新新新新新 新新新新新新新 http://www.nautilus-technologies.com/ mailto:[email protected] Tel: 03-6712-0636 Fax: 03-6712-0664

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

  • Upload
    -

  • View
    205

  • Download
    2

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 2Proprietary & Confidential

okachimachi.orz

最近何やっているのか?– 某社の原価計算システムの構築

要件定義・業務分析・基本設計・詳細設計・テストとか 要するに「設計」 モデル作成とデータフロー作成

– いわゆる「ビジネスロジック」を記述して、 Asakusaバッチ処理がそのロジック通りに動いているか、どうか確かめる

– ・・・なので、テストとかやってる

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 3Proprietary & Confidential

テストの記述ここでいうテストは UTではない

– フローパートのテストですね。

いわゆる ST( system test)に近い

Asakusaでのフローパートのテストは普通に CTとか STのレベルになる

– 厳密には CT/STではないが、 UTではない– バッチのテストなので、 STというとちょっと違う– いずれにしろ、いろいろビジネスロジックを準備する必要がある

– 要するにある程度の準備がどうしても必要になる

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 4Proprietary & Confidential

普通にやるとコレ

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 5Proprietary & Confidential

業務系バッチ処理の Asakusaでのテストカラムが多い

– 超横長エクセルになる カラムが 100を超えたあたりで横スクロールのパチスロ状態

入力ポート /出力ポートが多い– やたらめったらシート数が増える

シート選択スクロールが目押し勝負になる

同じ値が多い– 業務系バッチ処理は movが多い

入力と出力が同じカラムが多い 何もいれないと nullとか 0で放置 なんか適当に定数とか入れとく “ 予約”とか普通にある

挙げ句に「仕様が変わっちゃった・・・てへ www」– 死ねばいいのに・・・– 全データのコピペ嵐

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 6Proprietary & Confidential

そんな貴方に神機能リリース

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 7Proprietary & Confidential

Asakusaのテストシートで

Excelの関数が評価できるようになり

ました

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 8Proprietary & Confidential

へ?

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 9Proprietary & Confidential

Asakusa0.7

テストシート上で Excelの埋め込み関数がそのまま評価されるようになった。

– 例)特定のセルに以下のように Excelの関数を埋め込むことができる 単純参照「 =K206」のように他のセルの値をそのままコピーできる

演算処理「 =+E210/$K$206*$M$241」のように演算処理を埋め込むことができる

Excel上で計算モデルを作っておくとそれがそのままテストデータとして利用できる、ということ

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 10Proprietary & Confidential

一つの Excelのブック

お勧めの方式テストデータを仕様書として構成管理してしまう

InputDataSetのシート群

OutputDataSetのシート群Ref

Ref

計算モデルを Excelの計算式で記述したシートテスト仕様書

Excel方眼紙でソレっぽく記述

Ref

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 11Proprietary & Confidential

こんなまとめシートも作れる

この固まりが入力シート一個分

こっちが出口一個分

そのままテストデータ完全連動

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 12Proprietary & Confidential

・・・ここでさらに小技を披露でも Excelのセル参照って、 null参照だと勝手にゼロ埋めしませんか?

– これはこれで面倒 出力シートはセル参照のコピーで連打したい

– 楽だからw ・・・すると被参照セルが nullだと勝手にゼロ埋めになる

– 出力が「 nullまたは一定の想定数値」というテストルールにしたい! はい?そんなのあったっけ?

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 13Proprietary & Confidential

そんな貴方に神機能リリース

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 14Proprietary & Confidential

Asakusaのテストシートでテストの出力を

勝手にねじ曲げることができるようになりました

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 15Proprietary & Confidential

public interface ModelTransformer<T>

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

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だそうです。でも使えます・・・

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

Copyright © 2011-2012 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 17Proprietary & Confidential

・・・ということで

Asakusaのテストフレームワークはいろいろ便利になっています。以上、おしまい