イントロ

ソフトウェアテストセミナーに参加してきました。

テーマ ソフトウェア品質マネジメントへ・・プロセスと改善のアプローチ
対象 テスト技術者のリーダー層、または目指している人

(自分の今のポジションとは違うのですが興味があったので参加してみました)

内容は、

  • ソフトウェアの品質について
  • テストプロセスの改善アプローチ

についてでした。
改善アプローチについてはまだ早すぎる内容でしたが、ソフトウェアの品質については勉強になりました。

感想

どんなにスマートに開発を行っても、どんなにバグが少なくても、お客様が満足しなければそれは品質の高いソフトウェアとは言えません。品質を高めていく(ユーザの満足度をあげる)には、良いテストを行うことが大事であり、その為にテストを体系的に学習する必要性を感じました。

ソフトウェアの品質について、ざっくりとまとめ

ソフトウェアの品質とは
  • ソフトウェアの品質とは、ユーザの満足度である
  • ソフトウェアの設計仕様には、外部仕様(ユーザの視点)と内部仕様(開発者としての視点)とがあり、そのどちらにも適合しなければいけない。開発側の要件だけでなく、ユーザ側の要件も満たしていないと品質が高いとは言えない。
  • ソフトウェアの品質は、"当たり前品質"から"魅力品質"へとパラダイムシフトしている。
  • 品質には、機能性、信頼性…等の側面がある*1
  • 時間、コストと品質はトレードオフの関係である為、時間とコストを考慮して達成すべき品質を決定する。
テストプロセスとは

■標準的なテストプロセス(ISTQBの定義)
テスト=テストケースを実行するではなく、計画、設計、実装、検証..と一連のプロセスである。
[ISTQBで定義されているテストプロセス]

  1. テスト計画作業とコントロール
  2. テストの分析と設計
  3. テストの実装と実行
  4. 終了基準の検証とレポート
  5. 終了作業
テスト計画作業とコントロール
  • テスト計画
    • テストで何を検証するのか、何の為のテストなのかを明確化する。(=テストの目的)
  • コントロール
    • テスト計画で定めた目的を達成するようにテストをコントロールする。テストプロセス全体を通してコントロールする。
  • テストの分析と設計
    • 分析:仕様書などテストの元になるもの(テストベース)をレビューし、テストが行えるかを検証する。
      仕様を理解し、どこをテストすればテストの目的が達成できるか、また実際にテストできるのかを分析する。
    • 設計:分析結果を元に、テストを行う為の環境、方法、ツールを決定する。(テストのためのモデリング)
テストの実装と実行
  • 実装
    • 設計基づいて、テストケースを作成する
  • 実行
    • 実装したテストケースを実行する
  • 終了基準とレポート
    • 終了基準:各テストレベル(単体、統合、システム..)ごとに終了する基準を定義する。基準には、信頼度曲線など統計を元にしたものや、テストケースや要件の網羅率を元にしたものなどがある。
  • レポート:終了基準を満たしたかどうかを検証する為の報告書を作成する
  • 終了作業
    • 完了したテストからデータを集め、実行結果を数値でまとめる。