実はよく知らないQA(Quality Assurance)チーム

このエントリーをはてなブックマークに追加
はじめまして。QAチームの井上です。
シャノンの新卒第1期として入社し、開発エンジニア -> 開発マネジャー -> 開発兼QAマネジャー -> QAマネジャー といった経歴で今に至ります。

さて、今日の内容ですが、QA(Quality Assurance)って何をしているの?といった内容でシャノンのQAについて紹介します。
他の会社の品質管理についてあまり情報がないなぁと思って。
みなさんの扱う製品はどのようにテストし品質管理を行っていますか?


まず、シャノンの技術部は製品開発チーム、QAチーム、インフラチームなどで構成されています。
テストには専門のノウハウや、ツールが必要だったり、開発チームのリリース直前のすぐ対応できるからといった理由のちょっとした変更などから品質を守るためなど、品質を保つために、責任を明確に分け別チームとしています。
(開発チームとQAチームを分けることは一長一短あると思っているのですが、それは別の機会にでも)


■QAチームのミッション
そのQAチームですがミッションは、
「品質に関連する情報を集め、品質を向上させていくサイクルを継続し、品質保証を支援することで顧客満足を得ること」
と定義し、終わりのない戦いを行っています。


■QAチームの規模
そして、現在の開発チームとQAチームの人数比率は約2対1になっています。
以前は1対1に近かったのですが、徐々に開発チームの方が多くなってきています。


■QAチームの業務
シャノンのQAチームの業務内容には大きく5つの種類があり、各比率は次のようになっています。





1. スプリントテーマ
シャノンはScrumという開発プロセスで開発をおこなっているのですが、
QAチームのエンジニアは各スクラムチームでテストをメインに担当します。

2. 製品仕様などの2次サポート
サポートチームで回答できなかった質問などの2次サポートとして活動します。

3. バグなどに対する臨時対応
リリースされている機能のバグを臨時で対応する場合に、修正後のテスト実施、たまには障害の報告書を書いたりします。。

4. 改善活動
品質やリスクチェックから自動テストの強化を行ったり、自動テストツール、ビルドツールの開発を行います。

5. その他
ミーティングや評価などです。


■スプリントチームでのQAエンジニア
上記1のスプリントチームにおいて、QAエンジニアには4つの役割が与えられます。

1. 仕様書や設計書のレビューにより、不具合を未然に防止するための情報を開発者に提供する
シャノンではまともな仕様書や設計書などはあまり書いておらず、複雑な機能の場合に関係者に説明するための資料といった感じですが、これら資料や毎日行なっているミーティングで得られる情報から、開発エンジニアに対して、ユーザー視点での意見、過去のバグから気をつけてほしいポイントなどを伝えています。

2. 製品の不具合リスクを考える
開発する機能、影響範囲から不具合が発生した場合のリスクを考えテスト実施の優先順位を決めます。

3. テスト対象の不具合を発見、正しく動作することを検証、不具合がないことを保証する
いわゆるテストの実施です。利用シナリオを考え、各種パターンでテストを実施し、自動テストのスクリプトを書きます。

4. 直感的あるいはドキュメントを参照することで利用者が製品を利用することができるようにします


また、活動の比率は以下のようになっています。



テストの準備(10%): テストケースを考えたり、テストのインフラの整備、データ作成など
テスト実施(30%): いろいろ手で触ってみたりなど
自動テスト(30%): 変更分メンテナンス、新規に作成したりなど
ドキュメンテーション(5%): リリースノートなど
最近は自動テストの重要性を上げているので、比率も大きくなってきています。


■自動テストの状況
次に自動テストがどのような結果を出しているのか少しだけ紹介します。



縦軸: テストケースまたは組み合わせの数(数は問題あるかもしれないので消しました)
横軸: 年月
青: 新規に作成したテストパターン数
赤: 内、自動テスト作成数

追加、変更したテストケースの内、約40%の自動テストを作成しています。



縦軸: 発見したバグ数
横軸: 年月
青: 新規に発見したバグ数
赤: 内、自動テストで発見したバグ数

発見したバグの内、約20%が自動テストによって発見したバグです。



■最後に
一般的にQAチームとは、テストケースを作成し使ってみてバグを見つけるチームといったように思われているかもしれません。
しかし、シャノンのQAチームではこの活動は全体の中では30%程度なんです。
中長期的にバグの発生を抑えるための自動テスト作成や、自動テストを実行するためのインフラの整備、製品を使ってもらうためのサポートやドキュメンテーションなど実は幅広く行なっています。
必要なスキルも、linux、プログラム言語、テスト、自動テストツールなど多岐に渡ります。
製品開発はもちろん楽しいですが、一度一歩離れて、ユーザー視点で仕事してみることもおもしろいのでお勧めしますよ。

次の記事
« Prev Post
前の記事
Next Post »

1 コメント:

Write コメント
Related Posts Plugin for WordPress, Blogger...