QAエンジニアってなんだろうか。
初めて聞いた時「Question and Answer」をする役割という印象をいだいたことを覚えています。
このイメージからするとサポート系の業務を行うのだろうか?
ヘルプデスクやテクニカルサポートなどの職種と近いのでは?
そのようなイメージをしている一方で、何故かみのもんたがファイナルアンサーを問うてくる光景で頭がいっぱいです
気になる。一体何をしている人たちなのだろうか。
まずQAってなんだ...?
調べて見るとQAとは「Quality Assurance」のことで「品質保証」を表すらしい。
そうかQAエンジニアとは、品質を保証を行っているエンジニアのことを言うのか。
品質保証という言葉を聞いて、僕の頭からは一瞬でみのもんたは消えていった。
なんだか少し寂しそうである。
しかし、品質保証という言葉を聞いて完全に理解できるほど頭のできはよくないため、今度は品質保証について調べる。
品質保証とは自社製品の品質が規定値を満たしているか確認して、納品後も買い手に安心や満足を保証する活動のこと
どうやらひたすら良いものを作るだけではなく、納品後も満足してもらうために動かねばならないらしい。
そもそも品質の定義というのが国内外の規格としてあり、これがJIS、PSE、ISO9000シリーズなどと言われているようだ。
JISは聞いたことがある。
ISOはカメラのイメージが強いが別物だろうか?と思い調べてみるとどうやら同じ意味合いのようで、国際的に基準が決められたカメラの感度が「ISO感度」というらしい。
※International Organization for Standardization(国際標準化機構)
どうやって基準を決めたんだこれ...なんて考え始めたら沼りそうなので調べません。
ちなみにISOは「あいえすおー」または「いそ」とも呼ぶらしく、そうなると「いそ9000」という急に新幹線みたいな呼び名になることへの違和感は感じている。
かなり脱線してしまったけれど、国内外の規格に沿って品質を定め製品を作り、提供後もサポートを行っていくことがQAエンジニアの仕事であることはわかった。
では具体的にシステム開発を行う上でのQAとは何を行っているのだろうか。
調べてみるとざっくり分けると以下のように分類されるらしい。
- 品質保証テストの設計・計画
- テストの実行・検証
- 品質テストの自動化検討
- テスト結果の分析・フィードバック
この中でも特に気になったのはここ
1.テストの設計・計画
具体的には以下のようなことを行うらしい。
・何が必要なテストなのかを考える。
・どのように行うかテストの実施計画を立てる。
・機器や人的リソースの手配、管理を行う。
この感じからすると製品やサービスへの理解がないと何が必要かわからないので、最低限ここは抑えておかないとならなそうな印象です。
計画においても誰が、どこに、何を使って、どれだけ時間をかけるかを把握しなければならないので、テストそのものやメンバーの理解も必要になりますね。
極めつけにQAエンジニアのテスト工程は、製品リリースが間近に迫っていることが多いという...
これは...かなりシビアな職種ですねぇ。
シビアではあるけれど、納期までのカウントダウンに神経をすり減らしながら取り組むよりは、早い段階から介入することでそのリスクを減らせるので、QAエンジニアの価値はここにありといったところでしょうか。
2.テストの実行・検証
QA=テスターと比較されることが多いようで、もしかしたらQAとしての業務イメージとしてはこの「テスト実行・検証」が主戦場なのでは?と思っていた時期が僕にもありました。
違いについて調べているとどうやらテストエンジニア(テスター)の主な守備範囲がここのようです。
仕様どおりに動作すること、バグがないこと、性能面で問題がないことを通して、不具合がない製品/サービスを世に送り出すことを目的とした作業であり、QAはそもそもそういった検証を行う上で何をどのように行うのかを定めるというのが役割としての違いなのでしょう。
QAエンジニアの守備範囲の中にテスターの守備範囲があるってイメージのように思います。
QAエンジニアとは?といった状態から、役割や守備範囲について学ぶことができましたが、QAエンジニアに対しての「気になる」はまだ尽きません。
認識している情報が誤っていることもあると思っているので、引き続きQAエンジニアへの理解を深めていきます。