目玉焼きに塩

おいしい

ソフトウェアテスト・品質勉強会に行ってきた(12/06)

テストや品質の基本について学ぶ勉強会に行ってきたのでそのまとめ。

(参加の動機としては「今まで往々にしてテストをやってきたけどなんとな〜くでこなしていてよくないな…これからもテストをする場面はたくさんあるだろうし、品質を担保するものだからきちんと学びたい…」というのを以前から思っていた。その中でこの勉強会を見つけた、しかも基本だから学びやすそうと思い)

概要

  • そもそも品質とは何か?
  • そもそもテストの目的は何か?
  • どんなテストをするべきか?
  • どんなテストケースを作るべきか?
  • どんなテストレポートを書くべきか?

…等々、そもそもの原点に立ち返って、テスト・品質の基本を学ぶ。

以下が勉強会で投影されていたスライド。

www.slideshare.net

学んだ内容のメモ

テストの目的は何か?

  • 欠陥の検出

  • 対象ソフトウェアの品質レベルが十分(≠完璧)であることの確認
    「テストは「欠陥があること」しか示せない」。考えてみたらその通りなんだけど、印象に残った部分だった。

  • 意思決定のための情報の提示

  • 欠陥の作り込みの防止。開発前に行うこともある
    →開発前にテストを行うことがある、のをここで初めて知った…(この後まとめる「Wモデル」の話)

開発サイクルの中でのテストの立ち位置

ここでVモデルとWモデルというものを初めて知る。

Vモデルとは

V字モデルは、ソフトウェアの開発~テスト~リリースまでの一連の流れにおける、開発工程とテスト工程の対応関係を表した1つのモデルです。

V字モデルとは? | ソフトウェアテスト・第三者検証ならウェブレッジ

Wモデルとは

開発の上流工程からテスト設計を開始し、開発プロセスとテストプロセスを同時併行に進めるプロセスモデルです。

V字モデルにおける従来の問題点を解決する方法として発達したモデル(……)

W字モデルとは? | ソフトウェアテスト・第三者検証ならウェブレッジ

今までVモデルでの開発しかやってことがないなぁ…そしてWモデルという開発サイクルがあるのを初めて知った…。

VモデルとWモデルの違いは、Vモデルの左側にある上流工程に対してもテスト工程を設けること。そうすることで、後続のテスト(Vモデルでいう右側の工程)で検知するバグを減らすことができる(らしい)。

他にもいろいろメリットがある様子(上記参考URL参照)。確かに設計時点で抱えてしまっていた問題が、開発後のテストの時点で問題認識されるより、設計の時点で問題認識できればまた実装方法も変わってくるもんな…と腑に落ちた。

スライドのp.14で「要求仕様の誤りを1とした場合、納入時点で誤りを修正する場合はコストが200倍にもなる」という話もあり、そんなに?!!という驚き。まぁでも誤りが見つかるのが早ければ早いほど修正しやすい、というのは十二分に納得できる話だった。

どうやってテストケースを作るのか

境界値分析

境界値付近にバグが潜んでいることが多いため、それを確認するもの。

状態遷移テスト

仕様に定められている通りに状態が遷移するかを確認するもの。動作が不明な時点で開発者に確認すべき。

どうやってテストを実施するのか

テストレポートの書き方について。レポートは他人が見てもわかるように書く!確かにこれはめちゃくちゃ大事…と過去の案件を思い出して思った…。
スライド内で、例として出ていたテストレポートのフォーマットでは、以下の項目が用意されている。

  • テスト目的
  • 再現手順
  • 期待値
  • 結果(OK or NG)
  • 実際の結果

この中のテスト目的が大事だなーと思った。なんでそれをテストしたの…と上がってきたバグチケットを見て思ったことがあるので、自分でもこの失敗をしないよう覚えておきたい、テスト目的大事。

その他

チェッキングとテスティング

この2つも初めて聞いた用語、初めて知った概念だった。
チェッキングは開発者自身で行うもの、テスティングがテストエンジニアが行うもの。

ドッグフーディング

開発したサービスを開発者自身で利用することで、改善点を見つけていく試み。

機能は満たしていても使いにくいシステムというのは多々あるかと思いますが、そのひとつの原因として、実際に開発している人たちが、そのシステムをユーザとして使っていないがために気づいていないという可能性があります。そしてドッグフーディングでは、それを防ぐことができます。

ドッグフーディングしながらサービスを開発するメリットと、気をつけていること | SELECK