Customer Stories

守るべき品質のために効率と持続性を高める。Salesforceを活用したアプリケーションのテスト自動化の道のり

QAチーム リード 生井 龍聖 氏
Company
株式会社チームスピリット
https://corp.teamspirit.com/ja-jp/
Industry
情報サービス / BtoB SaaS / 働き方改革
Publish Date
September 17, 2020

新型コロナウイルスの感染拡大をきっかけに、変革を迫られている企業は多い。リモートワークやオンライン会議を導入、人々の働き方にも変化が出てきた。そんななか勤怠や成果を可視化して管理する、デジタルツールの必要性が高まっている。

株式会社チームスピリットは、「個とチームをエンパワーメントし、働き方改革を次のステージへ。」をコンセプトに、勤怠管理や工数管理など社内業務を一元化するクラウドサービス「TeamSpirit」を提供している。

導入企業1,300社を超える「TeamSpirit」のQAチームで、スクラムマスターを務める生井 龍聖さん。テスト自動化におけるチームの課題や、「Autify」導入のプロセス、その成果について話を聞いた。

ー「TeamSpirit」の概要について教えてください。

生井さん:「TeamSpirit」は、勤怠管理や経費精算、工数管理などの従業員が日々利用する業務アプリケーションをひとつにまとめた製品です。出社から退勤までの業務や工数管理を一元管理することで、働き方を可視化する、いわば「働き方改革プラットフォーム」のサービスです。

ーリモートワークが進んでいる中、ますますニーズが高まっているのではないでしょうか?

生井さん:そうですね。これまで勤怠管理と言えば、タイムカードを使って打刻していたと思うのですが、TeamSpiritを使えば、クラウド上で出勤時間、退勤時間を入力して管理できます。

従来の方法では、管理者が月次の締めのタイミングで「〇〇さんは残業が多かった」と認識するところを、TeamSpiritならクラウド上のデータを全員で随時確認できるため、勤怠や工数の管理をプロアクティブに対応できるようになります。

ーそういえば、僕も最初に入社した会社はタイムカードを使って管理していました。

生井さん:自分も以前いたSIerの会社では、工数と勤怠をExcelで管理していましたが、月末に「たくさん働いたんだね、来月は気を付けて」と上司に言われることもありました。もっと早めに状況が伝わればいいのにと感じていたこともありました。まさにTeamSpiritのようなツールがあれば、と感じていたので入社しました。

ー製品に魅かれて入社を決められたんですね。生井さんが率いているTeamSpiritのQAチームでは、どんな業務を行っているのでしょうか?

生井さん:QA(Quality Assurance = 品質管理)としては、テストアナリストやテストマネージャーの役割もあるのですが、私が認定スクラムマスターを取得しているため、スクラム開発しながらチームで品質管理を行っています。

ーQAがスクラムをやるのは、すごくいいですね。開発の初期段階から品質をチェックしていく形になるのでしょうか?

生井さん:そうですね。開発にQAチームが入ると「テストは全部任せる」という感じになってしまいがちですが、QAにスクラムがいると「品質はチーム全体で守っていこう」という雰囲気の中で、それぞれの強みを生かしながら開発を進めることができます。

QAチームが常に抱える3つの課題

ー 今回「Autify」を導入していただいたのですが、以前はどのような課題があったのでしょうか?

生井さん:大きく分けて3つの課題がありました。

まず1つ目は、E2E(End to End)の自動テストを行う際、幅広いスキルセットが必要であること。2つ目は、その幅広いスキルセットを乗り越えた先は、属人化しがちな領域になってしまうということ。3つ目は、そもそもQAエンジニアは、テストするだけが仕事ではないため、専任で自動化テストにリソースを割くことが難しい点にあります。

1つ目の「幅広いスキルセットが必要」というのは、そもそも回帰実行するためには、CI(Continuous Integration = 継続的インテグレーション)のサーバーを立てて、「Jenkins」を使ってジョブ管理をさせる。

その次にクロスブラウザテストを行う場合、「BrowserStack」と連携するのか、あるいはブラウザのドライバをメンテするのかといった議論が出てきます。さらに、自動テストのプログラムを書く必要があり、Javaなのか、JavaScriptなのかという判断も必要になるでしょう。

