チーム紹介・コンセプト • • • 私たちチームT研は,香川大学工学部の高木研室に所属して いるメンバーです. 高木研究室では,ソフトウェアテストに関する研究を行ってい ます. この度は,テストの設計から実装までを行い,その成果を発 表するために参加させていただきました! 自動販売機の利用場面は様々・・・ 急いでいる人,お年寄り,急斜面,暑い場所,寒い場所 etc いかなる場面でもユーザが満足できる そこで本テスト設計のコンセプトは, 使う人みんながうれしい自動販売機 ○ 機能要件 3つのテスト観点 全体計画 実装機能に関するテスト ○ 非機能要件 信頼性に関するテスト ○ ユーザビリティ要件 使用性に関するテスト 要求分析 アーキテクチャ設計 詳細設計 1 テストスコープ・テスト要求一覧作成 テストする範囲や機能・目的を定義 1. 自動販売機の使 われ方からテスト する項目の選定 3.テストの目的と 関連する要求を 決定 5W1H テストスコープ(抜粋) 2. テスト対象の機能 を洗い出し How What What What What What What What What What Who Who When Where Where When What What テスト対象 ラック 貨幣投入口 販売ボタン 商品取り出し口 懸賞ルーレット機 金額表示機 釣銭関係表示機 返金ボタン 販売者用キーボード CPU 自動販売機 自動販売機 自動販売機 自動販売機 自動販売機 自動販売機 販売者用キーボード 自動販売機 テスト要求 温熱器と冷却器が仕様通りに動作することを検証する 貨幣管理CPUが仕様通りに動作することを検証する 販売ボタン、返却ボタンが仕様通りに動作することを検証する 商品の詰まりが認識できるか検証する ルーレット機能が仕様通りに動作することを検証する 釣銭切れおよび釣銭払い出し動作中を表示できることを検証する 釣銭の有無によりランプが点灯するか検証する 金額表示機に表示されている残金が返金されるか検証する 販売者用キーボードが仕様通りに動作することを検証する 各種CPUが仕様通りに動作することを検証する 健常者でも問題なく使用できることを検証する 障がい者でも問題なく使用できることを検証する 急いでいるときでも問題なく使用できることを検証する 外温度が変わってもパフォーマンスを維持できることを検証する 傾斜が変わってもパフォーマンスを維持できることを検証する 自然災害発生時にもパフォーマンスを維持できることを検証する 販売者用キーボードの使いやすさを検証する 自動販売機の使いやすさを検証する 関連するテスト要件 機能要件 機能要件 機能要件 機能要件 機能要件 機能要件 機能要件 機能要件 機能要件 機能要件 非機能要件 非機能要件 非機能要件 非機能要件 非機能要件 非機能要件 非機能要件 ユーザビリティ要件 テスト要求一覧(一部省略) 全体計画 要求分析 アーキテクチャ設計 詳細設計 2 テストアーキテクチャ設計 テスト手法の決定+テスト全体を俯瞰した図 検証手法 5W1Hでの対応 テストアーキテクチャ 全体計画 要求分析 アーキテクチャ設計 詳細設計 3 機能要件に関するテスト • 主な用途に関するテスト テスト要求一覧(一部省略) 5W1H How What ハードウェア ラック テスト対象の機能 テストの目的(要求) 温度センサ 温熱器 冷却器 CPU ラック内の温度を適切に表示しているか確認 温商品用ラックの温度が52℃以上58℃以下となっているか確認 冷商品用ラックの温度が1℃以上6℃以下となっているか確認 上記の制御を適切に行っているか確認 紙幣投入口 硬貨投入口 紙幣処理CPU 硬貨処理CPU 紙幣格納用金庫 硬貨格納用金庫 硬貨種別チューブ 本機能で受け入れが認可されている紙幣を正しく処理できるか確認 本機能で受け入れが認可されている硬貨を正しく処理できるか確認 CPUが正しく動作するかどうかを確認 CPUが正しく動作するかどうかを確認 紙幣が正しく格納されるか確認 硬貨が正しく格納されるか確認 各種硬貨が正しく格納されているか確認 貨幣投入口 入力を正しく受け付けるかどうか確認 一部省略 販売ボタン 販売ボタン 金額表示機 金額表示機 金額が正しく表示されるか確認 釣銭切れ表示ランプ 釣銭払出中表示ランプ 釣銭切れ時にランプが点灯するかを確認 釣銭払出中にのみランプが点灯するか確認 返金ボタン 金額表示機に表示されている残金が返金されるか確認 キーボード 入力を正しく受け付けるかどうか確認 各制御用CPU マスタCPUを介して制御できるか確認 テスト要求一覧から水準を決めやすい機能 については因子・水準表を作成し,禁則条 件,制約条件を明確にして,All-pair法によ りテストケースの生成を行う. 釣銭関係表示機 返金ボタン 販売管理者用 内部キーボード その他 マスタCPU 因子水準表(一部省略) 因子 温度センサ 1℃~6℃ 52℃~58℃ 水準 それ以外の温度 温熱器 冷却器 紙幣投入口 [残念!はずれ]ランプ on on 1000円札0枚 一部 on off off 1000円札1枚 off 省略 1000円札2枚以上 禁則条件 1 2 3 4 5 全体計画 温熱器 準備中ランプ [あたり]ランプ [残念!はずれ]ランプ ルーレットランプ on on on on off 冷却器 売切れ表示ランプ [残念!はずれ]ランプ スピーカー [あたり]ランプ 要求分析 on on on 鳴る on スピーカー 鳴る 鳴らない 返金ボタン 1回押す 長押し 連打 制約条件 1 [あたり]ランプ on 2 温熱器 on 3 冷却器 on アーキテクチャ設計 スピーカー 鳴る 温度センサ 52℃~58℃ 温度センサ 1℃~6℃ 詳細設計 4 機能要件に関するテスト • 主な用途に関するテスト 2因子間網羅で生成したテストケース(一部省略) No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 温度センサ 1℃~6℃ 1℃~6℃ 1℃~6℃ 1℃~6℃ 1℃~6℃ 52℃~58℃ 52℃~58℃ 52℃~58℃ 52℃~58℃ 52℃~58℃ それ以外の温度 それ以外の温度 それ以外の温度 それ以外の温度 それ以外の温度 温熱器 off off off on on off off on on on off off on on on 冷却器 on on on off off on on off off off on on off off off 紙幣投入口 1000円札0枚 1000円札0枚 1000円札2枚以上 1000円札0枚 1000円札1枚 1000円札2枚以上 1000円札1枚 1000円札1枚 1000円札0枚 1000円札2枚以上 1000円札2枚以上 1000円札0枚 1000円札1枚 1000円札2枚以上 1000円札1枚 硬貨投入口 50円硬貨 500円硬貨 10円硬貨 10円硬貨 100円硬貨 500円硬貨 100円硬貨 50円硬貨 10円硬貨 100円硬貨 50円硬貨 100円硬貨 10円硬貨 10円硬貨 500円硬貨 一部 省略 (残念!はずれ)ランプ on off off off on off off off off on off off on on on スピーカー 鳴らない 鳴る 鳴る 鳴る 鳴らない 鳴る 鳴る 鳴らない 鳴る 鳴らない 鳴る 鳴る 鳴らない 鳴らない 鳴らない 返金ボタン 連打 1回押す 連打 連打 長押し 長押し 連打 1回押す 長押し 1回押す 長押し 連打 1回押す 1回押す 連打 テスト要求一覧から水準を決めにくい機能については, • • 内部キーボードに関するテスト CPU似関するテスト シナリオテスト テストID 内部キーボードに関するテスト(一部抜粋) テストID TC_ID_CPU_1_1 TC_ID_CPU_1_2 TC_ID_CPU_1_3 TC_ID_CPU_1_4 TC_ID_CPU_1_5 TC_ID_CPU_1_6 TC_ID_CPU_1_7 TC_ID_CPU_1_8 TC_ID_CPU_1_9 TC_ID_CPU_1_10 テスト手順 価格を設定する 価格を設定する 価格を設定する 価格を設定する 懸賞対象を設定する 懸賞対象を設定する 懸賞対象を設定する 懸賞対象を設定する ラック内温度を設定する ラック内温度を設定する 全体計画 検証内容 ラックと商品ボタン対応関係が取れていることの確認 価格が設定された値通りかを確認 初期値が0円であることを確認する 不正な値を入力した場合,直前の値を保持していることを確認する 初期値が"回らない"に設定されていることを確認する 購入時に懸賞ルーレットが回る設定に変更することを確認する 商品の初期値が"選択肢ではない"に設定されていることを確認する 商品を懸賞が当たった時の選択肢に変更できることを確認する ラック内温度の初期値が"冷却"に設定されていることを確認する ラック内温度を"加温"に変更できることを確認する 要求分析 指定条件 CPUに関するテスト テスト手順 送信元CPU TC_ID_CPU_1 商品を購入する マスタCPU TC_ID_CPU_2 温度を設定する マスタCPU TC_ID_CPU_3 在庫状況を確認する マスタCPU TC_ID_CPU_4 温度が適温でない 準備中ランプを点灯させる マスタCPU TC_ID_CPU_5 TC_ID_CPU_4を行う 準備中ランプを消灯させる マスタCPU TC_ID_CPU_7 TC_ID_CPU_6を行う 売切表示ランプを消灯させる マスタCPU TC_ID_CPU_8 入金を行う TC_ID_CPU_9 返金を行う TC_ID_CPU_10 商品を詰まらせる TC_ID_CPU_11 ルーレットを行う アーキテクチャ設計 送信先CPU 期待結果 ラックCPU 販売ボタンCPU 商品が出てきて,ルーレット機能が作動し, 紙幣処理CPU 残額が正常に表示される 硬貨処理CPU 商品取り出し口CPU ルーレットCPU 温商品は52~58℃, ラックCPU 冷商品は1~6℃で購入できる ラックCPU 在庫の有無を正常に把握できる 販売ボタンCPU ラックCPU 準備中ランプが点灯する 販売ボタンCPU ラックCPU 準備中ランプが消灯する 販売ボタンCPU ラックCPU 売切表示ランプが消灯する 販売ボタンCPU 紙幣処理CPU マスタCPU 硬貨処理CPU 紙幣処理CPU マスタCPU 硬貨処理CPU 金額表示機に金額が正しく表示される 金額表示機に金額が正しく表示され, 返金される 返金を行い,販売ボタンを消灯, マスタCPU 商品取り出し口CPU 全ての売切表示ランプを点灯し,販売を停止 ラックCPU ルーレットCPU ハズレ,またはあたりを判定する 販売ボタンCPU 詳細設計 5 非機能要件に関するテスト Who(使う人),Where(使う場所),When(使う状況) について負荷テスト Whoに関する負荷テスト(一部省略) テストケースID TC_ID_WHO_1 TC_ID_WHO_2 TC_ID_WHO_3 TC_ID_WHO_4 指定条件 入金している 入金していない 入金している 入金していない 想定ユーザ 成人(一般ユーザ) 成人(一般ユーザ) 幼児 幼児 重要度 高 高 低 低 異常操作 ボタン連打 ボタン連打 コンセントを抜く コンセントを抜く 期待結果 商品が多数出てこないことを確認 商品が出てこないことを確認 感電しないことを確認 感電しないことを確認 一部省略 TC_ID_WHO_29 TC_ID_WHO_30 TC_ID_WHO_31 入金している 成人(一般ユーザ) 入金していない 成人(一般ユーザ) 入金していない 成人(一般ユーザ) 中 高 高 準備中状態の商品の販売ボタンを押下 売り切れ状態の商品の販売ボタンを押下 準備中状態の商品の販売ボタンを押下 商品が出てこないことを確認 商品が出てこないことを確認 商品が出てこないことを確認 重要度は発生確率が高いもの順に 高,中,低 を設定 Whereに関する負荷テスト(一部掲載) テストケースID TC_ID_WHERE_1_1 TC_ID_WHERE_1_2 TC_ID_WHERE_1_3 TC_ID_WHERE_1_4 TC_ID_WHERE_1_5 TC_ID_WHERE_1_6 指定条件 傾斜が5° 傾斜が10° 傾斜が15° 傾斜が20° 傾斜が25° 傾斜が30° 重要度 高 高 中 中 低 低 テスト手順 商品を購入する 商品を購入する 商品を購入する 商品を購入する 商品を購入する 商品を購入する 期待結果 正常に商品が購入できることを確認 正常に商品が購入できることを確認 正常に商品が購入できることを確認 正常に商品が購入できることを確認 正常に商品が購入できることを確認 正常に商品が購入できることを確認 Whenに関する負荷テスト(一部掲載) テストケースID TC_ID_WHEN_1_1 TC_ID_WHEN_1_2 TC_ID_WHEN_1_3 TC_ID_WHEN_1_4 TC_ID_WHEN_1_5 TC_ID_WHEN_1_6 TC_ID_WHEN_1_7 全体計画 指定条件 震度3以下 震度4 震度5弱 震度5強 震度6弱 震度6強 震度7 重要度 高 高 高 中 中 低 低 テスト手順 震度3の衝撃を加えた後,商品を購入 震度4の衝撃を加えた後,商品を購入 震度5弱の衝撃を加えた後,商品を購入 震度5強の衝撃を加えた後,商品を購入 震度6弱の衝撃を加えた後,商品を購入 震度6強の衝撃を加えた後,商品を購入 震度7の衝撃を加えた後,商品を購入 要求分析 期待結果 正常に商品が購入できるか確認 正常に商品が購入できるか確認 正常に商品が購入できるか確認 正常に商品が購入できるか確認 正常に商品が購入できるか確認 正常に商品が購入できるか確認 正常に商品が購入できるか確認 アーキテクチャ設計 詳細設計 6 ユーザビリティ要件に関するテスト 使いやすさに関するテスト 使いやすいかどうかは実際使ってもらって検証 ユーザビリティ調査 年齢: データ集計表(一部省略) 障がいの有無: 回答者の 区別 回答者 下記のそれぞれの質問に対して、一番あなたの意見に近いと思う番号を丸で囲んでください。 アンケート項目\各項目の割合 質問 満足度 まったく そう思わない そう思わない どちらでも ない そう思う とても そう思う 全体 直感的操作がしやすい 1 2 3 4 5 レスポンスが速い 1 2 3 4 5 操作を間違えにくい 1 2 3 4 5 1 2 3 4 5 硬貨が投入しやすい 1 2 3 4 5 ファンファーレの音の大きさが適切である 1 2 3 4 5 準備中と販売中の違いがわかりやすい 1 2 3 4 5 売り切れと販売中の違いがわかりやすい 1 2 3 4 5 バックライトの明るさが適切である 1 2 3 4 5 金額表示器が見やすい 1 2 3 4 5 購入 商品の値段表記が見やすい ランプ,金額表示器 一部省略 年齢 (子供 / 成人 / 老人 ) 障害 ( 有 ・無 ) 1 2 3 4 5 全体 直感的操作がしやすい レスポンスが速い 操作を間違えにくい 購入 商品の値段の表記が見やすい 硬貨が投入しやすい 紙幣が投入しやすい 商品を取り出しやすい 販売ボタンの大きさが適切である 返金 釣銭取り出し口から釣銭を取り出しやすい 釣銭を取り忘れにくい 返金ボタンの大きさが適切である 懸賞 ルーレットの結果がわかりやすい ファンファーレの音の大きさが適切である ランプ,金額表示器 準備中と販売中の違いがわかりやすい 売り切れと販売中の違いがわかりやすい バックライトの明るさが適切である 金額表示器が見やすい ユーザビリティ調査で用いるアンケート(一部省略) 全体計画 要求分析 アーキテクチャ設計 詳細設計 7 工夫点 本テスト設計における3つの工夫点 1. 機能要件,非機能要件,ユーザビリティ要件の3つの要件 に ついてテスト コンセプト「使う人みんながうれしい自動販売機」を目指す 2. 5W1Hを用いることにより「漏れのないテスト」を目指す 自動販売機の使われ方を,5W1Hに基づいて網羅的に分析す ることにより,テスト項目の漏れを防止 3. テスト工程のシンプルさ&資料のわかりやすさを意識 テストのレビューや資料のトレーサビリティ確保のため 8
© Copyright 2024