404 motivation not found | t_ishidaのブログ

1月/70

1

テスティングフレームワーク

能書き

まだまだメモなので、僕と一部以外の人には意味不明と思われる。

背景

  • 先日、自動テストのメモを当日記で書いた。
  • 197Xsのチャットで、これを読んだまちゅ氏*1自動テストの話をした。
  • id:itengineer氏がフレームワークがあれば良いと日記で言及。
  • id:gothedistance氏と197Xsのチャットでちょっと話した。
  • トイレで、ふとした思いつきが有ったのでメモする ← いまここ

これについて

テーマ
what:これはテストをするためのソフトウェアです。
when:テストをする時に使います
who:コードを書く人も書かない人も使います
why:幸せになるためです
where:決まってません
how:決まってません

ぶっちゃけ:コードを書く人にとっても書かない人にとっても幸せなツールでありたい

ってか、これだと漠然としすぎなので、現実に落とし込むと、

  1. どのテストで使うの?
  2. どう使うの?

ってところになります。

まず、普通に考えれば単体テストで使うことになるでしょう。結合テストとは、データのラウンドトリップとかの考え方になるので、単体テストのシナリオがこなせるツールであれば、そこは使う人の応用次第で出来なくないと思うし、GUIからの操作となると、単純な自動化は難しいと思うし。以上の観点から、とりあえずの目標は単体テストを主眼におけば良いんじゃないかと。

それについての思いつき

テスト仕様書とドキュメント

多分、コード書く、書かないはおいて置いても職種的に圧倒的多数のSIerがターゲットユーザーになるはず。そこで「テスト」って言うと、ドキュメント化の考え方は避けて通れないところだと思います。そうすると、考え方としては2点。

  • ドキュメントからユニットテストをジェネレート
  • ユニットテストからドキュメントをジェネレート

って事になりますが、

ここで、両者の視点から考えれば、ラウンドトリップ可能が望ましい。すると脊髄反射で思いつくのが、ExcelのVBAでなんらかのユニットテストのコードをジェネレート、なんらかのユニットテストからExcelの表形式にジェネレートできればよくね?

と、なります。

しかし、

  • ドキュメントの雛形が固定されちまう
  • この分だと言語が固定されちまう

が、それだと、俺ツールな感じが否めません。

もっと汎用的にしようと思った時。

  • んじゃ、ドキュメントからの吐き出しはとりあえず、ドキュメントにテストコード化に必要な設定可能項目を設けておいて、そこから、XMLなり、YAMLなり、CSVなりのテストコードに出来るデータを吐き出してもらう事にすれば良い。*2
  • そのデータを読み込んで、テストコードにする部分を作成すれば良い。*3
  • テストコード中にフォーマットに則ったコメントがついていれば、それをXMLなり、YAMLなり、CSVなりのドキュメントに出来るデータを吐き出せれば良い*4

と、実現可能な範囲の方向性について、こんなところが脊髄反射で出てきましたが、どう思います?(漠然としすぎててどうもこうもねーよとw)、もし、この方向を考えるとしたら、ここからが規格を決めなきゃならんので、人数と多ジャンルの人が居る、叩き合いに有利な197Xsの強みかと。

テスト結果のレポート

まだ、考えてない。

一言

うだうだ言ってないで、思いついたならコード書けハゲってところですが、まだ詰めないと書けない。

自分に対する要約

つまりは、自動テスト用のゲートウェイとなるデータの規格を考えると言うこと。

  • ドキュメントからの側面
    • 何らかの形でデータを吐き出してもらう(ドキュメントのマクロで実装)
    • データを取り込んでドキュメントに反映する(ドキュメントのマクロで実装)
    • もしくは、設定ファイルを作って、設定を読み込んで、ドキュメントへの反映とかを自動化するという考えもある
  • 自動テストからの側面
    • データを読み込んで、自動テストを自動生成する
    • 自動テストを読み込んでデータを自動生成する
    • ソースコードそのものを解析するのは大変なので、テスト項目毎に定形のコメントを入れてもらう形をとる。

*1http://www.machu.jp/diary/

*2:つまり、ドキュメントからデータまでは一旦ブラックボックス。

*3:ここは言語ごとに必要なので追加編集が柔軟に出来るべき

*4:ここも言語ごとに必要なので追加編集が柔軟に出来るべき

Share and Enjoy:
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Tumblr
  • email
  • Facebook
  • FriendFeed

RSS Feed

コメントはまだありません。

Leave a comment!

<< 色々自動化したいと考え中

Find it!

Theme Design by devolux.org

Tag Cloud