1
/
5

【はたらくを聞く vol.11】SETのベストプラクティスを追求する挑戦

こんにちは!LINE Fukuoka採用担当の佐久間です。
LINE Fukuokaには開発エンジニアと同じ目線でサービスへ貢献するテスト自動化のプロフェッショナルSET(Software Engineer in Test)が在籍しています。多数のサービスをリリースするLINEではプロジェクトによって担当するテストフェーズも必要な技術も大きく異なります。今回はエンジニアの大園にLINEのSET組織や取り組みについて聞きました。

テスト自動化専門チームの立ち上げ

これまでのキャリアを教えてください

学生の頃はWeb系や情報処理とは関係のない、工学系分野の研究室に博士課程まで在籍して、主に科学計算に関しての研究を行っていました。縁があって30歳を手前に地元の福岡に戻ることになり、まだ立ち上げフェーズだったLINE FukuokaのQAに興味をもち入社しました。当時は実務経験がなかったのですが、研究で科学計算を行っていたので、ITやエンジニアリングと繋がる知見はあり比較的スムーズにキャッチアップできたかと思っています。

テスト自動化チーム立ち上げの背景は?

業務をする中で「この部分が自動化できたら効率いいな」と思うことがあったんです。当時はブラックボックステストが中心。自動化は他のブランチでも行っておらず前例が無かったのですが、まずはやってみようと手を挙げてテスト自動化に着手し始めました。はじめは1人でテスト環境構築やスクリプトコードを書いたりと、目の前のプロジェクトに取り組んでいました。ちょうどエンジニアキャリアのメンバーが入社したこともあり、次第にチームとしての体制を整えていき、現在は6名程の組織になっています。


プロジェクトによってフェーズも技術も異なる

LINEのテスト自動化/SETの開発体制は?

SET(Software Engineer in Test)というロールはまだ比較的新しい呼称ですが、開発エンジニアとQA(品質保証)のブリッジ役としてサービス開発をテスト自動化の観点から支援するポジションです。
LINEグループ全体では各拠点それぞれにテスト自動化チームがありますが、サービスが異なるので担当するテストフェーズや技術も多様です。実際に端末を動かして自動テストをしたほうがいいプロジェクトもあれば、QAに依頼する前の開発段階で自動テストを実施したほうがいい場合もあります。テストフェーズによって求められる技術もかなり異なってくるので、各サービス開発に最も適したテスト環境や手法を導入していく必要性があります。開発エンジニアと一緒に、エンジニアが開発をしやすい環境を作ることが私たちのミッションです。

業務内容を教えてください

LINEの各プロダクト/サービスのアーキテクチャに適した自動テストの設計、環境構築並びに運用などテストフェーズに関わる開発を全て担当しています。
LINE FukuokaにはQA組織もありますが、QAエンジニアはリリースフェーズのシステムテストをメインに担当。SETは、E2Eテストだけではなくユニットテストやインテグレーションテストなど幅広く行っています。
使用する技術は主にJava、Kotlin、JavaScript、JUnit、Selenium、Appiumなどを使用しています。

現在取り組んでいることを教えてください

現在はE2Eテストを行うことが多いですが、自動テストはまだまだ発展途上の分野です。スタンダードな手法が確立されていない部分も多く、色々なケースを試しながら検証しています。サービス自体は問題がなくても、端末の故障や連携サービス側の不具合で検証失敗という外的要因で難航することもしばしばあります。
また、サービスの機能やボタンやラベルの変更などでも、すぐテストが壊れてしまうのでメンテナンスコストがかかります。1人のエンジニアがテストスクリプトを書けるのは2サービスくらいが限界。サービスの数が多い分エンジニアを増やすというのも難しいので、その状況を解決するためにコードを書かなくてもE2Eテストをつくれるテスト自動化プラットフォームを開発しているところです。この仕組みができればいくつかのサービスはプランナーやテストエンジニアが自分たちでテストを組んで実装できるようになります。サードパーティでも同様の仕組みはあるのですが、社内環境と合わないことが多いため内製で開発しています。LINEは1つのプラットフォームの上に複数のサービスがのっていて、サービスごとに仕様も開発言語も異なる特殊な構造のため、同じようにテストをしようと思ってもなかなか難しいことが多いです。内製の仕組みを使うことで、社内の要望も汲み取りながら構築できるというメリットがあります。


