メインコンテンツへスキップ
見出し画像

AIが書いたPython、どのテスト本から学ぶ?|pytest・設計・TDDで選ぶ3冊

    AIにPythonの集計処理を書いてもらい、サンプルのCSVでは動いた。けれど、明日届くファイルでも同じように動くのか、自信がない。「テストも書いて」と頼むとコードは増えるが、何を確かめたのか説明しにくい。そこでテストの本を探すと、pytest、単体テスト、テスト駆動開発という言葉が並び、入口で迷ってしまいます。

    Pythonの基礎文法は分かるけれど、自分の処理にテストを足したことがほとんどない。そんな人の最初の候補は『テスト駆動Python 第2版』です。すでにテストを実行できる人は、『単体テストの考え方/使い方』へ。実装と検証の進め方そのものを変えたい段階なら、『テスト駆動開発』を選ぶ。操作、テストの価値、開発の順序。いま詰まっている場所で、一冊目は変わります。

    今回は、Pythonで書かれた通常のプログラムを検証するための3冊に絞ります。LLMの回答内容の評価や、Web画面のE2Eテストは対象に含めません。選書は出版社の書誌・目次と販売ページに基づくもので、3冊を読了した体験レビューではありません。AIツール専用の本ではないからこそ、ツールを乗り換えても使う検証の考え方を探せます。

    買う前に、自分の処理で一本だけテストを書く

    たとえば、社内の申請件数をCSVから数える短い処理を考えてみます。ここで確かめたいのは「エラーが出ずに終了するか」だけでしょうか。空のファイルは0件として扱うのか、同じ申請IDが二つあったら重複として除くのか、必須の列がないときは止めるのか。答えは会社の業務ルールによって変わります。

    この例は記事独自の学習用です。まず「同じ申請IDが二つあるとき、件数はいくつになるべきか」を日本語で決めてみてください。期待する数字を決められないなら、本を買う前に仕様の確認が必要です。決められるのにPythonで検証できないなら、pytestの使い方が学習の入口になります。

    無料のpytest公式入門では、assertによる期待値の確認や失敗結果の読み方を確かめられます。これで一本書けるなら、すぐに本を増やさず、そのテストを仕事の小さな変更で使ってみてもよいでしょう。体系的な説明が必要だと感じたところで、次の候補を選びます。

    1. テストを書く手が止まるなら『テスト駆動Python 第2版』

    Brian Okken著、株式会社クイープ翻訳・監修、安井力監修、翔泳社刊。出版社による発売日は2022年8月30日です。pytestの導入から、fixture、パラメータ化、カバレッジ、モック、CIまでを扱う構成が、公式の書誌・目次で確認できます。

    この本を最初に置く理由は、Pythonの処理を検査する手段を揃えやすいからです。「入力を変えて何度か試す」を、その都度の手作業で終わらせず、繰り返し実行できる形へ移す。AI生成コードを扱う人にも、この基礎はそのまま必要になります。

    向いているのは、Pythonの基礎は分かるが、テストファイルの作成やfixtureで迷う人。 すでにpytestを普段使いし、知りたいのが特定の設定や新しい機能だけなら、公式ドキュメントを先に調べるほうが早い場合があります。紙で体系的に追いたい人はこちらです。

    『テスト駆動Python 第2版』の紙版をAmazonで確認する

    読み進める際は、いきなりCIまで揃えなくても構いません。自分の小さな処理を一つ選び、通常の入力と、空・重複・不足などの入力を分けて検証する。複数の入力と期待値を同じテスト関数で確認する手段は、pytestのパラメータ化でも確認できます。

    2022年刊の本なので、現在のインストール手順やPython・pytestの対応条件は公式資料と照合してください。発売年だけで候補から外す必要はありませんが、書籍のコードを現在の環境にそのまま当てはめられるとは限りません。

    2. テストが増えるほど変更が怖いなら『単体テストの考え方/使い方』

    pytestでテストを実行できても、変数名や内部の構造を直すたびにテストまで大量に修正することがあります。実際の振る舞いは変わっていないのに失敗するなら、テストが何を約束しているかを見直す余地があります。この段階では、記法を増やすより、残すべきテストを判断する軸が欲しくなります。

    候補はVladimir Khorikov著、須田智之訳の『単体テストの考え方/使い方』。マイナビ出版から2022年12月28日に発売されました。出版社の目次では、良い単体テストの評価、モックと壊れやすさ、統合テスト、データベースのテストなどを扱っています。pytest専用の操作本ではなく、どんなテストが変更を支えるのかを考える候補です。

    向くのは、テストは書けるが、モックをどこまで使うか、どの失敗を守るかの説明に迷う人です。 まだPythonの関数や例外処理が不安な人、まずテストを一本動かしたい人は、前の本や無料入門を優先して構いません。

    『単体テストの考え方/使い方』の紙版をAmazonで確認する

    仕事に戻ったら、最近失敗したテストを一つ選び、「利用者に見える約束が壊れたから失敗したのか、内部の書き方を変えたから失敗したのか」と問い直してみる。どちらが適切かはシステムの境界や目的によりますが、理由を言葉にすることで、AIが追加したテストを採用する際のレビューもしやすくなります。

    AIにテストケースを増やしてもらう前に、自分たちが守りたい振る舞いを説明できるか。この本を選ぶ判断も、テスト数やカバレッジの数字だけに寄せず、変更時の困りごとから考えると明確になります。

    3. 実装を一度に頼みすぎるなら『テスト駆動開発』

    仕様をまとめて渡して、大きな実装を受け取り、最後にテストで確認する。この進め方で修正が広がりがちなら、一度の変更を小さくする方法を学ぶ価値があります。テストの記法とも、完成したテストの良し悪しとも、少し違う課題です。

    Kent Beck著、和田卓人訳の『テスト駆動開発』はオーム社の書籍です。出版社の紹介は、テストとリファクタリングを小さなサイクルで回す実践を中心に据えています。特定のAIへの指示例を学ぶ本ではありません。自分が何を確認してから次へ進むか、その順序を考える候補です。

    向いているのは、実装量を増やす前に、期待する振る舞いを小さく確かめる習慣を作りたい人。 今日中にpytestのfixtureを直したい人には、最短の調べ物先ではありません。すでにチームで小さなテストと変更のサイクルを回せているなら、手持ちの知識を実務で使うことを優先できます。

    『テスト駆動開発』の紙版をAmazonで確認する

    学んだ先では、AIに大きな機能を一度に作らせる代わりに、期待する振る舞いを一つ決め、失敗を確認し、その一つを満たす変更を検討する進め方へ応用できます。これは本書のAI活用手順を紹介しているのではなく、この記事からの実務上の提案です。テストが通った後も、人が仕様との一致を確認する役割は残ります。

    一冊目の決め方と、週末に残す小さな成果

    pytestを初めて使うなら『テスト駆動Python 第2版』。すでに動かせるがテストの壊れやすさに困るなら『単体テストの考え方/使い方』。変更を小さく進める習慣を作りたいなら『テスト駆動開発』。3冊を同時に揃える必要はありません。

    初心者は、最初の本を読みながら自分の処理に一本のテストを足す。実務者は、守る意味を説明できないテストを一つ見直す。チームリーダーは、「どの条件なら変更を受け入れるか」をチームで共有する。役割ごとに持ち帰る成果を決めると、読む範囲も絞りやすくなります。

    週末の到達点を「一冊読み切る」にしなくてもよいと思います。期待する結果を日本語で一つ書き、その結果を確かめるテストを作り、条件を変えたときに本当に失敗するかを確かめる。この小さな成果があれば、次に必要なのがツールの操作なのか、テスト設計なのか、開発の進め方なのかが見えてきます。

    紙と電子版は別の購入形式なので、選んだ版が自分の読み方に合うかも確認してください。コードを見ながら手を動かすなら、手持ちのPCと紙の本でも始められます。学習のために新しい読書端末まで揃える必要はありません。

    Python以外の品質も気になったら

    今回の話は通常のPython処理の検証に絞りました。LLMの回答評価や画面操作まで含めて、学ぶ領域自体を選びたい場合は、「コード・LLM・画面」からテスト本を選ぶ記事へ進んでください。先に対象を分けることで、今の仕事に関係しない本まで買うのを避けやすくなります。

    AI・データ・開発分野で別の学習候補も探したい人は、Book Media Techでテーマを絞って見比べられます。次に買う一冊は、いま自分が説明できないことを一つだけ埋めるために選ぶ。その積み重ねが、AIの出力を受け取るだけでなく、根拠を持って検収する仕事につながります。

    AI・データ・開発の本を探す|Book Media Tech
    AI・データ・開発の本を探す|Book Media Tech

    ※Amazonのアソシエイトとして、alive_fairy7015は適格販売により収入を得ています。

     
     
    【景色を変える一冊を】あなたの脳をアップデートする本を紹介。AI副業 / 資産形成 / キャリア戦略など。Netflixを見る時間を、未来を変える読書に変えましょう。As an Amazon Associate, I earn from qualifying purchases.

    あなたへのおすすめ