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 ―クリーンで保守しやすいコードを書く

24章ミューテーションテスト

静的解析とテストでセーフティネットを構築する際に、できる限りテストしているとどうやって確認するのか。すべての条件を完璧にテストするのは不可能であり、賢くテストを書かなければならない。テストが多ければ多いほどセーフティネットも広がる。しかし、セーフティネットの作りが適切であるとは限らない。解れて綻びたセーフティネットはセーフティネットが全くない場合よりも質が悪い。安全であるかのように見せかけ、誤った自信を与えてしまう。

セーフティネットを強化して綻びのない網にするのが目標である。コードにバグがある場合、テストが確実に失敗することを確認する必要がある。この章ではミューテーションテストでそれを実現する方法を学ぶ。mutmutというライブラリでミューテーションテストの方法を学び、テストとコードの間の関係を調べる。最後にカバレッジツールとその使い方、mutmutとカバレッジレポートの統合方法について学ぶ。ミューテーションテストを学ぶことでテストがどの程度効果的かを計測できるようになる。

24.1 ミューテーションテストとは何か

ミューテーションテストはバグを発生させることを目的にソースコードを書き換えるテスト手法である†1。書き換えられたコードはミュータントと呼ばれる。ミュータントに対してテストを行う。テストに失敗したら、それは良い兆候である。テストがミュータントの除去に成功したのだ。一方で、テストに成功したら、それはテストが失敗を検出するのに必要なロバストネスを備えていないことを意味する。ミューテーションテストは、テストがどれだけ優れているかをテストする意味でメタテストの一種である。テストコードもまたコードベースを構成するものであり、テストコードにも何らかのテストを必要とする。 ...

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