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
53k
2021新卒テスト研修資料
2021/04/19 開催 株式会社ミクシィ 2021新卒テスト研修の資料
zumin
April 26, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
120
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
360
CSC307 Lecture 03
javiergs
PRO
1
480
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
180
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
350
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
170
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.5k
dchart: charts from deck markup
ajstarks
3
960
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
340
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
150
gunshi
kazupon
1
140
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2k
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
280
Skip the Path - Find Your Career Trail
mkilby
0
44
Designing for humans not robots
tammielis
254
26k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
740
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
270
Discover your Explorer Soul
emna__ayadi
2
1k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
49
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
400
From π to Pie charts
rasagy
0
120
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
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