LoginSignup
49

SET(Software Engineer in Test)エンジニア

Last updated at Posted at 2018-02-18

SETエンジニア(Software Engineer in Test)の現状

昨今、「QAエンジニア」 とは別に 「SETエンジニア」と呼ばれるテスト自動化アーキテクトをメインとした職種の採用が増えてきています。

しかし、まだ知名度何をする職種かがわかりにくくエンジニア採用でも苦戦しますね。

Indeedやスタンバイで 「SETエンジニア」 「テスト自動化エンジニア」 で検索すると求人がヒット、掲載されています。

スクリーンショット 2022-01-09 20.34.08.png
スクリーンショット 2022-01-11 19.50.54.png

まずは、職種に 「SETエンジニア」 とあっても、何をするエンジニア?
説明するところからになります。

SETエンジニア(Software Engineer in Test)

主に何を業務とするエンジニアなのですか?
リグレッションテストの「E2E自動化」や「CIでのビルド自動化」を主に担当します。
またその先にある、「CD(継続的デリバリー)」についても進めていく。
自動テストでの修正コストの比率が高く、コードメンテナンス工数も考えなければいけない。

要は、テスト自動化は、「リグレッションテスト」が一番向いているため。

また、非機能のテスト自動化についても取り組む。SREチームとSLAの見直しや改善、運用時基準を達成しているのか。

現時点で自動化が難しい領域に対しては(メンテナンス対応作業があまりに多い箇所にも含め)

プロダクトの新規機能
基本「マニュアルでのQA」で行います。

また、SETエンジニアの必須スキル としては

SETエンジニアが最低必要とする知識
1.テスト自動化フレームワーク(SeleniumやAppium、Cypress、TestCafeなど)の知識
2.CIツール(CircleCi、Jenkins、Travis CI、Gitlab CIなど)の知識
3.Java、Ruby、Javascriptなどのプログラミング知識
4.既存処理のテスト観点を洗い出しテスト工数の削減計画
5.テストコードの管理(GitやGithub)の知識
6.常に新しいスキルを取得する(QAトレンドやイベントの参加)
7.テストコードレビュースキル(開発スキルと同様)
8.ブランチの管理計画
9.運用工程での修正方法(誰が担当するのか?どういう状態の場合に修正するのか?)
10.クラウドサービスの知識(AWSの基本サービス)
11.セキュリティの知識

その上で 「テスト自動化策定」 を作り、既存システムの自動化箇所、自動化することにより手動テストと比較しコスト増減、リリーススケジュール面で有利になるのか、対応人員は?を纏めることからはじめる。

ROI(投資収益率)Return On Investment であったり、ビジネス指標を元にそもそもテスト自動化するメリットがあるのか。

意味もない自動化の保守をし続けることにもつながりますし、自動化の観点が外れていれば
何のための自動化かわからなくなります。

要はテスト自動化自体が技術的負債となることも(例えば、SETエンジニアが退職してしまいテストコードの理解から始める、画面を操作するためのXpath取得方法が変わっていたも)

テストツール選定

プロダクトにもよるので、メリット・デメリットを考え、合うテストツールを導入する。
また有償・無償もあるので、ROI(投資収益率)やメンテナンス工数も考慮し進める。

GUIテストツール一覧の紹介ページとなります

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f35353136302f66643336643462362d666564342d626432392d376630642d3963373963323864396437312e706e67.png

Selenium IDE

ブラウザのプラグインで記録しながらテストコードを作成できるメリットも。初心者には、使いやすいツールでもあります。

SeleniumBuilder

特に新規ニュースもないので、使っていない。

Selenium RC

最近は使うことがなくなった俗にいうSelenium1.0版

Selenium WebDriver

今はこちらがメインであります。

Sideex

※SeleniumIDEがFirefox55以降使用できなくなるので。とアナウンスしていましたが今は問題無

続いて、自動化環境を整えていきましょう。

まずは、テストコードを 「GitLab」 で管理してみましょう。
ディレクトリの配置とファイルの管理を考える。

自動化構築例
ECサイトの「リグレッションテスト」のテスト自動化環境構築

CI:GitLab CI
E2Eツール:Selenium WebDriver
言語:Java
開発環境:Eclipse:Pleiades All in One
通知:Slack

こちらに テスト自動化環境構築を纏めております。

image.png

このあたりを参考にしてみます。

GitLabでの対応
テストコードの管理
コードのバージョン管理
SETエンジニアがその都度修正
エラー通知設定

エラーの通知は、「Chatwork」 か 「Slack」 通知で、Webhookにて対応

chartwork/slack(チャットツール)
エラー通知の設定(通知用のグループを作成しておく)

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f35353136302f32313239633662622d346436382d396539342d646439342d3336643565303533393538332e706e67.png

Jenkinsの設定方法になります。

SecurityGroupの設定
JenkinsサーバにJenkinsのインストール
GitHub Plugin
GitHub からの push イベントを取得するプラグインです。

必須タスクの設定
テスト実行の設定

Jenkins
また、SETエンジニアにも纏めております。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49