このように、QAの専門家でコーディングに馴染みがない場合、かなりハードルが高くなってしまいます。

自分の場合は、バックエンドのエンジニアと協力しながら進めました。そうすると、自分とそのバックエンドのエンジニアしか書けないことが課題になってきます。そのうち、性能テストやセキュリティのバージョンアップなど、テスト以外の品質管理業務もたくさん出てくる。すると常に課題を抱えているような状態になってしまいました。

「みんなが使える」が導入の決め手に

ーそういった課題がある中、どのようなきっかけで「Autify」を知っていただいたのでしょうか?

生井さん:Autifyについては、「自動テストのツールとして最近流行っている」みたいな話を以前から耳にしていました。また、去年のジャスト(JaSST’19 Tokyoソフトウェアシンポジウム)で「AIの自動テスト」をテーマにした講演なども聞いて、「AIを使った自動テスト」という文脈で新しさを感じて目に留まったというのが大きいと思います。

ー実際「Autify」を試していただいたんですよね。導入までのプロセスを教えてもらえますか?

生井さん:まず初めに「課題をどう乗り越えるか」ということを考えました。自動テストが特定のメンバーしか触れない構成になっていたので、まずはそこを変えて、フロントエンドのエンジニアなら書けるような自動テストにしようと。

JavaScriptのE2Eフレームワークに乗り換える技術調査を行いました。

調査内容は、例えばインストールの難しさや、エラー調査のしやすさ、クロスブラウザテストを行うとどんな構成になりそうか、今後の機能拡張でどんな使い方ができるかなど。様々なチェック項目を「〇」「×」「△」で評価しました。

元々「フロントエンドのみんなと協力できる自動テストのフレームワークがいい」と話していたんですけれど、「Autifyを使ったら、フロントエンドに限らずバックエンドもできるし、QAもできるし、なんならプロダクトマネージャーに書いてもらうことも可能だね」と高評価になったのが、決め手になったと思います。

ーなるほど。最後は「みんな使えるツール」というところがポイントだったんですね。

生井さん:そうですね。自分たちが抱えている課題に刺さりそうだという見立てが立ったので、Autifyを導入する前提で、「Autifyを使ったらどんなことができそうか?」という議論にシフトしました。今のままではうまくいかないので、やり方をガラッと変えて、チーム全員で自動テストを書こうと考えたのです。

ーAutifyの導入に合わせて、ワークフローなども再設計したのでしょうか?

生井さん:はい。チームの体制とフローも考えました。スクラムというフレームワークは、反復して良い方向に進んでいくことが大切です。既存のプロセスが必ずしも正しいとは限らないですし、手法を変えることも常に意識しています。

ー生井さんがオーナーシップを持って決断できるというのは、まさしくスクラムマスターとして動かれているからこそですね。実際にAutifyを導入して、どのように変化しましたか?

生井さん:「幅広いスキルセットが必要」「属人化しがち」「自動テストだけがQAの仕事ではない」という3つ課題のうちの最初の2つはクリアになると考えています。

実際、Autifyを触ってみて感じたのは、1つのプラットフォームで多くのことができる利便性です。

回帰実行にはスケジュール機能を使って、シナリオ作成もブラウザを操作することで作れるなど、かなり習得しやすい。これまでは「幅広いスキルセットが必要」だったのが、「いったんAutifyを覚えれば大丈夫」になり、「属人化しがち」という課題の解決にも手応えがあります。サーバーのメンテやサポートに重要なのがシナリオを作るところ。Autifyを使うことで、その作業がとてもシンプルになりました。

ー「TeamSpirit」はSalesforceを活用したアプリですが、テスト自動化における固有の課題はあったのでしょうか?

生井さん : E2Eテストのフレームワークを使って、Salesforce上のアプリケーションのテストを行うのは、実は難しいんですよね。例えば「Cypress」を使ってみたところ、Salesforceのドメインと中のドメインが違うため、セキュリティのエラーが出てしまい、全く使えませんでした。

