ざっくりとQAエンジニアの業務内容を調べた〜名ばかりQAの業務記録vol.1

背景

 2022年10月、SESから某中古本販売店のIT事業部へ転職しました。当時はようやくSESでの客先常駐から自社開発系の職場に移れると喜んでいました。採用面接によると、これまで外注していた業務アプリを内製化するための開発系エンジニアとして採用される、という話でした。また基本的に自社で完結するため納期も緩い上にMTGも自社の人間となるので、緊張しいなところがある身としては大分楽になると思っていました。

そして約一年半、いつの間にかエンジニアではなく1人QA(という名のテスター)的な立場になってしまいました。

こうなった経緯としては、そもそも配属された部門は安定稼働しているがプロパ社員は開発しない環境であるためでした。開発・実装は協力会社さんに丸投げしてプロパ社員が管理している、という旧来のスタイルです。面接ではそこから脱却して内製化していく、というお話でした。

しかし実態としては、過剰に協力会社さんから人員を契約しているため、脱却どころかパートナーさんが手隙にならないよう仕事をどうにか用意しているような状況です。そのような状況のため自分に回す改修などの開発案件は存在しません。業務はドキュメント整理と簡単な事務作業、あとは無意味なレビューだけです。プロパ社員も協力会社さんの成果物をレビューするのですが、現場が受け入れ検証を実施するので、事業部側ではほとんどやることがありません。そもそも自分が入社する前はやっていなかったことらしく、それでも問題なく回っていたので実質やる価値のないタスクです。

そんなわけで雑用係(実質社内ニート)となってしまったので、せめてこの無駄なレビューに価値をもたせるためにQAエンジニアらしい業務(本職の方には失礼かもしれませんが)を追及して、名ばかりQAとして、次の転職先を見つけるまでの経験値稼ぎをしていきます。

このように書くとネガティブな印象を与えそうですが、いい勉強の機会だとは思っています。転職前はQAエンジニアの存在を知りませんでしたし、ソフトウェア品質という概念もありませんでした。これを機に開発から少し離れた視点でプロダクトに携わる経験を積んでいきたいです。

QAエンジニアの仕事

そもそもQAとは、Quality Assuranceの略で品質保証のことを指します。つまりQAエンジニアはソフトウェアの品質保証を担当する人ということになります。ソフトウェアテストにおいて代表な企業である株式会社SHIFTの企業ブログによると、QAエンジニアを以下のように定義しています。

ソフトウェア製品などに欠陥がなく、仕様どおりに動作するか、ユーザーのニーズを満たしているか、ユーザーが満足感を得られるかなどを確認して担保するエンジニア。

https://service.shiftinc.jp/column/9886/

これだけだとテストエンジニアと同じような気がしますが、テストエンジニアはあくまでテストを実施する技術者を指すようですね。QAエンジニアとなると、どこからどこまでテストをするのかなどのスコープやスケジュール、ケースの作成も担当するようですね。PM・SEの領域と被っているような気がしますが、、、。個人的な解釈としては、実装・開発内容に対してのテストを行うのがテストエンジニアで、ユーザビリティなどの開発よりもユーザ目線でのテストを考えていくのがQAエンジニアなのかと思っています(受け入れ検証とかのイメージ)。
ソフトウェアの品質と言われても具体的にはまだ掴めていないのでピンときませんが(JSCQEを取得したはずですが)、ざっくりと障害を抑止したり、システムのパフォーマンスを向上させたり、CI/CD的な開発パフォーマンスやメンテナンス性の向上を目標とすればQAエンジニアっぽいのではないかと思いました。

やっていくこと

自社にはQAエンジニアなどいないので、自分で手探りで進めていくしかありません。そこで差し当たって目標として、テスト自動化の導入を目標にしていきます。

というのも、テスト周りを効率化しないと何もできないんですよね。20年前のごみコードが大量に残っていたり、本当に納品物なのかと疑いたくなるような変数命名だったりロジックだったり(聞いたこともないSIerの製作物らしい)でリファクタリングを実施したいです。しかし守備範囲がほぼ毎日稼働している業務アプリであるためデグレや障害が発生すると現場が停止してしまいます。そのためテストを充実化して安全性に担保が取れないとリリースできません。従って当面はリファクタリングするために、テスト自動化を目指していきます。

課題

テスト自動化を目標としたのは良いのですが、そこでネックになるのが我が社の環境です。業務アプリの中枢部分は、Visual Stduio 2005のProfessionalと.NET 2.0系という超レガシーな環境で開発されています(約20年前)。Visual Studioにコードテストの機能が搭載されたのが2005のTeam版であり、ProfessionalではVisual Studioでのコードテストは実行できません。

そのため、MSTestのようなコードテストはまともな方法では実行不可能だと思われますが、検証用の本番環境相当なwindows10マシンがあるので、検証用マシンにUIテストの自動化環境を整えることができれば、ワンチャン可能性があるのではないかと考えています。

テスト自動化の先は遠いですね、何ができるのか調査していくだけですね。

参考URL

・株式会社SHIFT, https://service.shiftinc.jp/column/9886/

コメント

タイトルとURLをコピーしました