Skip to Content
強力なPython
book

強力なPython

by Aaron Maxwell
March 2025
Intermediate to advanced
200 pages
2h 51m
Japanese
O'Reilly Media, Inc.
Content preview from 強力なPython

第7章 自動テスト 自動テスト

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

自動テストを書くことは、平均的な開発者と世界最高の開発者を分けるもののひとつだ。 このスキルをマスターすれば、これまでよりはるかに複雑で強力なソフトウェアを書けるようになる。それは、あなたのキャリアの弧を変える超能力なのだ。

皆さんの中には、どの言語であれ、自動テストを書いた経験がほとんどない、あるいはまったくない人もいるだろう。この章は、主にそのような人たちのために書かれている。テスト自動化の多くの基本的な考え方を紹介し、テスト自動化が解決すべき問題を説明し、そのための Python のツールの適用方法を教える。

他の言語の標準的なテストフレームワーク(Java の JUnit や PHP の PHPUnit など)を使った経験が豊富な人もいるだろう。一般的に言えば、他の言語で xUnit フレームワークを使いこなし、Python に堪能であれば、Python のunittest モジュールドキュメントをざっと読み始めることができるだろう。1 をざっと読み始めることができるかもしれない。Python のテストライブラリunittest は、ほとんどの xUnit ライブラリがどのように動作するかと密接にマッピングされている。2

もしあなたが経験豊富なら、少なくともこの章をざっと読み、おそらくは徹底的に勉強する価値はあると思う。一般化したソフトウェアテスト、そして Python に特化したソフトウェアテストに役立つ、現実的な知恵を織り込んだ。これには、Pythonのテストコードの組織化、メンテナンス可能なテストコードの書き方、サブテストのような便利な機能、さらにはプログラミングの認知的な側面...テスト駆動開発を通じて楽しく生産性の高い「フロー」状態になるようなトピックも含まれる。

それを念頭に置いて、自動テストを書くための核となる考え方から始めよう。そして、それらのアイデアをPythonに特化して適用していく。

テスト駆動開発とは何か?

自動テストとは、別のプログラムをテストするプログラミングのことである。一般化すると、そのプログラムの特定の部分、つまり関数、メソッド、クラス、あるいはこれらをひとまとめにしたグループをテストする。 私たちはその部分を被試験システム(SUTと略すこともある)と呼んでいる。

テスト対象のシステムが正しく動作していれば、自動テストはパスし、そうでなければテストは失敗する。実際のアプリケーションでは、開発が進むにつれて、このようなテストが数多く蓄積されていく。

単体テスト、統合テスト、エンドツーエンドテストなどなど。これらの区別は便利だが、今は気にする必要はない。これらはすべて同じ土台を共有している。

この章では、テスト駆動開発(TDD)を行う。テスト駆動開発とは、新しい機能やバグ修正のたびに、まずそのための自動テストを書くことから始めるということだ。テストを書き、テストを実行し、テストが失敗したことを確認する(そしてテストコードが実際に動作していることを確認する)。テストがパスすれば、機能することがわかる。

これは、最初に機能を実装し、その後にテストを書くのとは異なるプロセスだ。テストを最初に書くことで、コードのインタフェースを考え、"自分のコードが機能していることをどうやって知るのか?"という問いに答えることになる。この利点はすぐに役立つが、それがすべてではない。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

AWS上のレジリエントなシステムの構築

AWS上のレジリエントなシステムの構築

Kevin Schwarz, Jennifer Moran, Nate Bachmeier

Publisher Resources

ISBN: 9798341634039