テスト自動化の品質モデルの扱い

25
テスト自動化の品質モデルの扱い テスト設計やテスト環境、テスタビリティの品質モデル テスト自動化研究会 井芹洋輝 2014/6/28 AsianAA

Upload: h-iseri

Post on 28-May-2015

1.993 views

Category:

Documents


1 download

DESCRIPTION

2014/6/28 AAA

TRANSCRIPT

Page 1: テスト自動化の品質モデルの扱い

テスト自動化の品質モデルの扱い テスト設計やテスト環境、テスタビリティの品質モデル

テスト自動化研究会 井芹洋輝

2014/6/28 AsianAA

Page 2: テスト自動化の品質モデルの扱い

概要

テスト自動化に関わる品質モデルとその簡単な留意点を紹介します

セッションの狙いとして、「テスト自動化の品質」を、品質モデルを使って整理して考えられる形を目指します

自己紹介

井芹 洋輝

組み込みでの開発やテストに従事

2

Page 3: テスト自動化の品質モデルの扱い

品質モデルとは

世の中の定義

「ソフトウェア品質モデルは,ソフトウェアの品質を階層構造のモデルで表現したものである」(SQuBOK v20071125)

「品質要求及び品質評価の基礎を与えるような特性の集合及び特性間の関係」(JIS X 0133-1)

3

Page 4: テスト自動化の品質モデルの扱い

ソフトウェアの品質モデルの例 代表的なソフトウェアの品質モデル

ISO/IEC9126、ISO/IEC 25000シリーズ、FURPS+

品質特性のツリー構造でモデルを構成

例) ISO/IEC 25010 システム/ソフトウェアの品質モデル システム/ソフトウェア製品品質

機能適合性 機能完全性

機能正確性

機能適切性

性能効率性 時間効率性

資源効率性

容量満足性

互換性

使用性

・・・

利用時の品質

・・ ・・

4

ツリー構造で品質特性を構造化

Page 5: テスト自動化の品質モデルの扱い

ソフトウェア品質モデルをどう使うか?

品質特性

資源効率性

時間効率性

障害許容性

5

●サーバのCPU占有率

●サーバの記憶領域の占有率

●テスト実施の

時間効率

●記憶容量不足時の動作

●テスト環境の×○不具合からの復帰

●□○記録データの破損時からの復帰

【前準備】対象に合わせて

優先付け・ブレークダウン

Page 6: テスト自動化の品質モデルの扱い

ソフトウェア品質モデルをどう使うか?

品質特性

資源効率性

時間効率性

障害許容性

6

●サーバのCPU占有率

●サーバの記憶領域の占有率

●テスト実施の

時間効率

●記憶容量不足時の動作

●テスト環境の×○不具合からの復帰

●□○記録データの破損時からの復帰

【前準備】対象に合わせて

優先付け・ブレークダウン

【要求抽出の観点に用いる】 ●テスト実施時間はどの程度が

良いか?

●テスト環境の×○不具合発生時の動作はどうするか?

【評価の観点に用いる】 ●テスト実施時間は問題ないか?

●テスト環境の×○不具合発生時の動作は想定通りか?

【活用】具体的な

観点や指標を抽出する

ターゲットに合わせた品質モデル

観点や基準

標準的な

品質モデル

Page 7: テスト自動化の品質モデルの扱い

ソフトウェア品質モデルをどう使うか?

7

•合目的性

•正確性 機能性

•成熟性

•障害許容性 信頼性

•理解性

•習得性 使用性

•時間効率性

•資源効率性 効率性

•解析性

•変光星 保守性

•環境適用性

•置換性 移植性

体系化された品質モデル

要求抽出や仕様化の観点

評価の観点

整理された良い品質モデルを用いることで、

整理しながら分析を進められるようになります

Page 8: テスト自動化の品質モデルの扱い

テスト自動化に関わる品質モデル

8

テスト環境 テスト対象 テスト

テストシステム

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 9: テスト自動化の品質モデルの扱い

テスト自動化に関わる品質モデル

9

テスト環境 テスト対象 テスト

テストシステム

【テスト設計の

品質モデル】 【テスト環境の

品質モデル】 【テスタビリティの

品質モデル】

品質モデル

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 10: テスト自動化の品質モデルの扱い

テスト自動化に関わる品質モデル

10

【テスト設計の

品質モデル】 【テスト環境の

品質モデル】 【テスタビリティの

品質モデル】

品質モデル

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

テスト環境 テスト対象 テスト

テストシステム

Page 11: テスト自動化の品質モデルの扱い

