LINEのQA組織について

中川勝樹氏(以下、中川):それでは「LINEの開発品質を支えるエンジニアの役割と働き方」のセッションをスタートしたいと思います。よろしくお願いします。

本日ですが、こちらにあるアジェンダに則って進めたいと思いますが、最初にQAエンジニアとSETエンジニアについて話をしてから、そのあと実際にそのポジションで働いている、QAエンジニアとSETエンジニアを交えてパネルディスカッションする流れで進めたいと思います。

それではLINEのQA組織についてのお話を、最初に鈴木さんにしていただきたいと思います。よろしくお願いします。

鈴木里惇氏(以下、鈴木):はい。それではここからLINE QA組織について紹介いたします。よろしくお願いします。まず簡単ですが、自己紹介をします。現在開発3センターのQA室でQAチームのマネージャーを担当しています、鈴木と申します。QA1チームでは主にLINEのファミリーサービスのQAを担当しています。

さっそくLINEのQA組織についての説明をさせていただきたいと思います。まずLINEのQA組織が支えるLINEのサービス群について紹介させていただきます。我々のQA1チームでファミリーサービスを担当しているとお話をしましたが、LINEではその他にもさまざまな事業領域で幅広いサービスを取り扱っています。

ファミリーサービスの他には、ここに記載があるように、LINEのプラットフォームをはじめ、AIテクノロジーブランドの「LINE CLOVA」、FinTechサービスであるLINE PayやLINE証券などの事業があります。そして、それらのサービスのほとんどが、LINE内製のQA組織によってテストが行われています。事業領域が非常に幅広く、さまざまなドメインの異なるサービスのテストに関われるということも、LINEのQA組織の魅力だと自分は考えています。

グローバルのQA組織

次にグローバルのQA組織についてお話しします。LINEのQA組織は、海外にも複数の拠点が存在しています。日本では東京と福岡に拠点があり、海外では韓国、台湾、タイ、ベトナム、中国の大連など、主要開発拠点にそれぞれQA組織が存在しています。事業の海外進出やサービスのローカライズをする際には、各拠点のQA組織と一緒に協業できる機会もあります。

また現在ではなかなか開催が難しいのですが、以前は拠点を超えて、QAという同じ職能での技術交流やコミュニケーションが活発に行われており、このような活動は幅広い国と地域でサービスを提供しているLINEだからこそもてる機会だと私は考えていますし、とても刺激的な体験ができる環境だと思います。

次に、日本にフォーカスした話をしていきます。日本の開発拠点は主に東京と福岡と京都にあるのですが、その中の東京と福岡にQA拠点が存在しています。このあとも、各組織のメンバーの登壇がありますが、LINEの品質を守るQA組織の職種も、大きくQAエンジニアとSETに分類されています。

QAエンジニアとSETのそれぞれの簡単な役割

最後になりますが、QAエンジニアとSETのそれぞれの簡単な役割について紹介します。QAエンジニアの主な担当業務は、プロジェクトのテストマネジメント全般の業務です。プロジェクトの品質責任者として、プロジェクトの品質を統括する立場にあり、品質を向上するためのすべての活動に責任をもつことができます。

またQAの職務でも、主にプロダクトの品質向上を目指すQuality ControlのQC領域と、テストの活動を超えて、プロジェクトの品質向上に向けたQuality AssuranceのQA領域。そのどちらも、品質の向上のための活動であり、品質向上を実現するには、制限なく裁量をもって取り組めるので、そこがLINE QAの魅力だと、私は考えています。

次にSETについてです。SETは、Software Engineer in Testの略称で、LINEサービスにおける各プロダクトに適した自動テストの計画から、開発および運用を担当している組織です。

ここに記載があるような、ユニットテストからE2Eテストの自動化を始め、Developer Experienceの向上に寄与するための活動だったり、テスト自動化のための環境構築やテスト基盤の開発運用まで、こちらもプロジェクトによってテスト自動化で解決できる課題は異なるので、非常に裁量をもって取り組むことができる役割です。このSETの役割については、このあとのLINE Fukuokaの大園からもお話しします。

簡単ではありましたが、QA組織とLINEのサービスの紹介については以上となります。どうもありがとうございました。このあともトークセッションでQAとSETの具体的な仕事内容の話が聞けると思うので、どうぞお楽しみください。

LINE FukuokaにおけるSETの組織

それでは続いてSET組織の紹介について、LINE Fukuokaの大園からお話をいただきます。それでは大園さんよろしくお願いします。

大園博昭氏(以下、大園):ありがとうございます。それではここから、LINE Fukuokaのテスト自動化チームマネージャーの大園から、SETと自動テストエンジニアの役割に関してお話ししたいと思います。今回は、先ほど鈴木からも話がありましたとおり、LINEグループの中にはQA組織とは別に、自動テストや各種デベロッパーテスティングに対する特殊なロール、専門ロールをいくつか用意しています。