あとは、更新するたびにidが変わって要素が取れなくなってしまう問題に対応するために、CSSセレクタを工夫する必要があります。普段テストをしている人に、「ソースコードでHTMLの構成を見て」とか「こういうCSSセレクタだと要素取りやすいよ」などを都度レクチャーし、かつ属人化をなくすのは大変です。

その点、Autifyでは、idの変更も柔軟に追従してくれますし、直感的に判断できるUIになっている。「ここ工夫しなければ」という頻度がかなり減りました。

守るべき品質があるから、テストのクオリティを上げていく

ー導入後の効果についてはいかがですか?

生井さん:まず導入を始めたタイミングに、体制を組み直したことで劇的に変わったと思います。以前は1人、またはバックエンド入れて2人だったんですけれど、今ではQAチーム全体でできるようになりました。

例えば、自分が全体のテスト設計をしている間に、もう1人がシナリオ作成とテスト設計をする。もう1人が異なる箇所のシナリオ作成を担当するといった具合です。動き始めが1人ではなく3人だとスピードが全然違いますし、網羅的にテストできて、サービス全体の品質を高められます。

また、トライアル導入時と本導入で別のエンジニアが作業しても、きっちり作ることができた。そういう意味では「習得のしやすさ」は期待どおりだと感じています。

Javaで書いていたときは、自分以外の2人のメンバーは自動化の経験がなかったのですが、Autifyを導入してから参画できることになったのは、やはりAutifyによるアドバンテージを実感できるところです。

ー「テスト設計して実装する」を全て1人でしていたところを、分業して効率的に進められるようになったのはいいですね。働き方にも変化が出てきますね。

生井さん:昨今リモートワークが増えてきて、今後ますます働き方が変わってくると思います。物理的な距離や時間に縛られず働くことで、副業という選択肢も出てくるんじゃないかと。

例えばAutifyが使える人が副業で事業に参画し、他のメンバーにも教えることができれば、Autifyの使い方を覚えて教育するよりもずっと効率がいい。個人としてAutifyが使えることがメリットになる、みたいな世界観が出るといいんじゃないかと思います。

TeamSpiritでは、勤怠管理を「働いた時間の長さ」から「働いた内容」や「成果」を管理できるようにすることも必要だと感じているんですよね。働き方が変わることで企業が「人の何を評価するのか?」が興味深いです。サービスとしてもそうした変化に寄り添っていきたいです。

ー生井さんはこれからどんなことを目指しているのかお聞きしてもよろしいでしょうか?

生井さん:Autify以外にもいろんな自動テストのツールがあるので、APIのテストとユニットテストとUIのテスト、それぞれのバランスを取っていくところについては、頑張っていこうと思っています。

また、本来APIテストにお願いしたいけれど、データの構造上厳しいようなテストも「Autifyに任せられるテストもあるかも」と期待しています。「これ使えるかも」みたいな機能がまだまだあるのはすごくいいですね。

ーでは最後に、これからテスト自動化に取り組む方々に何かメッセージをいただけますでしょうか?

生井さん:よくQA界隈だと、「マニュアルテスト」と「自動テスト」みたいな、対立構造があるんですけど、正直自分としては、機能テストの中の話だと思っていて。

機能テスト以外にもいろんなテスト――性能テストや負荷テストやセキュリティ、ユーザビリティなど、守らなくてはならない品質がいっぱいあります。

我々の課題の3つ目でもあるんですが、QAエンジニアがやらなくてはいけないことがものすごくいっぱいあるので、ラクできるところはラクして頼るべきところに踏み込んでいく必要があると思っています。

自動化って「よくわからなくて怖い」と思っている方も多いと思いますが、Autifyはそのハードルを下げてくれるので、使ってラクをして、品質全体を高めることに集中していけたらなとはとても思います。

「Autifyとか使って自分たちのテストのクオリティを上げていこうぜ」っていう思いに共感いただける方がいれば、ぜひTeamSpiritの門を叩いて欲しいです(笑)。

ーありがとうございます。メンバーも募集中とのことですね。

人がやらなくてもいいところをいかに減らして、人がやるべき本質的な部分に集中できるようにしてあげられることがAutifyのミッションです。引き続き、より良いサービスになるよう、改善と開発を続けていきます。