SETのプロフェッショナルとして開発に携わる

どんなエンジニアと一緒に働きたいですか?

新しい領域へチャレンジするマインドを持っている方です。SETの領域は発展途上でベストプラクティスが確立されていない分、自分で見つけてアイデアを具現化していくことが必要です。新しい技術を導入する際、リスクばかりに目を向けてしまうのではなく、様々な要素を踏まえた上で“まずはやってみる”のが私たちのスタンスです。全く別の分野からヒントを得て、既存の手法とマージしてみるといいパフォーマンスが出たというケースも数多く見てきました。固定概念を持たずにチャレンジすることで新しいソリューションが見えるのだと思います。
また、よく聞かれるのですが、私たちはテストコードを書くだけが仕事ではないので、Seleniumなどの自動テストの経験がなくても問題ないです。どちらかというと自分でサービスやアプリを開発した経験があって、テスト領域にフォーカスをして深掘ることに関心があったり、SETにジョブチェンジしてエンジニアの開発をサポートするという立ち位置で、やりがいや面白みを感じられるタイプの人と一緒に働きたいと思います。

今後取り組みたいチャレンジを教えてください。

現在行っている自動テストは期待通りに動くことを保証する、いわゆる「最後の砦」的な役割を担うことが多いです。それももちろん大事ですが、その一歩先に進んで、開発エンジニアがもっと気軽にコードを修正・追加できるような環境を自動テストで手助けしたいと思っています。
そのためにはテストの実行速度を今より何倍も早くしなければならず、より安定的なものを提供しないといけない。大変ですが、とてもやりがいのあるテーマだと感じています。
最近は、LINE Creators Marketの開発チームにSETが入り、リリースサイクルを速くするために複数のテストフェーズを自動化するテスト環境の構築やテストケースの作成などを行っています。開発エンジニアは自分のコードをGitHubにアップするだけで、自動的にテストが開始され、結果もすぐ返ってくるというような仕組みを構築しています。このような環境が整えば、エンジニアは今以上に速いサイクルで開発を進めることが可能になります。
私たちは1人ひとりがSETのプロフェッショナルとして、開発エンジニアと同じ目線でテストフェーズまで考慮したアーキテクチャの提案や、サービスを安定させるための手法について一緒に議論したりもします。そのほうが、最終的にエンジニアの負担も減り、アプリの品質も上がることに繋がると考えています。

いかがでしたか?
SETをはじめ、LINE Fukuokaでは、開発室内の様々なポジションを募集しています。
少しでもご興味をお持ちいただけましたら、募集ページより詳細をご確認ください。

SET(テスト自動化)
LINEサービスのSoftware Engineer in Test
LINE Fukuokaは、LINEの国内第二拠点として、大規模ユーザーベースをもとに様々なプロジェクト・サービス開発を行っています。コミュニケーションアプリ 「LINE」に留まらず、Fintechを始めとして多様な領域にサービスを展開しており、チャレンジできるフィールドは日々拡大し続けています。 福岡開発室は100名ほどの規模で、アプリ開発からデータサイエンス、インフラ、SREなど、様々な領域の開発に携わっており、LINE株式会社とほぼ同等の機能が備わっています。また、所属するエンジニアについては、Web系のエンジニアだけでなく多様な業界出身者が集まっています。 LINEプラットフォーム上で動くサービスの開発をメインとして、今後も、新たなサービス機能の開発や、新規組織の立ち上げなど、開発室として挑戦したいことは数多くあります。世界のユーザーに驚きを届けるサービスを作り続けるため、様々な経験や知見を持ったエンジニア経験者を募集します。
LINEヤフーコミュニケーションズ株式会社
LINEヤフーコミュニケーションズ株式会社からお誘い
この話題に共感したら、メンバーと話してみませんか?
LINEヤフーコミュニケーションズ株式会社では一緒に働く仲間を募集しています
8 いいね!
8 いいね!

同じタグの記事

今週のランキング

北島 夏帆さんにいいねを伝えよう
北島 夏帆さんや会社があなたに興味を持つかも