QA(品質保証)とは何かを考えた話

はじめに

aptpodという会社のQAチーム横田です。

Aptpod Advent Calendar 2019 4日目の記事になります。

去年に引き続き、アドベントカレンダーを書いています。

去年は、テスト自動化について書きました。
qiita.com

今回は、QA(品質保証)とは何かを考えた話を書いていきたいと思います。
* QA = Quality Assurance(以下、QAと省略する)

QAって何をするの

はじめに、QAの一般的な定義を明記しておきます。

品質保証(ひんしつほしょう、英: quality assurance、QA)は、効率と品質が求められるあらゆる活動において、それらに保証を与えるのに必要な証拠を提供する活動一般を指す。計画され体系化された活動は一般に、その製品やサービスが要求された品質を満足していることを保証する必要がある。品質保証は品質管理と密接に関連しており、これらによって顧客や権利保有者のニーズ・期待・要求に製品が適合していることを保証する。QA は、品質が所定のレベルに到達していることを事前に確認する手続きを効率的に構築するものである。 QA は設計・開発・製造・実装・サービス・文書といったあらゆる活動をカバーする。また、QA には材料や部品、製造工程や検査工程などの品質の規定も含まれる。

Wikipediaより引用 品質保証 - Wikipedia

品質とは

本題のQAとはの前に、そもそも「品質」とは何を指すのかを自分なりに考えました。
千差万別の考え方があり、これが答えだとは思っていません。
あくまで、今回考えた際に、私なりにしっくりきた内容としています。

改めて考える前までも、「品質」という言葉は当たり前の様に使っていました。
その時は、良い品質ユーザが心地よく使えること ぐらいの感覚でいました。
そこに、開発者含む提供する側の事は一切考えていません。

「開発者が疲弊した結果ユーザが心地よくなったら、それは良い品質なのだろうか?」(哲学的・・・)

自問自答した結果、答えは『NO』でした。

結論

「ユーザーも企業も安心していられる状態」が今の所一番しっくりくる答えになりました。

どんな状態か

ユーザー

何の不便も不安も無く使用できている

→言わずもがなですが、何の障害も無くユーザビリティ的にも不自由無く使用できている状態です。

企業

次に向かって進んでいる

→例えば、リリースしたモノに対して、何も心配しなくて良い状態です。

じゃ、QAは何をするの?

「品質」の定義ができたので、本題のQAは何をするのかに話を戻します。

QA=品質保証=「ユーザーも企業も安心していられる状態」を整える活動を指す。

これが現時点での私なりの答えになります。

リリースまでは、ユーザーが安心できる状態を「テスト」という手段で作っていきます。

リリース後は、PMや開発メンバーが何もせずに次のプロダクト開発ができる様な環境を作っていきます。 例えば、問い合わせが発生したバグの一次請けだったり、リグレッションテストを定期的に行うなどして 心配事を少しでも減らしていく活動を進めてい行くことかなと思います。

よく、QAやテストエンジニアは「最後の砦」と言われがちですがユーザーと企業と並走して進んでいくことが理想と考えています。 そんな活動を少しでもしていきたいなと思います。

まとめ

こういった活動していくには、多彩な知識が必要になってきます。 テストの事だけでなく、開発手法や工程についての知識も。

また、限られたリソース(人員/時間など)内で行うには、自動化スキルだったりも必要になってきます。 もちろん、様々な人達と会話することが必然的に求められていくので、コミュニケーション能力も大事。 そういった成長ができる職種がQAとしての醍醐味かなと思っています。