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

テスト・設計研修【ミクシィ22新卒技術研修】

 テスト・設計研修【ミクシィ22新卒技術研修】

22新卒技術研修で実施したテスト・設計研修の講義資料です。
動画:https://youtu.be/T4sL4XXZ4Ug

MIXI ENGINEERS

April 14, 2022
Tweet

More Decks by MIXI ENGINEERS

Other Decks in Programming

Transcript

  1. • 岡住 和樹 (@zumin) • 19新卒 (4年目らしい) • モンスト事業本部 開発室

    モンストサーバG • 好きなもの • お酒 • ゲーム • 好きなエディタ • Vim 自己紹介 2
  2. • 加藤 修悟 (@shugo.kato) a.k.a. ろぐみ • 21新卒 • Vantage

    スタジオ Romi 事業部 開発グループ • サーバ/フロント/インフラもひとつまみ • 好きなキーボード • HHKB • 好きなエディタ • VSCode 3 自己紹介
  3. • 江畑 拓哉 (@takuya.ebata) • 21新卒 • 次世代エンターテイメント事業本部 TIPSTAR開発部 システム2G

    アーキテクトT • 運用と開発、あと庶務 • 好きなキーボード • FILCO • 好きなエディタ • Emacs 4 自己紹介
  4. 1. 講義 2. 演習1 (ペアプログラミング) • 実装 • 各チーム同士でコードレビュー &

    修正 3. 演習2, 3 … お昼は13:00頃〜を予定 5 本日の流れ
  5. • TDD (Test-driven development / テスト駆動開発) • Red, Green, Refactor

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

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

    • 実装レベルの知識に基づいて実施するテスト • ソフトウェアの内部パス、構造、実装 ... • グレーボックステスト • 実装をある程度調べた上で、ブラックボックステストのテストケースを効率的に選択していく 24 テスト技法
  8. うまくやるこつ • ドライバー • 今、何をやろうとしているか、やっているかを明確にする (発言する) • ナビゲーター • 良い方法を思いついたり、ミスに気づいたりしたときに、積極的に発言する

    • ドライバーが何をやろうとしていることが良くわからなくなったら、すぐに聞く commit & push してれば、役割交代はしやすいはず・・・? 31 ペアプログラミング
  9. • チームごとに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 34 コードレビューの仕方とされ方
  10. • どうすれば、マージされやすいかを考えてみる • PRの説明をしっかり書く • どういう背景で、どういう理由で、どういうものを作った、など • 重点的にレビューして欲しいところや、実装していてよく分からなかったところ、など • JIRAのチケットや、関連PR,issueなど

    • 背景の詳細や、仕様などを追いやすい • 監査などのときに、追いやすい、など • どういうタイミングでマージして欲しい、など (QAチームによるテストが終わってか ら、など) 35 コードレビューの仕方とされ方