「バックスラッシュモデル」っていうのが、あるようだ(ここをみた)
要するに、単体~システムテストまで「(動的検証フェイズ)をざっくり切り落とした考え方」だそうな。
これ、モデル駆動型開発(MDD)にするから、目新しい話で、そうじゃなかったら、あり得る話ですよねえ??
まず、比較のため
・ある顧客マスタ(既存)をもとに、ダイレクトメールを送るシステムを作ります
→送るDMは1プログラムにつき、1種類のDM、顧客の抽出条件も1種類
(DMの種類が変わったり、顧客の抽出条件が変わる場合、別プログラムを作る)
これをStruts、MySQLでつくるとしたら、多分、テストをすると思うんですよ。
まったく同じシステム、つまり
・ある顧客マスタをもとに、ダイレクトメールを送るシステムを作ります
→送るDMは1プログラムにつき、1種類のDM、顧客の抽出条件も1種類
(DMの種類が変わったり、顧客の抽出条件が変わる場合、別プログラムを作る)
これをAccessで作るとしてください。
そうすると、
1.Accessで、既存の顧客マスタをインポートする
2.DMの出力の可変内容、選択条件を設定したクエリを作る
可変内容は、
・ある位置に、項目をそのまま出力する場合は、項目名のみ
・項目名に、文章が付け加わる場合は、連結する文字もつけて設定
例えば
「○○様のご来店を心から、お待ちしております。」
のような、項目名に、文章が付け加わる場合、クエリの項目に
あいさつ文1:[顧客マスタ].[氏名] & "様のご来店を心から、お待ちしております。"
と設定する
3.クエリを基にしたレポートをデザインビューで作成
4.出力
たぶん、1から4の間、テストする人もいるかもしれないけど、Accessに慣れてる人は、テストしない気がする。
できたものを、出力する前にちょっとプレビューするかもしれないけど、それで、出力させてしまい、その結果をざっと確認するだけのような気がする。
これ、Accessでやったから、テストということも考えられるけど、ExcelとWordの差込印刷でもできるわけで、その場合、テストする可能性は、もっと少ないと思う。
おお、テストしてないぞ!
このAccessで作った例を、「そもそも、システムじゃない!」と議論するかもしれないが、Javaで作ったほうは、システムっぽいですよね。なら、Accessだって、使うツールがちがうだけだから、やっぱ、システムじゃない??
そーやって考えると、たぶん、「システムを作るとき、テストしないですむ条件」っていうのがあって、それは、こんなかんじ??
・そのツール(Javaの場合は、Java開発環境、Accessの場合、Accessそのもの)を使って作れるものが、予測できる
Java開発環境があっても、どんなものができるか、予測できません。
Accessの場合、どんなものができるか予測できます。
・作業手順が明確で、その手順は、枯れている。
上記のDMをAccessで作成する場合は、上のとおり
・ツールも枯れていて、想定の範囲内に動く
・仕様と、できるものの対応が明確である
今回の場合、DMと検索条件が決まっているので、できるものが明確。
・間違える要素があまりなく、間違えたとしても、そんなに大きな被害がない
Accessの場合、使い方がわかれば、あまり間違える要素は、打ち間違い以外ない。
打ち間違いは、ある程度、Accessが、はじいてくれる
上記のDMの場合、間違えたとしても、たいした被害がない。
これ以外にもあるかもしれないけど、こんな感じのツール&適用範囲であれば、テストは省略可能だと思います。
っていうことは、モデル駆動型開発(MDD)でテストが省略できるようになるとしたら
・そのツールで、何ができるか、はっきりわかる
・MDDにおける、要件定義からプログラミングまでの手法が明確であり、枯れている
・そのツールが枯れている
・要求仕様と、欲しいシステムの対応が明確である
・間違える要素があまりなく、間違えたとしても、そんなに大きな被害がない
なら、できるようになるかもしれない。
うーん、まだ、ずーっと先のような気がする。
要するに、単体~システムテストまで「(動的検証フェイズ)をざっくり切り落とした考え方」だそうな。
これ、モデル駆動型開発(MDD)にするから、目新しい話で、そうじゃなかったら、あり得る話ですよねえ??
まず、比較のため
「バックスラッシュモデル」でない方法で作る「システム」 |
---|
・ある顧客マスタ(既存)をもとに、ダイレクトメールを送るシステムを作ります
→送るDMは1プログラムにつき、1種類のDM、顧客の抽出条件も1種類
(DMの種類が変わったり、顧客の抽出条件が変わる場合、別プログラムを作る)
これをStruts、MySQLでつくるとしたら、多分、テストをすると思うんですよ。
「バックスラッシュモデル」で作るかもしれない「システム」 |
---|
まったく同じシステム、つまり
・ある顧客マスタをもとに、ダイレクトメールを送るシステムを作ります
→送るDMは1プログラムにつき、1種類のDM、顧客の抽出条件も1種類
(DMの種類が変わったり、顧客の抽出条件が変わる場合、別プログラムを作る)
これをAccessで作るとしてください。
そうすると、
1.Accessで、既存の顧客マスタをインポートする
2.DMの出力の可変内容、選択条件を設定したクエリを作る
可変内容は、
・ある位置に、項目をそのまま出力する場合は、項目名のみ
・項目名に、文章が付け加わる場合は、連結する文字もつけて設定
例えば
「○○様のご来店を心から、お待ちしております。」
のような、項目名に、文章が付け加わる場合、クエリの項目に
あいさつ文1:[顧客マスタ].[氏名] & "様のご来店を心から、お待ちしております。"
と設定する
3.クエリを基にしたレポートをデザインビューで作成
4.出力
たぶん、1から4の間、テストする人もいるかもしれないけど、Accessに慣れてる人は、テストしない気がする。
できたものを、出力する前にちょっとプレビューするかもしれないけど、それで、出力させてしまい、その結果をざっと確認するだけのような気がする。
これ、Accessでやったから、テストということも考えられるけど、ExcelとWordの差込印刷でもできるわけで、その場合、テストする可能性は、もっと少ないと思う。
おお、テストしてないぞ!
このAccessで作った例を、「そもそも、システムじゃない!」と議論するかもしれないが、Javaで作ったほうは、システムっぽいですよね。なら、Accessだって、使うツールがちがうだけだから、やっぱ、システムじゃない??
そーやって考えると、たぶん、「システムを作るとき、テストしないですむ条件」っていうのがあって、それは、こんなかんじ??
・そのツール(Javaの場合は、Java開発環境、Accessの場合、Accessそのもの)を使って作れるものが、予測できる
Java開発環境があっても、どんなものができるか、予測できません。
Accessの場合、どんなものができるか予測できます。
・作業手順が明確で、その手順は、枯れている。
上記のDMをAccessで作成する場合は、上のとおり
・ツールも枯れていて、想定の範囲内に動く
・仕様と、できるものの対応が明確である
今回の場合、DMと検索条件が決まっているので、できるものが明確。
・間違える要素があまりなく、間違えたとしても、そんなに大きな被害がない
Accessの場合、使い方がわかれば、あまり間違える要素は、打ち間違い以外ない。
打ち間違いは、ある程度、Accessが、はじいてくれる
上記のDMの場合、間違えたとしても、たいした被害がない。
これ以外にもあるかもしれないけど、こんな感じのツール&適用範囲であれば、テストは省略可能だと思います。
っていうことは、モデル駆動型開発(MDD)でテストが省略できるようになるとしたら
・そのツールで、何ができるか、はっきりわかる
・MDDにおける、要件定義からプログラミングまでの手法が明確であり、枯れている
・そのツールが枯れている
・要求仕様と、欲しいシステムの対応が明確である
・間違える要素があまりなく、間違えたとしても、そんなに大きな被害がない
なら、できるようになるかもしれない。
うーん、まだ、ずーっと先のような気がする。