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
53k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2021新卒テスト研修資料
2021/04/19 開催 株式会社ミクシィ 2021新卒テスト研修の資料
zumin
April 26, 2021
Other Decks in Programming
See All in Programming
5分で問診!Composer セキュリティ健康診断
codmoninc
0
580
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
350
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
120
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
350
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
140
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.7k
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
430
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
900
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
230
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
170
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
610
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
850
Featured
See All Featured
The Limits of Empathy - UXLibs8
cassininazir
1
530
Faster Mobile Websites
deanohume
310
32k
4 Signs Your Business is Dying
shpigford
187
22k
The Language of Interfaces
destraynor
162
27k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
460
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Fireside Chat
paigeccino
42
4k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
880
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