ソフトウェアテストの「足腰」を鍛える品質の考え方|研修コースに参加してみた
今回参加したコースは ソフトウェアテストの「足腰」を鍛える品質の考え方 です。
ソフトウェアやシステムは一つとして同じようなものはなく、求められる機能も様々です。 求められる機能が様々であれば、その機能を検証するソフトウェアテストも様々になってしまいます。 そんな再現性のないシステムでも高品質が求められるのですから、 IT エンジニアは大変です。
このコースは、そんな様々なソフトウェアやシステムのソフトウェアテストでも応用できる基礎 = 足腰 を鍛えようというものです。
今回はソフトウェアテストを専門に行う企業(第三者検証)バルテスさんから、数々のソフトウェアテスト専門書を執筆されている 石原 一宏 と 江添 智之 さんが登壇されました。
「そんなどこでも使える、都合の良い “基礎” なんてある?」と思っていましたが、さすが専門家のお二方だけあって、シンプルでわかりやすく、使いやすい考え方と方法を紹介いただけました!
また、学んでみると IT エンジニアだけでなく、プロダクトマネージャ、システム企画者など幅広い職種に必要な基礎的な考えでした !!
では、どんなコースだったのか、レポートします!
もくじ
コース情報
想定している受講者 | 未経験者も受講可能だが、開発現場で 1 年程度のテスト経験があることが望ましい。 開発言語は問わず。 |
---|---|
受講目標 |
|
講師紹介
この “参加してみた” レポートでは初めての登場となる 石原 一宏さんとが 江添 智之 さんが登壇されました。
バルテス株式会社 テスト・アライアンス事業部 事業部長 兼 上席研究員
年間 2,000 名を超える開発エンジニアにテスト・品質を教えるセミナー講師。テスト技法の開発・研究、社内・社外の技術研修・教育業務、プロセス改善コンサルティング業務に従事しつつ、ソフトウェア検証業務に携わる。
開発物として大阪大学 土屋達弘教授とテストケース生成ツール「 Qumias 」を共同開発し、リリースを行っている。
「いちばんやさしいソフトウェアテスト」(共著 技術評論社刊) など
バルテス株式会社 R & C 部 クロスファンクショナル事業部
バルテスにおいて、ソフトウェアテスト技術の研究開発、ソフトウェアテストの教育業務、品質コンサルティング業務に携わる。また、テストエンジニア・プロジェクトマネージャも務める。
「ソフトウェアテストの教科書 増補改訂第 2 版」(共著 ソフトバンククリエイティブ 刊)
このコースは通常、 3 日くらいかけて行われる内容のものを、ギュッと 3 時間に凝縮したとお話いただき、コースがスタートしました。
ただ、受講してみてわかりましたが、 3 時間では足腰 = 基礎の考え方を “知った” だけなので、 “できるようになる” には鍛錬が必要でした。
テストで考えなければいけないこと
まず、捉えにくいテストと品質をたった 3 つで整理いただきました。
- 「何ができたら OK か」 = MUST
- 正常系
- 仕様書には MUST の一部しか書かれていない
- 「何ができたら NG か」 = NEVER
- 異常系
- 割り込み処理、同時処理や排他処理などは仕様書には、ほとんど書かれていない
- 仕様書に無いケースが多い。 ただし対応しないと NG
- 「こんなものがあったらいいな」 = WANT
- MUST と NEVER ができていることが前提
- この MUST / NEVER / WANT この 3 つが達成できればリリースして良い = 品質目標として設定される
仕様書に無いものを品質に入れろ、というのは現場ではよく行われているとはいえ、結構無茶すぎると聞いていました … 。
設計がうまい人の発想 = テストから考える
- V 字工程で考えると設計に対応するのがテスト
- テストはテストだけに終わらない → 修正コストが発生する( = 手戻りコスト)
- 下流になるにつれて手戻りコストが増える
- 石原さんいわく「基本設計で見つければ手戻りコストは 1 、単体テストなら 10 、システムテストなら 40 、リリース後なら 100 以上」
- バグはできるだけ前で見つける、これが鉄則 = 上手い人のやり方
- ただし先程の通り、設計書や仕様書は十分ではない
- 上手い人は設計する前に「どんなテストをすると OK か」を考える
そこで「どんなテストをすると OK か」を考えられる方法 = 『テストの足腰』となる考え方を、これから紹介いただきます!
『テストの足腰』を鍛える 3 つのアプローチ
テストでは「抜け漏れなく = 時間が必要」かつ「効率的に = 時間を短縮」という、矛盾する要求が常に突きつけられています。 そこで少しでも上流で抜け漏れないテストを考えられる 3 つのアプローチが紹介されました。
要求から「何をテストするか」考えるアプローチ
狩野モデル
- 品質とは顧客の要求を満たすこと = 品質と要求はセット
- 顧客の要求は 3 つに分かれ、その 3 つに対して品質も 3 つに分かれる = 狩野モデル
- 「基本要求」は絶対に備えていないといけない基準 ex. 冷蔵庫の中は冷えている
- 「変動要求」はユーザ評価の基準になるもの ex. パソコンの競争力となる CPU の処理速度が速い
- 「潜在要求」はこの製品にしかない要素でユーザが驚くようなもの
- この要求を満たす品質は大きく「当たり前品質」と「魅力的品質」にわかれる
- マーケティングでよく知られている
マーケティングでよく知られているという言葉通り、これは製品開発で非常に使える理論ですね。 際限なく機能は開発できないので、どれを開発すべきか、どこまで開発すべきがわかります。
続いて、この狩野モデルの考え方に慣れるワークショップとして、以下の演習が行われました。
- 「携帯電話」の当たり前品質と魅力的品質を考えよう
- 「電子レンジ」を題材に狩野モデルをアレンジした NEVER (リスク) / MUST (基本要求) / WANT (変動要求・潜在要求) を考えよう
- NEVER はユーザの生命健康・財産に影響を与えてしまうことをイメージするとよい
ISO 9126 品質特性
続いて紹介されたのが国際規格である ISO 9126 品質特性 info 1 です。
特に外部特性 = 顧客が満足する品質は 3 つだと言い切ったところが格好いいところで、定められてから 30 年経っても、誰も反論できないそうです(スゴイ)。
- 6 つの特性がある
- 外部特性
- 顧客にとっての品質
- 機能性 必要なものがあるか
- 信頼性 信頼できるか
- 使用性 使いやすいか
- 顧客にとっての品質
- 内部特性
- 作り手にとっての品質
- 効率性 リソース効率は?
- 保守性 保守しやすいか?
- 移植性 使いまわしできるか?
- 作り手にとっての品質
- 外部特性
考え方を伺うと、なるほど!これなら抜け漏れが無くなりそう! と唸ってしまうものばかりでした。 また、石原さんが「この特性ごとの演習シートだけでも有料にできる」と、おっしゃるだけの価値がありました。 気になる方はぜひコースを受講ください!
info 1 現在は ISO9126 の更新版である、 ISO / IEC / IEEE25010 も使用されています
「どうテストするか」考えるアプローチ
これまでは要求仕様から求められる品質を洗い出す考え方を学びました。 続いて、顧客が実際に利用する機能から必要なテストを洗い出す、 FV 表を紹介されました。
FV 表 (Function Verification Table)
簡単な例として電子レンジを題材に FV 表 info 2 を解説いただきました。
- 目的機能を整理する
- 目的機能とは: 何ができれば、その機能を満たしていると言えるのかまとめたもの
- ex. 電子レンジのタイマー機能の目的機能: 設定時間だけ電子レンジを動作させる
- 目的機能を検証内容を考える
- 何をテストすると目的機能が成り立つのか考える
- ex. 「設定時間が正確であること」「設定時間だけあたため機能が動作すること」
FV 表の作り方
この目的機能に why を書くのが「上手い人」のテクニックとのことでした。 これによって細かい検証内容(テスト)を書くよりも、テストを実施する側は気づくことがはるかに多くなると、石原さんから補足されました。 why がわかったほうがテストをする側も必要 / 不要が判断しやすく自律的に動けますものね。
info 2 参考文献: 「ソフトウェアテスト HAYST 法入門 品質と生産性がアップする直交表の使い方」(日科技連出版社 刊 吉澤 正孝、秋山 浩一、仙石 太郎 著)
「テストすべきことは何か」考えるアプローチ
FV 表でミクロに機能ごとにテストすることを洗い出せたら、次はマクロにテストすべきことを把握して優先順位をつける方法、バルテスさんオリジナルの “テストマップ” を紹介いただきました。
テストマップ
- 文字通り、 “テストの地図” のイメージ
- テスト計画に使用する
- リソースに合わせた最短ルートがわかる
- 無駄を減らせる
- 最初は A4 一枚に収まるように粒度を揃える
- 仕様書とテストマップとテストケースを紐づける
- 仕様変更があったときに、どのテストをするのかわかる
- “しなかった” テストもわかる
- “しなかった” ところでバグが出ればテストを追加すればよい
- バグが出ると、全てテストするよう要求されがち
テストマップとは
ここまでで 3 つのアプローチを紹介いただきました。
補足として、「人間はどうしても忘れてしまいます。 そこで記憶を辿れるように、印象に残ったものを一つだけ、例えば NEVER / MUST / WANT 、テストマップなどを付箋に書き、目のつくところに貼っておくと良いでしょう」とまとめていただきました。
講師のお二方とも本当に人間の心情・機能にとってもお詳しい!
人間が使うものをテストするのですから、テストが上手い人はそういった機微に通じてくるのかも知れませんね。
最後にテストを実行するときに注意すべきこととして、テストケースを消化するだけになってしまわないことなどを紹介いただき、このコースは修了しました。
まとめ
このコースでは、「ソフトウェアテストの足腰」として、捉えどころのない品質とテストを、上流の要求からテスト項目の洗い出しで使う品質の基礎理論と方法を学びました。
仕様書や設計書に無いものまでテストするとは無茶な話だと思っていましたが、狩野モデルや ISO 9126 品質特性の考え方をもとに MUST / NEVER / WANT で考えると、書かれていない品質への要求が整理して洗い出されました。 シンプルなので忘れにくく、どんなソフトウェアでも使える、まさしく「基礎 = 足腰」となるものでした。
またソフトウェアテストだけでなく製品開発する際にも、当たり前品質と魅力的品質を考えることで、リリースするときに必要な機能がわかるので、講師のお二方がおっしゃったようにマーケティングやプロダクトマネジメントにも必要だと思いました。
QA (Quality Assurance) エンジニアだけでなく開発、プロダクトマネージャ、情報システム部門でシステム企画に携わる方など幅広い職種の「足腰」になるコースでした!
label SEカレッジを詳しく知りたいという方はこちらから !!
IT専門の定額制研修 月額 28,000 円 ~/ 1社 で IT研修 制度を導入できます。
年間 670 講座をほぼ毎日開催中!!
SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。