QAエンジニアと名乗るようになって6年弱経つんですが、それまでのQA活動方法論とかを改めて調べ直していると、「変遷すごいじゃあん…」と思っています。その上、多分要求水準も上がっている印象です。ちょっと私の経験と体感をふりかえってみました。
基本的にいろんな人が言ってることの焼き直しです。個人ブログなんで書きたいこと書きます。
QA = テスト、というのもたぶん間違いではなかった
ネイティブアプリが当然だった
十数年前くらいまでは、今ほどクラウドのSaaSなどは発達しておらず、アプリケーションはデバイスにインストールして使うものという印象だったと思います。したがって、その頃までは「品質保証 = 受け入れテストによる仕様満足確認」と言ってもよかったと思います。納品(販売)されるソフトウェアが正しく動作し、かつアップデートも頻繁でない(高々月イチ程度ですかね)なので、「成果物に瑕疵がない」ことをソフトウェアテストで担保できればOKなはずです。
私の前職(当時は開発エンジニアでしたが)での納品物とテストもそのようなものでした。「仕様がfixしており正しい」という前提に立てば、ウォーターフォール開発やその中の最後の工程でテストするというのも違和感はないです。
曖昧な仕様
現実問題、 完璧な仕様というのは存在しません 。「ボタンに表示されている文字列が崩れていない」ということは明示的に仕様に書かれていないこともありますし、そもそも「崩れていない」の定義も曖昧です。そもそも「宇宙人が何らかのテクノロジーを用いてレコードを書き換えても動作する」みたいな荒唐無稽(に見える)ことは仕様にはしませんが、どこまで仕様として考慮するか?という線引きはありません。したがって、全てを網羅した仕様を作成するのは不可能で、「『仕様がfixしており正しい』という前提」自体やはり難しいものだったなと個人的には感じています。
QA = テスト、ではなくなってきた
クラウド上のWebアプリケーション・SaaSの隆盛
ここ十年くらいで、価値提供する手段としてWebアプリケーション・SaaSはかなりの勢いで浸透した印象です。Web技術の上で動くという統一したアプローチで多種多様なサービスが提供される、というのは開発側からしても大きいインパクトがあるものでした。
特に、PoCとしてのプロトタイピングとその頻回リリースは、インストールしないアプリだからこそできるものです。「とりあえず作って出して反応を見る」ことを優先するなら、仕様をカッチカチに作り込むことは無駄です。
アジャイル開発の一般化
成果物の形式が変われば開発形式も適したものに変わります。サービスを提供し続けた上で、フィードバックをもとに仕様・実装を更新し続けることは、以前の開発手法では対応できません。
アジャイル開発が一般的になったのは、体感的にここ5年くらいだと思います。ましてやそれが各社に浸透して、というと、当たり前のものになったのはここ数年かもしれません。それだけプロセスを変えるというのは、いろいろとパワーを使うものなのでしょう。工場だったら機械総入れ替えぐらいでしょうからね。
QA活動の対象の変化
以前はアプリケーションのバイナリを提供すれば終わり(というより何もできない)という状況でしたが、現在は サービスの総体を品質保証し続けないといけない 状態になっています。

さらに言えば、動作するアプリケーションに加え、その周辺もQA活動の対象です。仕様自体のテストとか、CI/CDパイプラインとか、モニタリングとフィードバックとか。全体を俯瞰しての開発プロセスとか。もはや二次元の図には落とし込めないですね。
そして、"テスト"という語が指すこと自体も変化しつつあるように思います。ISTQB Glossaryによれば
コンポーネントやシステム、および関連する作業成果物の品質を評価するための、ソフトウェア開発ライフサイクル内のプロセス。
です。定義自体は変わっていないのかもしれませんが、かつての「アプリケーションを動かしてみて評価すること」はごく一部でしかなく、 すべてがテスト対象で、継続してテストしていく必要がある と言えると思います。
遡ってみて思うこと
QAエンジニアのスコープ
"QAエンジニア"という職種に対する見方の違いは、「そのQAエンジニアが何を守ろうとしているのか?」という認識の違いに起因しているのでは?ということです。特に、シフトレフト・シフトライトとか、自動化・パイプライン品質とか、以前は認識されていなかった領域に対しても、QAエンジニアとしてアプローチする必要が出てきています。しかし、どういったアプローチであれ、 品質に関してコミットするエンジニアがQAエンジニア です。
領域が広がるにつれ、QAエンジニアだけではカバーしきれないようになってくるのは当然のことです。そのため、QAエンジニアが守備範囲を広げつつも、QAエンジニア以外も含む全員でQA活動をしていくというのはもはや避けられません。QAエンジニアはQA活動の手法を広めつつ、プロセスの交通整理をして、開発エンジニアなど他のメンバーにQA活動の一部範囲を移譲し、その上でQAエンジニアが注力すべき場所に集中する必要がありそうです。
「テストするだけのQAエンジニアは認識が古い」と見る動きもあります(感じます)が、そもそも求めている/求められていることをすり合わせないままなので、古いもへったくれもありません。テストを作り・行うのも大事なQA活動の一つです。方向が合うかどうか、です。
QAエンジニアのこれから
たぶん、「私の考える"品質"はコレです」「私はこうして品質にコミットしていきます/きました」ということを明確に語れないといけない、と感じています。ミスマッチを防ぐだけではなく、各々の姿勢を宣言してそれに向かっていくことが重要なのではないでしょうか。




