Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

QA teamを組成した話

49 views

Published on

Shinjuku.rb #56 on Dec 20, 2017

Published in: Technology
  • Be the first to comment

  • Be the first to like this

QA teamを組成した話

  1. 1. QAチームを組成した話 @threetreeslight Repro Inc. Shinjuku.rb #56 Dec 20, 2017
  2. 2. @treetreeslight At Repro Inc Organize - Shinjuku.rb (最近出れずにすいませんでした 🙏 )
  3. 3. What s Repro?
  4. 4. アプリ用マーケティングツール
  5. 5. なんで使うの辞めたの?
  6. 6. 対策をサクッと打てる
  7. 7. • 4桁万DAU • 2桁億のプッシュを毎月配信
  8. 8. とりあえずReproいれとこ をグローバルで目指してます
  9. 9. はじめます
  10. 10. みなさんは十分に テストコードは書かれている と思いますので
  11. 11. 今日話すこと・話さないこと • 話すこと • デバッグを通したQAチームの組成理由 • 機能テスト・システムテスト • 話さないこと • 単体・コンポーネント・結合テストの技法
  12. 12. 当時
  13. 13. 痛いバグが月2­3本 • 開発 • 求められる新機能追加・改善 • 増えるユーザーに耐えるスループット • 柔軟な分析・速やかな施策実行を支え るための複雑な分散システム •
  14. 14. あれ??辛くね?
  15. 15. 精神的に来る • B2Bでバグによる機会損失・損失は厳禁。 ほんとヤバイ • じゃぁテスト拡充!っていうけど、複雑 な分散システムを試験する仕組み作りは 超☆大☆変 • そうすると各種ミドルウェアとその設定 からアプリケーションの仕組みまで網羅 的に理解していないといけない
  16. 16. いくら時間あっても足りない?
  17. 17. 現実解としてのテストチーム • テストチームの定義の中でも品質保証 (QA)が目的に組成 • リリースに際し、 バグを発見 するため の中間層 • 主にデバッグによる機能テスト・システ ムテストを実施
  18. 18. Boris Beizer先生曰く > ソフトウェア費用の中で最も大きな割合を占め るのは、もちろんバグ費用である。そうするとソ フトウェアの品質保証の第1目標はバグの作り込 みの防止である。 > … > われわれの努力にも関わらず、われわれが人間 であるがためにバグは存在する。テストの第1の 目的であるバグの未然防止がうまくいかないので あれば、バグの発見という第2の目的に向かって 努力しなければいけないことになる。
  19. 19. われわれが人間であるがため にバグは存在する
  20. 20. バグの発見 に向かって努力 しなければいけない
  21. 21. 概ね方向性は良さそう
  22. 22. メンバーに求められるスキル
  23. 23. Cem Kaner先生によると • 真のQAグループはすごい技術をもっていなくてはいけな い、という点に注意しておくこと。 • 分析や設計、実装、プロジェクト管理、ドキュメント作 成などに渡って有能である必要がある。 • そうでなければ信頼されないものだ。
  24. 24. Cem Kaner先生によると • 誠実さ、そして品質に対する責任 感 • 理論よりも経験を元に根拠を身 につける能力 • 学歴が高く、心理学なども含め、 科学的に考える訓練を受けている (CSより大事) • プログラミングの経験 • コンピューターやソフトウェア の豊富な利用経験 • 組み合わせ論についての知識 • 優れたコミュニケーション能力や 高い文章知識 • バグの上手な推測 • 抽象化を素早くできる • パズルが得意なこと • 効率という概念を持っていること • 同時に多くの仕事をこなせること • スケジュールをきちんと立てられ ること • 注意深く、忍耐強く、細部までき ちんと観察できること • 他人の気持ちがわかること • 仕様書の読み書きができること
  25. 25. Boris Beizer先生によると • テスト担当者はプログラムの設計者と同レベルの知識が 必要となり、実際問題としてプログラムの設計者でない とテスト設計は難しい。 • テストをするには、建設的な精神分裂状態が必要で、プ ログラムの設計者とテスト担当者の2つの役割を明確に 区分しなければいけない。 • テスト担当者のとるべき態度としては懐疑的、非妥協的、 非友好的で、かつ、プログラマが開発したソフトウェア を完全に破壊したい衝動にかられることが必要である。
  26. 26. そんな人採用できるかい!!
  27. 27. ましてデバッグやりたい人なん てそんないるかいな!
  28. 28. 育てる前提で プロセスとチームを作る
  29. 29. 開発プロセスを整理 • リリース頻度を週に2回(火曜・木曜)に下げ、 QA時間の確保 • 新機能開発する際は、要件定義時にQA managerがテスト設計を実施 • 開発段階で特定featureをQAする feature QA serviceを社内に提供 •
  30. 30. 毎QAプロセス • QA Prepare • QA managerが実施 • QA check-in • memberの理解を深める • Debug • 機能を網羅的に触る探索テスト • PRごとに構造テスト • QA check-out • QA内容の振り返り • 開発/QAプロセスの改善
  31. 31. 開発者と意識を揃える バグが多く残っていると認識する、バグを称え る。誤報を責めない。 心理学の実験結果 • バグが多く残っていると思ったり、バグを見つけると褒められ たり報酬があると、誤報を混じるが、多数のバグを見つけられ る • プログラムが正しく動くと思いこんだり、バグを見つけると誰 かに言われたり、誤報は罰せられる場合、本物の不具合をいく つも見落としてしまう。
  32. 32. チーム • アルバイトで、エンジニアになりたい人を募集 し組織 member(part-time) QA manager (私が兼務)
  33. 33. 育成 • 独学で自走できる育成プログラムの構築 • 生産性向上のために徹底的にツールに慣れる • ドキュメンテーション能力、ロジカルシンキングを徹底的 に叩き込む • 初めて学ぶソフトウェアのテスト技法でブラックボックス テストについて学ぶ • webの基礎知識を身につける • プログラマーとしてのスペシャリティを身に付ける • iOS, Androidから好きなものを選び、ReproでのQAに 特化したアプリ作成 • 並行してテストについてのスペシャリティを身につける • Boris BeizerとCem Kanerの書籍を何度も読む
  34. 34. 育成プログラムを乗り越える or Die
  35. 35. 生き残った メンバーの強さたるや!!
  36. 36. 最近では サービスのQAにとどまらず
  37. 37. 会社全体へのサービス提供 • ツールの品質担保(<ー今まで話したこと) • ツールの定期リリースに対応したテスト • 開発者向けのon-demandの機能テストの提供 • お客様対応への品質の担保 • テクニカルサポートが回答に資する社内ドキュメント作成 • お客様が参照する社外ドキュメント作成 • 社内メンバーの理解品質の担保 • QAを通してReproのサービスおよび組織理解を深める Bootcampプログラムを社内に提供
  38. 38. ソフトウェアテストと その組織論について詳しくは
  39. 39. 以下の書籍がおすすめ • カジュアルに読める順 • 初めて学ぶソフトウェアのテスト技法 • ソフトウェアテスト293の鉄則 • 基礎から学ぶソフトウェアテスト • ソフトウェアテスト技法 • 実践的プログラミングテスト入門
  40. 40. そんな素敵な環境で 切磋琢磨したいアナタに
  41. 41. WE ARE 
 HIRING NOW!!! https://repro.io/careers/
  42. 42. Appendix
  43. 43. QAチームが品質を保証するのか? No • 「私の仕事は納期までに製品を仕上げることであって、 品質を確保することはQAの仕事だ」となってしまう。 • 品質の責任を経営陣以外の部門に集約すると失敗する。 • 会社全体、特に経営陣が、品質に責任を持たなくてはい けない。 By Cem Kaner

×