[レポート]What’s Testing Got to do with Quality?

2021.01.09

はじめに

こんにちは、かみとです。2021年1月6日~9日の日程で開催されたReagional Scrum Gathering Tokyo 2021の参加レポートです。

このエントリは、Day2のKey noteであるWhat’s Testing Got to do with Quality?のレポートです。

登壇者

  • Janet Gregory

    @janetgregoryca

セッションレポート

Janet Gregoryさん自己紹介

品質というのは全員が負うべき責任
品質を向上させれば、自動的に生産性も自ずと向上させることができる
-- W. Edwards Deming

  • しかし賛同できない部分があり、チームや組織というものは、生産性とはどういうものかについて誤解しがち
  • 企業や組織がスクラムやアジャイルに移行するとき、往々にしてスピードにフォーカスしがち
    • もっと早くフィーチャーを出そう
    • そうするとスピード重視、クオリティが失われる
  • テストとクォリティは混同されがち
    • 関係性はもちろんあるが、同じものではない

品質

  • 『品質は誰かにとっての価値である』- Jerry Weinberg
    • いい言葉だがシンプルすぎて言葉足らずになっている
  • 『モダンテスティング』- Alan Page, Brent Jensen
  • 『Lean Start-up folks』
    • 共通しているのは「一貫性」「お客さま主体」
    • でもどのお客さま?お客さまは全員同じ?そうではない
  • クオリティというのはプロダクトによって異なる
    • 書籍『実践アジャイルテスト』では、「高品質」について記載しているが、品質の意味を定義していない
    • 顧客の視点での品質とは?
      • 顧客によって考え方が違う
    • プロセスの視点?
      • 設計への適合度
      • 標準への適合度
      • 仕様への適合度
      • 何を選択したか?
    • プロダクト視点?
      • 受け入れられる価格帯でどれだけのものを提供できたかによるかも知れない
      • 社内と社外の視点の違い
        • 社内から見た視点はユーザーとは違うかもしれない

5 approaches to quality - Devid A. Gervin

  • 1980年代に書かれたもの
  • 品質には多数の視点
  • Janetさんの見方で表現した図
    • Manufacturing-based(製造ベース)
      • プロダクトをどのように作るかの視点
    • Product-based(プロダクトベース)
      • 正しい適切なものを作っているか
    • User-based(ユーザーベース)
      • ユーザーのニーズにどれだけ適合しているか
    • Value-based(価値ベース)
      • 支払った価格に見合ったものが提供されているか
    • Transcendent(超越的)
      • ものを見ただけでこれは素晴らしい品質だと、その品質がわかるもの
  • 例えば、いくつか並んだお茶の例だと、どのお茶を選ぶかは最初はユーザーの好み(ユーザーベースの品質)となり、その後で価格が入ってくると価値ベースの価値が品質となり、会社のオーナーの立場から見ると利益があることが品質となる。
    • このように、立場や人によって異なる視点から品質を見ている、ということを考慮する必要がある
  • 株の売買のシステムを担当していた時代の話
    • ある日、「フォントが小さい」というバグの指摘があった
    • トレーダーが操作するソフトウェアだったので、トレーダーが顧客だと思っていた
    • サポートがお客様を訪問して、バグレポートを確認したら、「フォントは完璧だ」と答えていた
      • トレーダーは気に入っているて、すべてパーフェクトだと言っていた
    • 問題はトレーダーではなく、スーパーバイザーだった
      • スーパーバイザーはトレーダーの後ろに立って、トレーダーの動向をチェックしていた
      • フォントが小さいという指摘はスーパーバイザーから発したものだった
      • トレーダーの後ろにスーパーバイザーがいるなんて知らなかった
  • 誰がステークホルダーなのかがポイント

テスト

  • テストの活動はプロセスの一部であり、リスクを理解すること
    • つまり、プロダクトを見て大局を理解するということ
  • テスターは常に批判的な見方や質問をするため、開発者とは違ったマインドと取られがち
  • テスティングとは? by janet
    • 様々な方法でフィードバックを提供する
    • テストをすることで隠れた前提条件を特定していくことも可能になる
    • プロダクトに関する情報を提供する
    • プロダクト、ビジネス、技術的リスクを識別し軽減を手助けする
    • 品質を評価する
  • 品質が何なのかを理解していることが前提
  • ただテストは品質を保証するものではない
    • テストをすることで何が「わかっていること」なのかという情報を入手することができる
    • テストで何が起こっているかを説明することができる