その中でLINE Fukuokaでは、テスト自動化、つまりE2Eテストの自動テストをメインにしているロールと、先ほどあったSETというロールの2つがあります。私のチームでは、この2つのロールをチーム内でもっています。まず、ちょっと私のチームから紹介しようと思うのですが、テスト自動化チームを担当していまして、メンバーは私を含め現在6名います。

主にE2Eテスト、つまりWebブラウザであるとかiOSとかAndroidとかのアプリケーションを自動で動かして、マニュアルテストの代わりに、これをテストさせることをメインにやるロールがあります。使っている技術領域などは、右側に書いてあるので、興味があったら見てもらえるとうれしいです。

これにかかわらず、例えばその自動テストの実行を運用するための基盤作りであったり、必要なライブラリを作ったり、そういったものは自分たちで内製で作っていることも多々あります。これは、主に自動テストエンジニアの役割の1つとなっています。

先ほどから少しお話が出ているSETですが、Software Engineer in Testの略称です。弊社の中、もしくは私のチームの中では、テスト自動化エンジニアというのはアプリケーションの品質を向上させたりキープしたり監視したり、アプリケーションの品質に主に着眼しているロールになります。

一方SETというのは、ここにはDXと書いてありますが、これはDeveloper Experienceというものの略で、つまり開発者体験の向上。開発者が働きやすい環境をエンジニアとしてサポートしていくというのが、1つの大きな役割になっています。

こちらのSETの具体的な業務内容などに関しては、このあとのパネルディスカッションで私のチームのSETメンバーもお話しますし、最近行われたLINEの技術カンファレンス「LINE DEVELOPER DAY 2020」の中で、私もセッションをもって具体的なSETのロールもしくは業務内容などをお話していますので、もし興味があったら、こちらを見てもらうか、もしくはこのあと案内があると思いますが、カジュアル面談などで詳しく聞いてもらえれば、すごくわかりやすくなるのかなと思っています。

では簡単ですが、以上で終わりたいと思います。ありがとうございました。

LINE NEWSには4つのスクラムチームがある

中川:ありがとうございます。ではちょっとまた私のほうで受け取ります。さっそくですけど、ここからパネルディスカッションを始めていきたいと思います。まずは今日話すパネリストに自己紹介してもらいたいと思いますので、よろしくお願いします。最初は池之上さんからですね、お願いします。

池之上あかり氏(以下、池之上):はい。池之上と申します。LINE NEWSを担当しています。前職は、もともと開発者としてキャリアをスタートしていまして、サーバーサイドエンジニアをやっていました。そのあと、ちょっと開発中に怖い目にあった経験があって、そこからテストに興味をもってテストの自動化を始め、自動テストだけではなかなか品質や、テストというものに強くなれなかったので、もう少し詳しく知りたいなということで、QAという職を経験しました。

そのあと、品質の中でもプロジェクトマネジメントの重要性に気づきまして。ここに書いてあるPMOは「プロジェクトマネジメントオフィス」ではなくて「プロジェクトマネジメントオフィサー」と私は呼んでいまして、プロジェクトマネジメントオフィサーの仕事をしていました。そのあとLINEに来て、QAをやっている次第です。

私がいるのは、LINE NEWSというプロジェクトになります。LINE NEWSは4つのスクラムチームがあり、こちらは国内で運用されているチームです。1つはウォーターフォールモデルで開発しているベトナムのチームがあり、計5チームで開発している大きな組織になります。各チームにQAが数名在籍している状態ですが、それを統括する役割として、私がQA Leadとして仕事しています。

チームに入っているメンバーが、主にテストやQAに関するドメインの業務を行っているんですが、その上で、私はプロダクト全体の品質を見ていて、全体的な視点をもって品質を見ながら統括していまして、プロダクトプロセスを整理したりとか、あるいはプロダクトの中の品質の課題を分析したり定義したりと、リスクを洗い出したりしています。

それに対して、その品質課題をどうやって解決していくかをQAだけではなく、開発メンバーや企画だったり、幅広いステークホルダーを巻き込んで課題の解決を行う役割になります。本日はよろしくお願いします。

中川:ありがとうございます。

モチベーションは「Developer Experienceの向上」

次は金子さんですね。お願いします。

金子茉以氏(以下、金子):よろしくお願いします。金子茉以と申します。所属はLINE Fukuokaにおりまして、出身は福岡県になります。大学卒業後に、関東にあるメーカー系のSIerでシステムエンジニアとして働いていました。その後、地元に帰りたいという気持ちが強くなって転職活動をして、現在LINE Fukuokaに入社したという流れになっています。そのため、私はUターン組になります。

現在担当しているのは、LINE Creators Marketという、一般ユーザーがLINEスタンプ、着せかえ、絵文字などを作って販売できるサービスを担当しています。開発のメンバー構成ですが、PMOが1名、サーバーサイドエンジニアが4名、フロントエンドエンジニアが2名、そしてSETが1名ということで、このSETの部分を私が担当しています。

