Skip to Content
ロバストPython ―クリーンで保守しやすいコードを書く
book

ロバストPython ―クリーンで保守しやすいコードを書く

by Patrick Viafore, 鈴木 駿, 長尾 高弘
March 2023
Intermediate to advanced
384 pages
5h 30m
Japanese
O'Reilly Japan, Inc.
Content preview from ロバストPython ―クリーンで保守しやすいコードを書く

22章受け入れテスト

開発者はコードベースに直接関わるテスト、すなわちユニットテスト、結合テスト、UIテストなどに注目しがちだ。これらのテストはコードが意図した通りの動作かどうかを検証するものであり、回帰を防ぐために役に立つ。しかし、顧客が期待するものを構築するためには全く役に立たない代物である。

開発者はコードを完全に把握した上でテストを作成するので、テストは開発者の期待に沿う方向にバイアスがかかる。しかし、テストを経て保証された動作が本当に顧客が望むものである保証はない。

次のユニットテストについて考える。

def test_chili_has_correct_ingredients():
    assert make_chili().ingredients() == [
        "牛ひき肉",
        "ミックススパイス",
        "たまねぎ",
        ...,
        "トマト",
        "いんげん豆"
    ]

このテストは通るしコードで生じた回帰も検出する。一見完璧だ。しかし、これを顧客に見せると「これは違う。私はテキサスチリが必要なんだ」と言われるかもしれない。ユニットテストは間違ったものを作ることを防げない。

ここで登場するのが受け入れテストである。受け入れテストは正しいプロダクトを作っているかを検査する。ユニットテストや結合テストは検証(verification)であり、受け入れテストは確認(validation)である。受け入れテストは、作っているものがユーザの期待通りのものであることを確認する。

この章ではPythonにおける受け入れテストについて学ぶ。今回はGherkin言語を用いて全く新しい方法で要件を定義するbehaveフレームワークを使う†1。ユーザとの対話を明確にするために振る舞い駆動開発(Behavior-Driven ...

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

Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ

Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ

Ken Youens-Clark, 中山 光樹
scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

Aurélien Géron, 下田 倫大, 長尾 高弘
Node.jsデザインパターン 第2版

Node.jsデザインパターン 第2版

Mario Casciaro, Luciano Mammino, 武舎 広幸, 阿部 和也
サイトリライアビリティワークブック ―SREの実践方法

サイトリライアビリティワークブック ―SREの実践方法

Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara, Stephen Thorne, 澤田 武男, 関根 達夫, 細川 一茂, 矢吹 大輔, 玉川 竜司

Publisher Resources

ISBN: 9784814400171Other