Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
40
Help us understand the problem. What are the problem?
@jun2014

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

最近、「QAエンジニア」とは別に「SETエンジニア」と呼ばれる職種の採用が多くなってきている。しかし、まだ知名度何をするのかがわかりにくく採用でも苦戦しますね。

職種に「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だったり、自動化メリットを整理することが大事である。

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

テストツール選定

プロダクトにもよるので、メリット・デメリットを考え、合うテストツールを導入する。
また有償・無償もあるので、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エンジニア note

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
40
Help us understand the problem. What are the problem?