テスト環境の品質モデル

製品やサービス開発の品質モデルを利用できる

IEC/ISO 25000シリーズなどを開発と同じように利用可

例)「テストの品質モデル構築の取り組み 」http://www.slideshare.net/goyoki/tq-mfor-sts

テストとテスト対象では求められる品質は当然異なる

ただ、テストであっても、製品と同じように保守性や信頼性等に注意を向けて、品質要求を抽出し、品質を確保すべき

11 【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 12: テスト自動化の品質モデルの扱い

テスト環境の品質モデル

テスト環境の品質モデルの例

「Software Test Automation」(Mark Fewster他)での

自動テスト環境の品質特性定義

12

品質特性 内容

保守性 テスト対象の変更への対応コスト

効率性 テスト自動化に要する時間や工数

信頼性 テストの欠陥により失敗と誤認されたテストの数

柔軟性 テストのグルーピングや優先付けのやりやすさ

ユーザビリティ テスト環境を使用するのに必要なトレーニングコスト

堅牢性 不具合のテストに対する影響範囲

移植性 対応する自動テストツールの切り替えコスト

上位の特性は一般的な品質モデルと同じ

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 13: テスト自動化の品質モデルの扱い

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

テスト環境の品質モデル

テスト環境の品質モデルでの留意部分

13

テスト自動化環境は一般的に保守性、次いで信頼性の価値が高い。生産性や用途の選択肢を広げ、他の品質を左右するため

ISO/IEC 25010 保守性

モジュール性

解析性・試験性

修正性

【●テスト対象の変更に対する安定性】

テスト対象の変動点や変更リスクの特定はできているか?またそれに対する対策は十分か?

【●テスト実装の試験性・解析性】 テスト設計との合致性は確認しやすいか?

テストコードのレビューやデバッグは容易か?

【●テスト実装のモジュール性】

テストコードは保守しやすいように構造化(凝集性の確保、結合性の分離)されているか?不要な副作用はないか?

【●テスト実装の変更性】 ・テスト実装の変更がしやすいか?

具体的な特性の例

Page 14: テスト自動化の品質モデルの扱い

テスト自動化に関わる品質モデル

14

【テスト設計の

品質モデル】 【テスト環境の

品質モデル】 【テスタビリティの

品質モデル】

品質モデル

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

テスト環境 テスト対象 テスト

テストシステム

Page 15: テスト自動化の品質モデルの扱い

テスト対象のテスタビリティ

テスト目的の達成のしやすさについてのテスト対象の品質モデル

テスト自動化については、テスト自動化のやりやすさについての品質モデル

様々な定義や提案が存在

例)ISO/IEC 9126、ISO/IEC 25000シリーズ、Boehmの品質モデル、McCallの品質モデル

15 【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 16: テスト自動化の品質モデルの扱い

テスト対象のテスタビリティ

テスタビリティの品質モデルの例

16

「実践ソフトウェアエンジニアリング」(ロジャー S.プレスマン)でのテスタビリティの品質モデル

品質特性 内容

実行円滑性 テストの実行を円滑にできるかの程度

観測容易性 テストの出力やエラー発生、バグの観測の容易性

制御容易性 テストの操作の容易性。特殊な例外を発生させやすいかなど

分解可能性 テスト範囲やテストの実行範囲を切り分けやすいかの程度

単純性 機能や構造、コードがテストにとって単純かどうかの程度

安定性 テスト対象が安定しているか(変更されないか)の程度

理解容易性 テスト設計に必要な情報が正確で分かりやすいかの程度

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 17: テスト自動化の品質モデルの扱い

テスト対象のテスタビリティ

テスト自動化におけるテスタビリティの品質モデルの例

17

「レガシーコード改善ガイド」において、自動テストの導入で重視される特性 ※王道的な自動化でなく、糞コードにいかに自動化(主にユニットテスト)を導入するかの観点

品質特性 内容

実行円滑性 テストの実行を円滑にできるかの程度

観測容易性 テストの出力やエラー発生、バグの観測の容易性

制御容易性 テストの操作の容易性。特殊な例外を発生させやすいかなど

分解可能性 テスト範囲やテストの実行範囲を切り分けやすいかの程度

単純性 機能や構造、コードがテストにとって単純かどうかの程度

安定性 テスト対象が安定しているか(変更されないか)の程度

理解容易性 テスト設計に必要な情報が正確で分かりやすいかの程度

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

テスト結果を取得するための手段の充実度

テスト実行の操作手段の充実度

テストにとって不都合なコンポーネントを置換しやすいか

