やむのこばなし

ひっそりと続けてる人を重んじるエンジニアのブログ

The 20th Anniversary of TDDを聴いたメモ

9.The 20th Anniversary of TDD の回において頭に残ったフレーズをメモってます。

テストにはCheckingとTestingがある

Checking

品質を向上させないテスト。(=品質を維持する) リグレッションからの保護を主とした目的にするテスト。リファクタリングや機能拡張などの変化についていくために必要である。 既知であるものを、既知であり続ける。 最低限動作してほしいものを確認する。

Testing

品質を確認するためのテスト。 創造的で認知の外からソフトウェアをテストする。エラーを見つけるために創造的破壊行為を行う。 探索的テストと言われることが多い。 テストファーストは一番最初はTestingになる。

品質を向上させるにはCheckingとTestingの両方必要

既知のであるものを、既知であり続けるCheckingと未知のものを探りにいくTestingの両方が品質向上には必要である。 テストコードでTestingの領域である「未知の探索」を行い、未知を既知にすることでCheckingとしてテストコードに残すことが可能になる。そうすることで未知がだんだんと既知になっていき、予想外のエラー・バグというものが潰されていく。

品質を向上させていくという同じゴールを目的にして進めるのが大切。DevOpsの 「KPIを追い求めていくと同じバスに乗っていても同じ向きを向いていない」 話になる。

ロールの「固定」より「循環」

ある日はTestingを行うテストエンジニアというロールにしたり、ある日はCheckingを行うエンジニアというロールにするロールチェンジをチーム内で循環させることが出来たら知見は深まっていく。

そのまとめは・・・

Software Design 2022年3月号に書いてあるってよ。もう買った。