モチベーションは「Developer Experienceの向上!!」ということで、開発者が開発しやすい仕組み作りとか、そういうことができるようにサポートするのが私の役割なので、そこをモチベーションに日々働いています。

興味があることとしては、ビジュアルリグレッションテストがありまして、日々E2Eテストをメインでやっていますが、E2Eテストだけでは不便だったりやりにくいところがあるので、新しくビジュアルリグレッションテストという仕組みを取り入れて、別のもっとやりやすいテストを検討したりしています。

あとは前職から、SQLとかデータベースには興味はあったんですけど、今の役割では触れる機会は少ないながら、時々触れる機会があるので、そういうときはテンション高く働いています。

こちらは私の1日の流れになります。まず、朝はだいたい10時ぐらいから勤務を開始することが多いです。そして、夜の間に自動テストが実行されているので、その結果を確認するということから朝が始まります。その結果を見て、サービス側の問題であればQAチームとか開発メンバーに連絡をしたり、そして自動テストの問題であれば、私自身が修正したりします。

そして、午前中にもう1つ日課としてやっていることは、英語のレッスンです。開発メンバーの半分は外国籍メンバーなので、開発メンバー内のやりとりは基本英語です。そのため、英語のレッスンを受けているんですけど、その英語のレッスンは、会社がサポートしてくれています。

毎日オンラインで英会話のレッスンをしたり、社内に英語の専門の先生がいるので、その先生と週1でプライベートレッスンをしています。ただ、この英語のレッスンは強制ではなくて、やりたい人がやれる仕組みになっています。そのため「TOEICで何点以上取らなきゃいけない」とか、そういうことも全然ありません。

その後ランチタイムがあって、午後は開発メンバーとのデイリーミーティングからスタートします。ちょっと表示上、1時間ぐらいあるように見えてしまうんですけど、実際は15分程度です。

ここで、進捗報告と何か問題があれば、共有したりします。それから、午後はミーティングが入ることが多いので、ミーティングに参加したあとは、午前中の作業の続きをしていきます。だいたい、19時前後には退勤することが多いです。自分の裁量で仕事を進められるので、遅くまで働くということは少ないです。

逆に何か朝に用事があれば、午後くらいから働き始めてちょっと遅くまでやるということができるので、自分の裁量でフレキシブルに働くことができています。以上になります。

中川:ありがとうございます。

水曜日にスプリント計画、火曜日にスプリントレビュー

次は鳥越さんですね。お願いします。

鳥越健太氏(以下、鳥越):はい、よろしくお願いします。QA Engineering2パートに所属しています、鳥越と申します。私も、前職はシステムエンジニアをやっておりまして、主にWebアプリ開発を中心に設計から運用まで全般的に携わっていました。私も関東で7年ほど勤務していたんですが、そのころから品質管理に興味をもったのと、金子さんと同じく福岡出身であったこともあって、LINE Fukuokaに転職することになりました。

現在ですが、スタンプ管理画面の開発に品質管理の役割として参加しています。これは余談ですが、最近の趣味は映画鑑賞で、プロジェクトメンバーとも趣味の話で盛り上がったりしています。

このプロジェクトでは、スクラムといった開発手法に則って進行しています。なので、1日というよりは1週間単位の流れの説明になります。まず、記載の内容をザックリと説明しますと、水曜から始まって、翌週の火曜までを1単位としたサイクルで、開発が進んでいます。

まず、水曜日にスプリント計画といって、今週の目標を決めてタスクに落とし込む作業を行います。タスクが決まり次第、それに対するテスト計画を行って、でき次第プロジェクトメンバーにレビューを行って合意を得ます。計画が固まり次第、テストデータの作成だったりテストの準備を行って、開発が完了したものから順次テストを行う、といった流れで進んでいきます。

最後の火曜日ですが、スプリントレビューというものがありまして、運用者を交えて1週間の成果物のレビューを行っています。そこでフィードバックだったり改善内容だったりといったものをもらって進んでいく、といったところですね。最後の振り返りですが、ここはスプリントの進め方にフォーカスした内容で振り返って、issueからの改善を図るといった内容で、1週間が進んでいきます。

注釈でちょっと記載していますが、開発内容にもよるんですが、テスト準備完了からテスト実施まで、開発の終了タイミングがいつも合うわけではなく、空き時間が発生することがけっこうあります。この時間を使って、リリース前のソースコードレビューだったりそこで見つけた簡単なバグだったりとか、修正を開発の方と一緒に行って、私の開発の前の経験を活かした品質の改善活動に挑戦してみたり、といったことをこの時間でやっています。

あとは、SETの方の協力のもと、E2Eテストの導入もこの時間を使って進めたりしているところです。といった感じで簡単ですが、紹介は以上となります。

中川:ありがとうございます。では3人に自己紹介をしてもらいましたので、ここからは具体的な話を聞いていきたいと思います。

(次回につづく)