Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2021新卒テスト研修資料
Search
zumin
April 26, 2021
Programming
1
52k
2021新卒テスト研修資料
2021/04/19 開催 株式会社ミクシィ 2021新卒テスト研修の資料
zumin
April 26, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
Bakuraku E2E Scenario Test System Architecture #bakuraku_qa_study
teyamagu
PRO
0
270
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
21
5k
お前も Gemini CLI extensions を作らないか?
satohjohn
0
110
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
130
開発組織の戦略的な役割と 設計スキル向上の効果
masuda220
PRO
10
2.1k
オンデバイスAIとXcode
ryodeveloper
0
400
CSC305 Lecture 14
javiergs
PRO
0
220
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
760
マンガアプリViewerの大画面対応を考える
kk__777
0
450
AkarengaLT vol.38
hashimoto_kei
1
130
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
880
SODA - FACT BOOK(JP)
sodainc
1
9.2k
Featured
See All Featured
BBQ
matthewcrist
89
9.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Designing Experiences People Love
moore
142
24k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
Side Projects
sachag
455
43k
How STYLIGHT went responsive
nonsquared
100
5.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
950
Speed Design
sergeychernyshev
32
1.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
GraphQLとの向き合い方2022年版
quramy
49
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Transcript
(C) mixi, Inc. モンスト事業本部 開発室 モンストサーバG 岡住 和樹 2021/04/19 2021
新卒研修
(C) mixi, Inc. ◦ 岡住 和樹 (@zumin) ◦ 19新卒 (3年目らしい)
◦ モンスト事業本部 開発室 モンストサーバG ◦ 好きなもの ◦ お酒 ◦ ゲーム 2 自己紹介
(C) mixi, Inc. ◦ 藤田 祥太 ◦ 20新卒(新卒2年目) ◦ minimo事業部
遊撃チーム(サーバーサイド) ◦ 好きなもの ◦ ゲーム ◦ Vtuber ◦ 競プロ 3 チューター紹介
(C) mixi, Inc. 1. 講義 2. 演習1 (ペアプログラミング) ◦ 実装
◦ 各チーム同士でコードレビュー & 修正 3. 演習2, 3 … お昼は13:00頃〜を予定 4 本日の流れ
(C) mixi, Inc. 5 講義
(C) mixi, Inc. ◦ テスト・ソフトウェアテストとは ◦ ソフトウェアの品質の話 ◦ TDDの話 ◦
テスト技法の話 ◦ テストの7原則 ◦ ペアプログラミング ◦ コードレビューの仕方とされ方 6 本日の流れ
(C) mixi, Inc. 7 みなさん、テスト書いてますか?
(C) mixi, Inc. 8 テストと聞いて、 どのようなことを思い浮かべますか?
(C) mixi, Inc. テスト != デバッグ テスト: 不具合があることを示すことができるだけ デバッグ: 不具合を取り除くまでの一連の開発活動のこと
9 テスト・ソフトウェアテストとは
(C) mixi, Inc. 10 ソフトウェアの品質の話
(C) mixi, Inc. ソフトウェア品質特性 ◦ 外部品質特性 ◦ システムの利用者が触れる、見える部分の品質 ◦ 内部品質特性
◦ システムの利用者からは見えない内側の部分の品質 11 ソフトウェアの品質
(C) mixi, Inc. 引用: 『つながる世界のソフトウェア品質ガイド あたらしい価値提供のための品質モデル活用のすすめ 』P23 図2.3-3 (https://www.ipa.go.jp/files/000044964.pdf) 12 ソフトウェアの品質
(C) mixi, Inc. 引用: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 13 ソフトウェアの品質
(C) mixi, Inc. 14 TDD
(C) mixi, Inc. ◦ TDD (Test-driven development / テスト駆動開発) ◦
Red, Green, Refactor のサイクルを回す 1. まずはテストを書く (Red) a. 実装はないのでもちろんテストは落ちる 2. テストを通すために、実装をする (Green) a. ここでは、まずはテストを通すことを考えてみる 3. リファクタリングする (Refactor) 15 TDD
(C) mixi, Inc. ◦ テストが落ちること ◦ 落ちるはずのテストが通っちゃうと・・・? ◦ テストを通すことをだけを考えてみる ◦
通るはずのテストが通らないときは・・・? 16 TDD
(C) mixi, Inc. テスト駆動開発は、テストを書くことがゴールなのではなく、 開発中に感じる様々な不安を自身でコントロールしていく手法 17 TDD
(C) mixi, Inc. 18 やってみよう!
(C) mixi, Inc. ◦ テストが書きづらいとき ◦ 副作用が多くないか? ◦ 責務を持ちすぎてないか? もしくは不明瞭ではないか?
19 TDDのこつ
(C) mixi, Inc. 20 テスト技法の話
(C) mixi, Inc. ◦ テストのレベル ◦ 単体テスト (Unit testing) ◦
もっとも小さなテスト ◦ クラス、メソッド単位 (言語で異なる) ◦ 統合テスト (Integration testing) ◦ 単体テストよりも大きな範囲のテスト ◦ システムテスト (System testing) ◦ ソフトウェア全体のテスト ◦ 受け入れテスト (User Acceptance Testing) ◦ 顧客がソフトウェアを受け入れる時のテスト 21 テスト技法
(C) mixi, Inc. ◦ テストの種別 ◦ ブラックボックステスト ◦ 仕様や要件に基づいてテストを実施するテスト ◦
実装レベルの知識は必要としない ◦ ホワイトボックステスト ◦ 実装レベルの知識に基づいて実施するテスト ◦ ソフトウェアの内部パス、構造、実装 ... ◦ グレーボックステスト ◦ 実装をある程度調べた上で、ブラックボックステストのテストケースを効率的 に選択していく 22 テスト技法
(C) mixi, Inc. ◦ ブラックボックステスト ◦ 同値クラステスト ◦ 境界値テスト ◦
…. ◦ ホワイトボックステスト ◦ 制御フローテスト ◦ データフローテスト 23 テスト技法
(C) mixi, Inc. 同値クラステスト ◦ 同値クラスに分け、代表値を選んでテストケースを作る ◦ 例 ◦ 入力値は0~100
◦ 0~19は未成年、20~100は成人 と返すプログラムを考える 24 テスト技法
(C) mixi, Inc. 境界値テスト ◦ 同値クラステストを元に、境界値に注目したテスト ◦ パーティションの最小値と最大値、または最初の値と最後の値を選んでテスト する ◦
-1, 0, 19, 20, 100, 101 25 テスト技法
(C) mixi, Inc. 1. テストは欠陥があることは示せるが、欠陥がないことは示せない 2. 全数テストは不可能 3. 早期テストで時間とコストを節約 4.
欠陥の偏在 5. 殺虫剤のパラドックスにご用心 6. テストは状況次第 7. 「バグゼロ」の落とし穴 26 テストの7原則
(C) mixi, Inc. 27 ペアプログラミング
(C) mixi, Inc. ◦ ドライバー ◦ 実際に操作する人 ◦ ナビゲーター ◦
ドライバーの操作を眺めつつ、助ける人 ◦ 定期的に役割を入れ替えながら進める 28 ペアプログラミング
(C) mixi, Inc. うまくやるこつ ◦ ドライバー ◦ 今、何をやろうとしているか、やっているかを明確にする (発言する) ◦
ナビゲーター ◦ 良い方法を思いついたり、ミスに気づいたりしたときに、積極的に発言する ◦ ドライバーが何をやろうとしていることが良くわからなくなったら、すぐに聞く commit & push してれば、役割交代はしやすいはず・・・? 29 ペアプログラミング
(C) mixi, Inc. 30 コードレビューの仕方とされ方
(C) mixi, Inc. ◦ どうすれば、マージされやすいかを考えてみる ◦ PRの説明をしっかり書く ◦ どういう背景で、どういう理由で、どういうものを作った、など ◦
重点的にレビューして欲しいところや、実装していてよく分からなかったと ころ、など ◦ JIRAのチケットや、関連PR,issueなど ◦ 背景の詳細や、仕様などを追いやすい ◦ 監査などのときに、追いやすい、など ◦ どういうタイミングでマージして欲しい、など (QAチームによるテストが終わっ てから、など) 31 コードレビューの仕方とされ方
(C) mixi, Inc. ◦ レビューは人格攻撃ではない (心理的安全性) ◦ わからないところは聞こう ◦ 褒めよう!
◦ この人はこういうところをレビューしてくるだろうなぁと考えてみる 32 コードレビューの仕方とされ方
(C) mixi, Inc. ◦ SQuBOK Guide V3 ◦ テスト駆動開発 ◦
はじめて学ぶソフトウェアのテスト技法 ◦ ソフトウェアテスト技法 33 参考文献
(C) mixi, Inc. 34