********************************************************************** セッションS4-b 午後1 テーマ:テストの戦略を立ててみるテスト Return! コーディネータ:片山 徹郎 氏(宮崎大学) 講師 :池田 暁 氏(日立情報通信エンジニアリング) 森 孝夫 氏(三栄ハイテックス) 日時:9/5 13:30-15:00 参加人数:約20人 ********************************************************************** 片山 徹郎 氏 ●導入 今回はテストの考え方について学びます。 ●全体の流れ テスト戦略とは? 全体として何をテストするか? 何を考えるか? 今回の分科会ではひたすら手を動かす予定です。 ======================================== 講師:森 孝夫 氏 会場に対して質問 テストケース設計はしたことがあるか? ある方:ちらほら ない方:結構いる ------------------------------------------------------------------------- ●演習 例題:Myersの三角形 あるプログラムをテストするのに十分と思われるテストケースをあげるという問題。 13:35〜13:50 演習(5人くらいづつの4チーム) ------------------------------------------------------------------------- ●演習の解答 演習課題のテストケースとしてどのようなものがあるか? 参加者の回答例: 整数ではない値を入力 負の数を入力 数字以外を入力 0を入力 3つのうち0以外の数字を1つ入力 2辺の和が残りの1辺より小さい組み合わせを入力 全部の値が0を入力 模範解答: 14個のテストケースがある。 平均的なプログラマは7.8個回答した。 この演習の模範解答には抽象的解答も含まれる。 しかし、具体的な数値がテストでは必要。 今回はテストの考え方についてを学ぶ。 また、テストの全体的な設計について学ぶ。 ●テスト戦略とは? ・テストケースは、入力と期待結果の対。 ・テスト全体を設計するためには、バランスを考える必要がある。 そうしないと、テスト項目に偏りが生じる。 ・大規模なテストは、一人では無理。 ストレステスト、ネットワークテストなど多くのテストがある。 ・全体のテスト戦略が必要。 ●何をテストしなければならないか? ・基本は要求に対する漏れのないテスト設計 ・実際の不具合はそれだけでは発見が難しい Myersの場合、判別する機能をテストする必要がある。 必ずしも、テストケースに関することが仕様書に書いてあるわけではない。 ・テストにより、内部の動きが変わるのではないか? ・不具合をいかに抽出するか? を考える必要がある。 ・参考となるモデルはある Myersの14のシステムテスト・カテゴリ ボリューム、ストレス、効率、ストレージ、信頼性、構成、互換性、設置、回復 操作性、セキュリティー、サービス性、文章、手続き など ・テストケースは、自分で考える必要がある。 ●テスト観点 ・テスト観点とは、「何をテストすればよいか」を示したもの。 ・テストでは、考慮しなければならないことがある。 例:境界値テスト 境界のところを狙ってテストをする。 全体をテストするテストではなく、全体の中の個別をテストするもの。 ・何をテストするかをソフトウエアごとに決める必要がある。 例:搭載メモリが少ないなら、メモリに関する項目のテストが必要。 境い目(境界)をテストするなど。 ・観点の抽出が非常に重要。 ・Ostrandの4つのビュー ユーザービュー、仕様ビュー、設計・実装ビュー、バグビュー これは、ソフトウェアに関する様々な観点を探す。 ・見逃していた観点を見つけることためにモデリングが重要。 又、立ち位置を変えることも大事。 ●代表的な4つの観点 ・User view ・spec view ・fault view ・design view バランスが重要 ●組み込みのテストで考慮すべきテスト観点の例: ・機能:テスト項目のトリガ ・パラメータ ・プラットフォーム・構成 ・外部環境 その他 ・状態 ・タイミング ・組み合わせ ・性能 ・信頼性 ・GUI・操作性 ・出荷先 ・障害外王政 ・セキュリティー ●テスト観点のモデリングによるテスト戦略立案 ・テスト戦略というフェーズは暗黙的に行われることが多い。 ・テスト観点のモデリングを行ってテスト戦略を立案すべきである。 ・今回はテスト分析モデリングにトライする。 ●テスト設計を、分析と設計に分ける テスト設計を以下のように分ける必要がある。 | テスト設計 | ↓ | テスト分析 | テスト設計 | テスト実施 | ↓ テスト戦略の立案 Myersの三角形の例から: 仕様書に書いてあるものは見つけられる。 書いていないものは見つけづらい。 ・テストの設計は開発と似たところがある。 オブジェクト指向など ・カテゴライズ(カテゴリー化)により、テストのねらいどころが見えてくる。 ・テスト戦略は、研究者や人によって違う。 ●人間の思考によって4つに分類 テスト分析モデル作成を支える4つの施行技術 ・連想 ・階層化 ・集合論 ・目的志向 ボタンの入力例: ボタンを押すだけでなく、 ・何秒押したか? ・何回押したか? テストにより達成しなければならない目標があり、 そのためにどうか?達成できているか? ●テスト分析モデル作成の2つのアプローチ ・トップダウン型 上位から達成する型。 おもむろにテストケースをあげ、そこから詳細化。 ・ボトムアップ まず具体的にテストケースを書き、 いくつか集まったところで抽象化し、テスト観点を導きだしていく。 前半では、テストの観点とその考え方について学んだ。 ●参加者からの質問: Q. ボトムアップは、観点の抜けや漏れが発生するのでは? A. 概念化する必要がある。 1. 仕様書を頭から読む。 2. その単語から関連を見つける。 3. 観点を見つけたら、またその関連を見つける 4. 2と3を繰り返す。 仕様書には、一番上位のテスト観点を出していない。 真ん中あたりのテスト観点を出している。 ここから、後半 ======================================== 講師:池田 暁 氏 ●テスト分析モデル ・NGTによるモデル ・マインドマップによるモデル ・ゆもつよメソッドによるモデル ・FV表によるモデル ●4つそれぞれの説明: ・NGT ツリー状にテスト分析モデルを記載 ・マインドマップ 関連項目に線を引いて詳細化していく。 ・ゆもつよメソッド 機能とテストカテゴリの観点から表を作成する。 ・FV表 機能をあげ、その機能の検証内容と使用するテスト技法を記載。 ●4つの技法の違い: ・NGT 階層関係とその関連・関係を検討しやすい。 ・マインドマップ フリールールがゆえに、ブレーンストーミング的検討に使いやすい ・ゆもつよメソッド テストカテゴリに今までのノウハウを活用しやすい ・FV表 機能に対応した観点を表現しやすい 汎用性が一番高いのはマインドマップ。 マインドマップは他の技法と関連させやすい。 例: マインドマップで列挙、NGTで整理。 今回は汎用性の高いマインドマップを使用 ●マインドマップの基本 トニー・ブザンにより考え出された図解技法。 絵や図を入れて簡単に書く。 ================================= マインドマップのデモ 〜自己紹介〜 ビデオによる紹介 ================================= ●マインドマップには大きく2つのスタイルがある。 ・自由記述型 好きなように自由に記述 ・テンプレート型 テンプレートが用意されている 方向が決まっていなければ自由記述型。 決まっていればテンプレート型。 ================================= マインドマップのデモ 〜分析→設計の作業〜 ビデオによる紹介 ================================= 自分が何を考えたがっているかを知るのは実は難しい 似た例:KJ法 思いついた経緯がわからない マインドマップをわかりやすくする方法 ・イラストを入れてみる ・色を多く使う ・テストケース作成手順 仕様書からマインドマップを作成。 マインドマップからテストケースを作成。 ・全体を途中で見直す必要がある。 ・マインドマップは、他の人とは違うものができる。 ・マインドマップを否定するのはよくない。 自分の考えを否定されることになる。 ・マインドマップの目的: テストの観点をいろいろと出す。 仕様書のバグを出す。 ================================= マインドマップのデモ 〜共有作業〜 ビデオによる紹介 ================================= ・マインドマップをブレインストーミングに使用。 ・絵によりイメージが出るなら絵を入れるとよい ・レビューの際にマインドマップを用いると: 考え方の流れが分かる。 どこが間違っているかが分かる。 何かあれば新たに付け加えられる このあとグループ演習 ================ 終了時刻14:50分 10分休憩〜