テストにおけるシフトレフトを改めて調べてみました。
従来、製品がほぼ完成してからテストを行うことが多いと思いますが、シフトレフトでは開発の初期段階(設計やコーディングが始まる前)からテストの計画・設計を行うことを重視しています。シフトレフトにより開発初期のテストで問題早期発見・品質向上・開発効率化が期待できるとしています。しかしこの文章では、何でそれが期待できると言えるのか?まで説明しきれないように感じていました。
そこで改めて調べてみたところ、以下の記事を見つけました。
「シフトレフト」が「抽象度」のコントロールにどのように役立つかを説明しています。これが自分としては腑に落ちたのでブログに纏めたいと思います。
ここで言う「抽象度」とは「物事をどれだけ大まかに捉えるか、どれだけ具体的な詳細に踏み込むか」という度合いを指します。
【抽象度高】 仕様 > テストケース > 実装 【抽象度低】
仕様から一足飛びに実装して抽象度を一気に下げるのではなく、中間の抽象度のテストケース作成を挟むことで抽象度の下げ方を段階的にしていると捉えます。
「まだ詳細が決まっていない」「高い抽象度」の段階でテストを設計し始めると、「実際にどう動けば正しいのか」という具体的な仕様・動作を考える必要が出てきます。テスト設計を通じて、抽象度が高いままだと見過ごされがちな問題や仕様のあいまいな点が具体化されるため、エラーや認識のずれを早い段階で発見し手戻りを最小限に抑えることが期待できます。
この説明が自分としては腑に落ちたなと感じましたが、皆さんはいかがでしょうか?
余談 アイキャッチはトロサバ定食です。ヨドバシカメラ横浜店の地下のお店で食べました。

おしまい。ここまで読んでいただきありがとうございました。