Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テスト・設計研修【MIXI 23新卒技術研修】

テスト・設計研修【MIXI 23新卒技術研修】

23新卒技術研修で実施したテスト・設計研修の講義資料です。

動画:https://youtu.be/xR-LWJ4MAEM

資料の利用について
公開している資料は勉強会や企業の研修などで自由にご利用頂いて大丈夫ですが、以下の形での利用だけご遠慮ください。
・受講者から参加費や授業料などを集める形での利用(会場費や飲食費など勉強会運営に必要な実費を集めるのは問題ありません)
・出典を削除または改変しての利用

MIXI ENGINEERS

April 21, 2023
Tweet

More Decks by MIXI ENGINEERS

Other Decks in Technology

Transcript

  1. ©MIXI 2 • 加藤 修悟 (@shugo.kato) a.k.a. ろぐみ • 21新卒

    • Vantage スタジオ Romi 事業部 開発グループ • サーバ/フロント/インフラ • なんでもやさん • 好きなキーボード • 7sPro • Keyball61 • HHKB • 好きなエディタ • VS Code 自己紹介
  2. ©MIXI 3 • 江畑 拓哉 (@takuya.ebata) • 21新卒 • ソーシャルベッティング事業本部

    開発室 システム2G アーキテクトT • 運用と開発、あと雑務全般 • 好きなキーボード • Keychron • 好きなエディタ • Emacs 自己紹介
  3. ©MIXI 4 • 大倉 真一希 (@maiki.okura) • 22新卒 • みてね事業部

    プロダクト開発部 プロダクト開発Mグループ アプリ開発チーム • server が多めでたまに iOS, Android など • 好きなキーボード • Mac 標準 • 好きなエディタ • VS Code with Vim 自己紹介
  4. ©MIXI 5 1. 講義 2. 演習1 (ペアプログラミング) • 実装 •

    各チーム同士でコードレビュー & 修正 3. 演習2、 3 … お昼は13:00頃〜を予定 本日の流れ
  5. ©MIXI 7 • テスト・ソフトウェアテストとは • ソフトウェアの品質の話 • TDDの話 • テスト技法の話

    • テストの7原則 • ペアプログラミング • コードレビューの仕方とされ方 本日の流れ
  6. ©MIXI 17 • TDD (Test-Driven Development / テスト駆動開発) • Red,

    Green, Refactor のサイクルを回す 1. まずはテストを書く (Red) a. 実装はないのでもちろんテストは落ちる 2. テストを通すために、実装をする (Green) a. まずはテストを通すことを考えてみる 3. リファクタリングする (Refactor) TDD Red Green Refactor
  7. ©MIXI 23 • テストのレベル • 単体テスト (Unit testing) • もっとも小さなテスト

    • クラス、メソッド単位 (言語・テストライブラリ等で異なる) • 統合テスト (Integration testing) • 単体テストよりも大きな範囲のテスト • システムテスト (System testing) • ソフトウェア全体のテスト • 受け入れテスト (User Acceptance Testing) • 顧客がソフトウェアを受け入れる時のテスト テスト技法
  8. ©MIXI 24 • テストの種別 • ブラックボックステスト • 仕様や要件に基づいてテストを実施するテスト • 実装レベルの知識は必要としない

    • ホワイトボックステスト • 実装レベルの知識に基づいて実施するテスト • ソフトウェアの内部パス、構造、実装 ... • グレーボックステスト • 実装をある程度調べた上で、ブラックボックステストのテストケースを効率的に選択していく テスト技法
  9. ©MIXI 25 • ブラックボックステスト • 同値クラステスト • 境界値テスト • ….

    • ホワイトボックステスト • 制御フローテスト • データフローテスト テスト技法
  10. ©MIXI 28 1. テストは欠陥があることは示せるが、欠陥がないことは示せない 2. 全数テストは不可能 3. 早期テストで時間とコストを節約 4. 欠陥の偏在

    5. 殺虫剤のパラドックスにご用心 6. テストは状況次第 7. 「バグゼロ」の落とし穴 テストの7原則
  11. ©MIXI 31 うまくやるコツ • ドライバー • 今、何をやろうとしているか、やっているかを明確にする (発言する) • ナビゲーター

    • 良い方法を思いついたり、ミスに気づいたりしたときに、積極的に発言する • ドライバーが何をやろうとしていることが良くわからなくなったら、すぐに聞く commit & push してれば、役割交代はしやすいはず・・・? ペアプログラミング
  12. ©MIXI 35 • チームごとにteam-A,B,C,D,E,F ブランチ向きにPRを作ってください • レビューするチーム • 演習1: A

    → B、 B → C、 C → D、 D → E、E → F、F → A • 演習2: A → C、 B → D、 C → A、 D → B … • 時間が余ったら他のチームをレビューしてもOK コードレビューをしよう
  13. ©MIXI 37 • どうすれば、レビューが通りやすいかを考えよう • PR の説明をしっかり書こう • どういう背景、理由で、どういうものを作った、など •

    重点的にレビューして欲しいところや、実装していてよく分からなかったところ、など • 行単位でコメント/会話ができるのでそれも活用しよう • JIRA のチケットや、関連 PR, issue など • 背景の詳細や、仕様などを追いやすい • 監査などのときに、追いやすい、など • どういうタイミングでマージして欲しい、など (QA終わるまで待って、など) コードレビューをしよう
  14. ©MIXI 38 • レビューは人格攻撃ではない (心理的安全性) • レビューする側もされる側も攻撃ではないことを意識する • わからないところは聞こう •

    褒めよう! • この人はこういうところをレビューしてくるだろうなぁと考えてみる コードレビューをしよう