Slide 1

Slide 1 text

pytestの第一歩 2021-06-09 @stapy mizzsugar0425 〜「テスト駆動Python」の紹介〜 1

Slide 2

Slide 2 text

Agenda - 自己紹介 - 本の概要 - 対象読者 - おすすめポイント - 関連本 2

Slide 3

Slide 3 text

お前、誰よ? - Twitterはこのアイコン (@mizzsugar0425)→ - Python歴3年 - Spready株式会社 (we are hiring!!) - 好き: コーヒー、自転車、ビール - Stapy5代目LT女王 - 静岡住みでフルリモートで働いています - Django Congressで登壇します! Djangoでの型ヒントについて話ます。 https://djangocongress.jp/ 3

Slide 4

Slide 4 text

本の概要 - 「Python Testing with pytest」の翻訳版 https://amzn.to/3uY612B - pytestでのテストコードの書き方を紹介 - 基本的な文法だけでなく、 プラグインや他ツールと合わせた使い方も - サンプルコードはPython3.6、pytest 3.2。Python3.9の今でも使える内容 - 本のURL↓ https://amzn.to/3ggb6y0 4

Slide 5

Slide 5 text

対象読者 - pytestでテストを書いたことがないけれどもやってみたい方 - テストコード自体書いたことがない方でも読める内容です ※Pythonの基本的な文法は知っている必要があります 5

Slide 6

Slide 6 text

おすすめポイント 6

Slide 7

Slide 7 text

pytestの使い方がまとまっている - 詳細な解説とコードつきで基本から応用までまとまっています - 1冊辞書代わりに手元にあると安心 7

Slide 8

Slide 8 text

よく言われるpytestのオススメ機能 - pytest.mark.parametrize - フィクスチャ 🤔 とよく言われるけど、 どういう仕組みなのかとか 何が嬉しいのか良くわからない… 8

Slide 9

Slide 9 text

具体的なコードも載っている - テスト駆動で実装が進みます - コードは簡単なものなので、pytestの文法を理解しやすいです - 基本的な文法だけでテストコードを書く所から始まり、 フィクスチャやプラグインを用いてテストコードを改善する流れが 分かります - フィクスチャについては、2章使って扱うほど手厚いです(全7章+付録) 9

Slide 10

Slide 10 text

練習問題がついている - 各章に練習問題がついています - 各章についているサンプルコードにちなんだ問題 - ☓ 読んで終わり ○ 読んで書いて身につける 10

Slide 11

Slide 11 text

私の学び方 pytest学びたて - 1章読む→練習問題を解く→分からなかった箇所をもう1回読む - pytestを使って他のサイトに載っている練習問題を解いてみる どちらもTDDのための題材だけど、テストコード練習にも良いかと! http://devtesting.jp/tddbc/ https://absj31.hatenadiary.com/entry/20120721/1342880403 - ↑の前に、付録Gの写経するのも良いかも 現場で実践中 - テストコードが上手く書けない時に読む→本の内容を試してみる 11

Slide 12

Slide 12 text

付録G - 日本語訳版のオリジナルコンテンツ - 翻訳者のやっとむさんが著者 - テスト駆動開発でプログラムを実装しています - 何を考えて実装を進めているかまで書かれています - まるでやっとむさんとペアプロしているよう 12

Slide 13

Slide 13 text

関連本 1. テスト駆動開発 2. レガシーコード改善ガイド 13

Slide 14

Slide 14 text

1. テスト駆動開発 - 「テスト駆動Python」はどちらかというと pytestの文法に重きを置いていたので TDDの考え方や進め方をより詳しく学ぶならこの本 - 2章目に使われているコードはPython (ただし、Pythonの標準モジュールであるunittestモジュールを使用) - 本のURL↓ https://amzn.to/3v4iAtc 14

Slide 15

Slide 15 text

2. レガシーコード改善ガイド - まだ読んでないけど、今回の発表でpytestおよびテストコードを 学び直した際に読みたくなりました🔥 - テストコードが書かれておらず、メンテナンスしにくい複雑なコードを 「レガシーコード」と定義 - レガシーコードを分析し、テストコードを追加する方法が書かれているらしいです - 本のURL↓ https://amzn.to/3znqX6O 15