📝

「シフトレフト」はどこからきたのか

2024/07/31に公開

「シフトレフト」についてお話させていただく機会を頂いたので調べています。昨今「シフトレフト」は品質保証業界に限らず使われる言葉になってきていると思っています。その出典と、これからについて少し想いを馳せてみたいと思いました。

chatGPTさんに聞いてみた

「シフトレフトとは」

「シフトレフト」(Shift Left)という用語は、ソフトウェア開発およびテストプロセスにおいて、テストや品質保証の活動をより早い段階で行うことを指します。従来のウォーターフォール開発モデルでは、テストは開発の後半、つまり右側に位置していました。これに対して、シフトレフトはテストを開発の早期段階、つまり左側に移動させることを意味します。

シフトレフトの始まりは?

こちらについてはAitaさんの以下記事にまとまっていました。
https://parasoft.techmatrix.jp/shift-left-testing

シフトレフトの考え方は2001年に生まれた

2001年といえばアジャイルソフトウェア開発宣言の年です。思ったより最近の考え方なんだなぁと意外に感じました。ウォーターフォールからアジャイルへの移行の最中にシフトレフトの考え方も広まったとしたら、ウォーターフォールの弱点の対応策としてシフトレフト(ウォーターフォールの中での解決方法)とアジャイル開発(ウォーターフォールから離れた新しい開発手法)が同時期に謳われ始めたということでしょうか。

そもそもここで謳われているのは「シフトレフト」ではなく「シフトレフトテスティング」という具体の手法という点にも注目すべきかと思いました。

shift-left-testingに書かれていること

Aitaさんのブログにも記載のあったLarry Smith氏の記事Shift-Left Testingについてです。

大まかに読みましたが、現在よく耳にする「要件定義(もしくはそれより前の企画段階)のレビュー工程からQAEも参画しよう」という話は少しも書かれていませんでした。書かれていたのは「QAがより早い段階でテストを行うこと」「コーディングが終わったらすぐにQAEがコンポーネントテストを行うこと」ということです。

ただし、"「コーディングが終わったらすぐにコンポーネントテスト」が実現できるように、開発初期から全てのミーティングに参加し、機能仕様作成中に関わり、それと並行してテストのコーディングが始められた"とあります。この点については昨今謳われている「シフトレフト」と共通している点かなと思います。

QAEがコンポーネントテストに寄与することで、コンポーネント自体の質(コーディングの段階でテスト容易性についてQAEから指摘できる)も上がると記載されています。

WEBで辿る「シフトレフト」

「シフトレフト」「シフトレフトテスティング」で検索すると2020年代の記事が圧倒的に多いです。また組み合わせとしては「シフトレフト アジャイル」「シフトレフト DevOps」が多く、ここ何年かのトレンドになっているようです。

最近の記事からは少し離れて、少し古めの記事を集めてみました。
ちなみに、Google検索での日付指定は「令和 after:2019-04-01」「令和 before:2019-04-01」ってな感じでできます。

2001年より前

「シフトレフト」が含まれた求人記事がいくつかヒットしますが、公開時期がこの年代で、その記事がそのまま使われているのでヒットしているみたいです。「Shift Left Testing」でも検索してみましたが、ヒットしませんでした。
Capers Jones氏の研究発表が1996年とのことなので、その頃から早期テストの重要性がじわじわと広まっていったという感じでしょうか。ただしCapers Jones氏のグラフもコーディング以降に限られており、要件定義などの開発前のフェーズは対象にされていないようです。

2001年〜2005年

日本語での「シフトレフト」はヒットしません。「Shift Left Testing」は2001年に比べると記事が増えていますが、まだ事例と呼べそうなものはなさそうです。

2005年〜2010年

日本語での「シフトレフト」は特に「セキュリティ」にフォーカスしたものが出始めます。記事自体はまだまだ見当たらないものの、テクマトリックスが「静的フロー解析」のツールを提供し始めたりと、注目が集まってきた様子が伺えます。「Shift Left Testing」の記事数は明らかに増え、また「Automated」「DevOps」などの単語と組み合わせて使われているようです。またAPIテストの自動化ツールも多くリリースされ、GUIのテスト自動化ツールも出始めた時期となります。(seleniumのオープンソース化が2004年)

2010年〜2015年

日本語での「シフトレフト」記事もここら辺から増えてきます。2013年JaSSTにてテスティングのグローバル最新事情という資料が公開されていることから、この時期の前後に日本界隈では話題になり始めたのではないでしょうか。(ちなみに最後のスライドのQAの未来予想図はなかなか的を得ていると思いましたが、ここからするとちょっと遅れてるみたいです)。
「Shift Left Testing」の記事はここまで来ると山のように増え、バリエーションも見られます。グローバルでは"当たり前"になりつつあるところだったみたいです。Four Types of Shift Left Testing - SEI Blogでは「シフトレフトって言われてるけど色々やり方があって、言葉の抽象度が増してるよね」というところに着目されています。

2015年〜

ちらほらと日本でも「シフトレフト」の記事は増えてきたものの、圧倒的に増え始めたのは2018年あたりみたいです。意外と最近だなぁという気持ちになりました。

まとめ

シフトレフト(テスティング)についてWEB上で奇跡をたどってみました。その他の媒体についてはこれから少しずつみていければいいなぁと思っています。おすすめの資料や書籍がありましたらコメントいただけると幸いです。

Discussion