ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

テスト自動生成で考えるべきこと概論

2016-08-02 10:59:55 | Weblog

単体テスト、結合テスト、総合テストの違い
http://blog.goo.ne.jp/xmldtp/e/109e2e397ff8484af0b8ab1a5c1d040e

を書いた後に、各テストにおける自動生成について書こうと思ったんだけど、
その前に、自分にとっては当然だけど、社会にとっては、当然出ないことが
あると思うので、それについて、ちょっとまとめて書くことによって、
テスト自動化の概論みたいなことを書きたいと思います。




■テスト仕様書から、テストを自動化している「のではない」

例えば単体テストの仕様書から、自然言語処理などをして、JUnitのテスト項目を
「出しているわけではない」
自然言語処理すると、絶望的に難しくなる。

単体テスト、結合テスト、総合テストの自動化は、以下の手順で行う

(1)決定表など、自動化しやすい形で、Excelなどにつくっておく
(2)(1)から、テスト仕様書を自動生成する
(3)(1)から、テスト(JUnit等)を自動生成する
(4)必要なら、(1)からデータなどを自動生成する
(5)(3)を実行する
(6)(5)のエビデンスを取る

仕様変更が有る場合、(1)の決定表などを修正し、テスト仕様書と、テストを自動生成する
だから、仕様書とテストの内容が一致する。

それに対し、回帰テストは、上記単体テスト、結合テスト、総合テストで
自動化されてできたテストの中から抜き出して、テストを行う。

この決定表、自動化することをにらんで、あらかじめ自動化しやすい形で表をつくる。




■テスト項目は、固有要件 X テスト観点(共通要件)の組み合わせ=表になる。

 その際、単体テスト、結合テスト、総合テストでは、機能もテスト観点も異なる。

 単体テストの場合は、関数レベル(またはメソッドレベル)でテストする。
 その場合、テストすべき関数・メソッド(以下、関数と記す)の固有要件とは、
 関数らの入力と出力である。具体的には
   関数の各引数
   関数に入力するファイル
   関数に入力するDB
   関数に入力するメッセージ(通信)
   関数が出力する返り値
   関数が出力するファイル
   関数が出力するDB
   関数が出力するメッセージ(通信)
 になる。これらのテスト観点として、同値・境界値があるが、それらの使い分け
 とXのさせ方は、単体レベルのときに記述する。

 結合テストの場合は、
   サーバーなどのAPIテストの場合は、関数がAPIに変わるだけで、単体と同じ
   画面の場合は、画面入力・出力項目のテストのほかに、イベント(ボタンクリック)など
 が固有要素となる。このときのテスト観点は、入力項目は、その項目の型によってちがう
 (例:チェックボックスの境界値??はないよね)

 総合テストは、機能要件と非機能要件に分かれる。
 機能要件は、要求仕様時にフォーカスした業務ができるかどうかになる。
 非機能要件は、非機能要求グレードや品質特性などに基づいてテストすることになる。この場合、固有要件は大きなシステム、サブシステムレベルになる。




■テストフェーズによって、自動化するものが違う

 単体テストの場合は、仕様書とxUnitのテスト内容(ドライバ)を自動生成する
 呼び出すスタブ(ダミーモジュール)は自動生成することもある。
 スタブには2つの目的というか、ケースがある
  (1)リンクする為に呼び出される。固定値を返せばよい
  (2)特殊なテスト(SQLエラーを確実に返す)ために呼び出される
     何かの値、ファイルがあったら、Exceptionを返すなどという形で設定される

 結合テストの場合は、仕様書とスクリプト(たとえば、seleniumを実行させる為のとか)
 を生成する形かな・・

 総合テストはスクリプトだけど、自動化というよりか、ごみプロを作成する
 (1000回呼び出すために、1000回書くのは面倒なので。。。。)

 回帰テストは、Jenkinsで構成管理が走ったときにテストするという意味での自動化
 であり、Jenkinsで実行してもらうスクリプトを書く。

 ということで、自動化のために、なにを作るのかが異なる。




このぐらい意識あわせをしておけば、各論に入って大丈夫かな・・・
 
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« IoTでは、ゲートウェイを... | トップ | ベンチャー、海外展開、事業... »
最新の画像もっと見る

Weblog」カテゴリの最新記事