先ほど、 「仕様書から、テスト項目を浮き上がらせる」話のView編を書きました。
今回は、コントローラーと、モデルは、このViewと、どう違うのか。
コントローラーとモデルのテストに関しては、以前のブログ、 コントローラーとモデルのテスト方法って、多分、違うと思う に書き、一部、引数の値を変えただけのメソッド単位のテストでは、網羅しきれないときのスタブについてで修正しました。
まとめると、こんなかんじ。
■■ コントローラー
チェック項目:引数や呼び出しメソッドの帰り値
チェック内容:その値の組み合わせで、呼び出しメソッド等が変わるので、それがただしく呼び出されているか
チェック方法:指定された値(または値の範囲)で、正しく呼び出されるか
または、エラーになるか
■■ モデル
チェック項目:仕様書に書かれている手順(おおまかに)
チェック内容:ちゃんと、やってるか?
チェック方法:更新された値をログで出したり、通過しているかどうか確認する。
ちなみに、前回のビューも同じようにまとめると
■■ ビュー
チェック項目:各入出力項目
チェック内容:入力できるか、出力されているか、エラーになるか
チェック方法:境界値チェック、字種チェックなどなど
では、チェックシートについてです。
さっきのチェックシートは、結局
項目名 =チェック項目
チェック方法=各桁に並べたチェック
になります。種別は、そのチェック方法を限定するものです。
ということで、以下、見ていきます。
■■ コントローラーのチェックシート
こんなかんじです。
![](https://members.ld.infoseek.co.jp/mokano1/testtool4.jpg)
ここで、ステータス1、ステータス2、ステータス3となっているのは、「引数や呼び出しメソッドの帰り値」で、これは、気の利いたSEなら、プログラムの仕様書に表にしているので、それを貼りこむ(実際にはステータス1とかじゃなくって、引数名などになります)。
ある引数の値だけを調べたい場合は、最後の行(A2以外空白)のように調べたいところ以外、空欄にします。
で、横に、起動するメソッドを書いたり、値を返す場合は、その値を書いたり、エラーになる場合は、「エラー」と書いておきます。「通過」は、そこを通過したことをログでしらべるだけでOKのとき、「通過」のところに、「ログで確認」とか、書きます。
■■ モデルのチェックシート
こんなかんじです。
![](https://members.ld.infoseek.co.jp/mokano1/testtool5.jpg)
VIEWの「項目名」のところが、「調べる箇所」になっています。
そこに、プログラム仕様書のフリーフォーマットの部分に書かれている手順の、おおまかな処理内容を書きます。
そこの種別を書きます。どんな種別を想定するかは、マネージャーしだいになります。
普通は、
前処理
値チェック
主処理:値設定・更新
主処理:ソート
主処理:マージ
主処理:マッチング・JOIN
主処理:(このほか、あれば)
主処理:DB更新
主処理:通信
主処理:DB,通信以外
後処理
なんかかなあ。。。お好みっす。
で、その種別に応じて、エラーの項目も変わってくるということです。
(共通なのって、あまりないかも。結構散漫に広がってしまうかも)
こんな、かんじで作ることを今、考えています。
なお、この方法では、以下のことに注意です。
・この方法では、複数の項目が絡むもののチェックは、できません。
→シートに、もう一ひねり必要。
・出力がテスト項目だけですが、実際のテストにおいては、テストの条件なども記入しなければならないし、小項目、中項目も必要だったりします。そもそも、テキストファイルでなく、Excelに出すのが、普通です。
なので、これを利用する場合、個別のプロジェクトごとに対応しなければなりません。
つーか、手作業でやってもいいんだけどね。
というか、そもそも、こんなの、Excelのシートにしなくったって、手作業でやってもいいことですよね。
つまり、手作業でも、上記の手順でやれば、仕様書からテスト項目が(まるで、情報処理試験午後2の小論文で、問題から、書かなきゃいけない内容を浮かび上がらせるときのように)、浮かび上がってくるっていうことです。
なので、次回は、いままでのまとめとして、手作業でやる場合の、「仕様書からテスト項目を浮かび上がらせる方法」を体系化してみたいと思います。
今回は、コントローラーと、モデルは、このViewと、どう違うのか。
コントローラーとモデルのテストに関しては、以前のブログ、 コントローラーとモデルのテスト方法って、多分、違うと思う に書き、一部、引数の値を変えただけのメソッド単位のテストでは、網羅しきれないときのスタブについてで修正しました。
まとめると、こんなかんじ。
■■ コントローラー
チェック項目:引数や呼び出しメソッドの帰り値
チェック内容:その値の組み合わせで、呼び出しメソッド等が変わるので、それがただしく呼び出されているか
チェック方法:指定された値(または値の範囲)で、正しく呼び出されるか
または、エラーになるか
■■ モデル
チェック項目:仕様書に書かれている手順(おおまかに)
チェック内容:ちゃんと、やってるか?
チェック方法:更新された値をログで出したり、通過しているかどうか確認する。
ちなみに、前回のビューも同じようにまとめると
■■ ビュー
チェック項目:各入出力項目
チェック内容:入力できるか、出力されているか、エラーになるか
チェック方法:境界値チェック、字種チェックなどなど
では、チェックシートについてです。
さっきのチェックシートは、結局
項目名 =チェック項目
チェック方法=各桁に並べたチェック
になります。種別は、そのチェック方法を限定するものです。
ということで、以下、見ていきます。
■■ コントローラーのチェックシート
こんなかんじです。
![](https://members.ld.infoseek.co.jp/mokano1/testtool4.jpg)
ここで、ステータス1、ステータス2、ステータス3となっているのは、「引数や呼び出しメソッドの帰り値」で、これは、気の利いたSEなら、プログラムの仕様書に表にしているので、それを貼りこむ(実際にはステータス1とかじゃなくって、引数名などになります)。
ある引数の値だけを調べたい場合は、最後の行(A2以外空白)のように調べたいところ以外、空欄にします。
で、横に、起動するメソッドを書いたり、値を返す場合は、その値を書いたり、エラーになる場合は、「エラー」と書いておきます。「通過」は、そこを通過したことをログでしらべるだけでOKのとき、「通過」のところに、「ログで確認」とか、書きます。
■■ モデルのチェックシート
こんなかんじです。
![](https://members.ld.infoseek.co.jp/mokano1/testtool5.jpg)
VIEWの「項目名」のところが、「調べる箇所」になっています。
そこに、プログラム仕様書のフリーフォーマットの部分に書かれている手順の、おおまかな処理内容を書きます。
そこの種別を書きます。どんな種別を想定するかは、マネージャーしだいになります。
普通は、
前処理
値チェック
主処理:値設定・更新
主処理:ソート
主処理:マージ
主処理:マッチング・JOIN
主処理:(このほか、あれば)
主処理:DB更新
主処理:通信
主処理:DB,通信以外
後処理
なんかかなあ。。。お好みっす。
で、その種別に応じて、エラーの項目も変わってくるということです。
(共通なのって、あまりないかも。結構散漫に広がってしまうかも)
こんな、かんじで作ることを今、考えています。
なお、この方法では、以下のことに注意です。
・この方法では、複数の項目が絡むもののチェックは、できません。
→シートに、もう一ひねり必要。
・出力がテスト項目だけですが、実際のテストにおいては、テストの条件なども記入しなければならないし、小項目、中項目も必要だったりします。そもそも、テキストファイルでなく、Excelに出すのが、普通です。
なので、これを利用する場合、個別のプロジェクトごとに対応しなければなりません。
つーか、手作業でやってもいいんだけどね。
というか、そもそも、こんなの、Excelのシートにしなくったって、手作業でやってもいいことですよね。
つまり、手作業でも、上記の手順でやれば、仕様書からテスト項目が(まるで、情報処理試験午後2の小論文で、問題から、書かなきゃいけない内容を浮かび上がらせるときのように)、浮かび上がってくるっていうことです。
なので、次回は、いままでのまとめとして、手作業でやる場合の、「仕様書からテスト項目を浮かび上がらせる方法」を体系化してみたいと思います。