Page 18: テスト自動化の品質モデルの扱い

テスト対象のテスタビリティ

テスタビリティで留意すべきこと

18

テスト自動化では重要

良否は自動テストの生産性や用途の選択肢を広げ、他の品質に波及します

どうすればテストが楽になるかを念頭に、テストの保守性とセットで開発の上流から作りこみましょう

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 19: テスト自動化の品質モデルの扱い

テスト自動化に関わる品質モデル

19

【テスト設計の

品質モデル】 【テスト環境の

品質モデル】 【テスタビリティの

品質モデル】

品質モデル

【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

テスト環境 テスト対象 テスト

テストシステム

Page 20: テスト自動化の品質モデルの扱い

テスト設計の品質モデル

いくつかの提案や実例が存在

自動テストにおけるテスト設計の品質モデルの例

例)Software Test Automation(Mark Fewster他)でのテスト設計の特性

テストの十分性、テストの効率性

今回紹介する特性

20 【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

品質特性 内容

妥当性 テスト設計が、テスト目的・テスト要求を達成するものであるかの程度

十分性 網羅すべき実行領域に対してテストが十分かどうかの程度

効率性 どれぐらい効率的にテスト目的を達成できるかの程度

Page 21: テスト自動化の品質モデルの扱い

テスト設計の品質モデル

いくつかの提案や実例が存在

自動テストにおけるテスト設計の品質モデルの例

例)Software Test Automation(Mark Fewster他)でのテスト設計の特性

テストの十分性、テストの効率性

今回紹介する特性

21 【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

品質特性 内容

妥当性 テスト設計が、テスト目的・テスト要求を達成するものであるかの程度

十分性 網羅すべき実行領域に対してテストが十分かどうかの程度

効率性 どれぐらい効率的にテスト目的を達成できるかの程度 テスト自動化ではテスト設計のスケーラビリティが向上するため、

ある程度のテスト設計の冗長性が許容される事が多い

Page 22: テスト自動化の品質モデルの扱い

テスト設計の品質モデル

テスト設計の妥当性

テスト目的・テスト要求を達成するものであるかの程度

例)バグ出しが目的なら、きちんとバグを出すテストとなっているか?

課題

テスト自動化では問題になっている事が多い

Ex)テスト自動化が目的化する・手段のみに価値を置く

留意点

(自動テストに限らず)テスト目的・テスト要求の識別と、それに基づくテスト設計がとても重要

まずはテスト目的があり、その達成手段の中でテスト自動化の選択肢が出てきます

テスト目的をテスト設計をどう結び付けるかは、それらを方法論化した各種テスト手法が参考となります

ゆもつよメソッド、HAYST法等

22 【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 23: テスト自動化の品質モデルの扱い

テスト設計の品質モデル

テスト設計の十分性

テストすべき実行領域に対する網羅度 Ex)各種カバレッジが基準の達成度

課題 テスト自動化で悩む事が多い

自動化するとテストの網羅度を容易に増やせるため

悩む背景 テスト対象は複雑で曖昧

テスト領域が爆発

テスト目的と十分性基準の関係が不明瞭

留意点

複数の観点から総合的に判定して、曖昧さに対処するアプローチがしばしばとられる

23 【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 24: テスト自動化の品質モデルの扱い

テスト設計の品質モデル

テスト設計の十分性:観点の例

テスト十分性の評価アプローチの例 テスト設計の進め方の正確性や妥当性を評価する

テスト観点は十分か? 選択したテスト設計方針は妥当か? テスト設計アプローチの進め方は妥当か? テスト設計アプローチごとの網羅度は妥当か?

体系的なテスト設計アプローチごとに十分か評価する

制御フロー、シーケンス:パスカバレッジの網羅度(C1、C2、・・・)

状態遷移:Nスイッチカバレッジ

組み合わせテスト:全組み合わせに対する組み合わせの割合、水準網羅率、2因子間網羅率

リスクベースドテスト:テスト実施後のリスクレベル

その他間接指標

テスト密度、欠陥検出率の予実比など

24 【テスト設計の品質モデル】 【テスト環境の品質モデル】 【テスタビリティの品質モデル】

Page 25: テスト自動化の品質モデルの扱い

最後に

今回は自動テストに関わる3つの品質モデルとその留意点の紹介を行いました

テスト環境の品質モデル

テスタビリティの品質モデル

テスト設計の品質モデル

こういった品質モデルを活用して、体系的かつ整理しながらテスト自動化の品質確保を進めていきましょう

ご清聴ありがとうございました

25