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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
zumin
April 26, 2021
Programming
1
53k
2021新卒テスト研修資料
2021/04/19 開催 株式会社ミクシィ 2021新卒テスト研修の資料
zumin
April 26, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
130
AI主導でFastAPIのWebサービスを作るときに 人間が構造化すべき境界線
okajun35
0
700
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
270
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
250
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
170
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
240
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
430
How to stabilize UI tests using XCTest
akkeylab
0
110
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
560
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.5k
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
480
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
7.9k
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
Prompt Engineering for Job Search
mfonobong
0
180
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
We Have a Design System, Now What?
morganepeng
55
8k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
250
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
The SEO Collaboration Effect
kristinabergwall1
0
390
Docker and Python
trallard
47
3.8k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Done Done
chrislema
186
16k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
190
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