Agile testing quadrants

  • アジャイルテストの4象限
    • 右側がプロダクトを精査するもの
      • 不具合を見つけるテスト
    • 上がビジネス寄りのテスト
    • 下は技術寄りのテスト
    • 左側は開発を支援するもの
      • 不具合を起こさないためのテスト
  • アジャイルは機能しないと言われていた時代に、品質を最初から入れ込むためのテストを提唱した
    • 往々にして過小評価されてきた品質の属性をちゃんとテストする必要がある

Quality Attibutes(品質の属性)

  • 10の属性
    • Safety
    • Security
    • Performance
    • Reliability
    • Usability
    • Privacy
    • Data Integrity
    • Accessibility
    • Recoverability
    • Localization
  • 品質に対して信頼して使うことができるか
    • 例)
      • 心臓ペースメーカーが100%ちゃんと機能してくれるか
      • クレジットカードがちゃんと決済してくれるか
      • スマホでエアコン操作を依頼したら、ドアが解錠されるなんてことが起こらないと信じていることができるか
  • こういった品質をちゃんと見過ごされずに評価することができるか
    • 消費者は安全を当たり前として考えている
    • テストの倫理・プログラムの倫理を私たちは考慮する必要がある
    • 人間が携わっている限り、クォリティのいろんな側面を考える必要がある
    • テストを通じてどうやってサポートしていくかということ
  • 『例えば、テストやQAをリリースの直前にやっているのであれば、ビジネスを失うことになります。お客さまの期待に沿わなきゃいけないんです。』
  • お客さまにとって重要な品質の尺度を入れ込んでいく必要がある
  • こういったものがどれだけお客さまがプロダクトを信頼してくれるかということに繋がる

Shift LeftやShift Rightという言葉が嫌い

  • 開発は直線的なものではないので、ループを使うべき
  • このループも一部直したい部分があるので、もうすぐセカンドバージョンが出る
  • ループを介して、迅速に顧客からフィードバックを得る
  • フィードバックを使って、さらに分析し、新しいアイデアをどう適合するかを学ぶ

品質をどうやって測定するか

  • フィードバックループから得たものをどのように測定するのか、何かの基準がなければ品質の測定ができない
  • 例えば、ユーザーグループによって評価軸が違う
    • 例)
      • 身体障害者のためのシステム
      • スピードではなく、正確性を重視するシステム
      • スピード重視で、正確性には柔軟性のあるシステム

品質に対する会話

  • 正しい答えは一つではないが、品質に関する会話を持つのは大切
    • チームやお客さまと会話をする必要がある

  • クォリティスライダーを使ってみる
    • チームメンバー全員に渡して、何が一番重要なのか聞く
    • そうすると必ずギャップが生まれるはず
    • こうすることで品質についての会話が生まれる
    • 何が把握できていないのかがわかる
  • まずはチームレベルから会話を始める
    • それからお客さまやステークホルダーに広める
    • 組織内に広める
  • そうすることで、クォリティの会話を会社の文化にしていくことができる

まとめ

  • クォリティに関する会話は、コーディングする前に行う
    • 理解することが作業の土台になる
    • チームがクオリティに対する会話しないということは
      • どういうテストをするのかがわからない
      • どういうリスクを想定しなきゃいけないのかもわからない
      • どういうテストにより必要なクォリティを担保するのかわからない
  • 品質の責任は全員が負うべきもの
  • テスターはクォリティを担保できないので、クォリティをプロダクトに盛り込んでいく
  • 何を測定しているのか理解する
  • プロセスクォリティはもちろん大切、だけどそれで自動的にプロダクトがよいものにはできない
  • 自信をもってリリースできるように
  • 最後に、みなさんがクォリティと言ったときに、それが何を意味するのかを明確に!!

感想

今回のRSGT2021は、このKeynoteをはじめテストや品質、セキュリティといったトピックが目立った年だったと思います。特にアジャイル開発において品質をどう盛り込むのかというのは、ウォーターフォール出身の私としてはとても興味のある部分だったので、今回のこのKeynoteもとても勉強になりました。

品質とスピードと生産性はやはりどうしてもトレードオフになってしまう部分でもあり、しっかりした品質をどのようにプロダクトに盛り込むのかというのは永遠の課題ですが、テクニカルの部分だけではなく、誰にとっての品質なのか、その目線や角度によって品質の捉え方をチームで会話すること、お客さまやステークホルダーを含めて「品質とは何か」とまずはしっかりと向き合うことが大切ということを再認識することができました。