Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
2021新卒テスト研修資料
zumin
April 26, 2021
Programming
2
42k
2021新卒テスト研修資料
2021/04/19 開催 株式会社ミクシィ 2021新卒テスト研修の資料
zumin
April 26, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
GitHub Actions を導入した経緯
tamago3keran
1
430
git on intellij
hiroto_kitamura
0
170
Beyond Micro Frontends: Frontend Moduliths for the Enterprise @enterjs2022
manfredsteyer
PRO
0
160
Springin‘でみんなもクリエイターに!
ueponx
0
200
NEWT.net: Frontend Technology Selection
xpromx
0
240
Client-Side Field-Level Encryption for Apache Kafka Connect @ VoxxedDays Luxembourg 2022
hpgrahsl
0
110
Airflowはすごいぞ!
hankehly
0
370
The strategies behind ddd – AdeoDevSummit 2022
lilobase
PRO
4
250
【Scrum Fest Osaka 2022】スクラムチームに放り込まれた若手エンジニアの皆さん、どのように技術のキャッチアップをしていくかイメージはついていますか?
miiiki
0
110
[DevTrends - Jun/2022] Arquitetura baseada em eventos
camilacampos
0
150
Seleniumでイキってたらサーバを絞め落としかけてた話
kenfujita
0
360
What's new in Android development tools まとめ
mkeeda
0
320
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
27
1.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
225
120k
For a Future-Friendly Web
brad_frost
166
7.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
23
15k
What’s in a name? Adding method to the madness
productmarketing
11
1.6k
Design by the Numbers
sachag
271
17k
Teambox: Starting and Learning
jrom
123
7.7k
The Pragmatic Product Professional
lauravandoore
19
3k
How to Ace a Technical Interview
jacobian
265
21k
We Have a Design System, Now What?
morganepeng
35
3k
Gamification - CAS2011
davidbonilla
75
3.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
49k
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