Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

【満員御礼】AQA POP TALK #2 〜マニュアルテスト VS 自動テストの巻〜 @博多 を開催しました

f:id:daipresents2:20181001132328j:plain

こんにちは。メルカリで自動化&品質保証グループ(Automation & QA Group:通称AQA)のエンジニアリングマネージャをぶりぶりしている@daipresentsです。すっかり秋っぽくなってきましたね。

先週末に、第2回AQA POP TALKを博多で開催しました。無事イベントが終わってホッとしているところですが、テストや自動化に興味をお持ちの方が30名も集まったのにはびっくり。博多のコミュニティ力がよくわかる結果となりました。この記事では、イベントレポートとして、各発表についてまとめます。

メルカリAQAの品質とそれを支える組織づくり

↑は、社内だけでなく採用時の面談や面接で使っている部署紹介の資料ですが、今回の勉強会ではもうちょっと 現場の泥臭い話 をしたかったので、そういった現場の話を中心にまとめて、@arminmin にお願いして発表していただきました(資料はのちほど公開されるかも)。

メルカリのQAエンジニアは、クロスファンクショナルなチームに配属されるので、要件定義からリリースまで、 全部のプロセスに参加するのが仕事です 。これによって、ファーストユーザとしての視点を強く持ってプロジェクトに貢献します。

ちょっと前のオフサイトでも話したのですが、テスト設計とテスト実行をわけて役割分担をする方法も考えましたが、プロセスが分断されるため、効率的かもしれないけど非効果的な部分があると考えています。

よって現在は、QAエンジニアとしてプロセス全体に貢献できる人材を増やそうとしています。

メルカリのテスト自動化戦略

サンドの飯より自動化を選ぶ男 @tadashi0713 によるセッション。僕がメルカリに入社したときは、彼と二人で自動化をすすめていました。あれからまだ1年半ぐらいしかたっていませんが、彼はメルカリの自動化を誰よりも現場で進めてきた人材です。

全員が自動テストを書くのではなく、全員が自動テストに関わっていくことが大切

この言葉は、自動化当初、なかなか自動化が進まないときに思った テスト自動化の本質 だと思っています。

将来的にAQAは、自動化チームとQAエンジニアをごっちゃにしたチーム構成にしてプロジェクトにアサインしようとしています(このとりくみは一部もうはじまっています)。

特別トークセッション: テストの未来、品質の未来

ちょっと前にいろいろお話する機会があり、知り合うことができた KazuCocoa さんにゲストに来ていただき、僕自信も興味のあるテーマである「テストや品質の未来」について話すセッションをしました。

未来の話とかになると「他人ごと」のように聞こえてしまいますが、AQAを含むQAエンジニア全体が迎えるであろう未来について、KazuCocoaさんのような先見の明をお持ちの方と話してみたかったので、ひとつ夢が叶いました。

まずは、 AIの登場によってテストはどうなっていくのか? というテーマについて。

MLをつかったテストサービスであるmablや、AIを活用したテストサービスであり、『テストから見えてくるグーグルのソフトウェア開発』の著者の一人であるジェーソン・アーボン氏が創業した test.aiなど、実際に使ってみた感想を交えながら、解説をいただきました。

次に、 探索的テストを機械でやるのは難しいのでは? というテーマについて。

よくいわれる「人間にしかできないことを人間がやればいい論」ですが、人間にしかやれなそうな探索的テストも、前述のジェーソン・アーボン氏の発信する記事を読むと考え方が変わってきます。

例えば、自動テストにおいてとても苦痛な作業である画面要素の特定については、If Appium had a Brain – jason arbon – Mediumにもあるように、いずれ自動テストツールが脳みそを手に入れ、自ら見つけてくれるようになるかもしれません。

f:id:daipresents2:20181001135438p:plain:w500

さらに、 同じく同氏によるNerd-fun video of AI-powered 'exploratory testing' running on Amazon's appでは、AIが試行錯誤しながら(に見える)、Amazonのアプリを探索的に見て回っているのがわかります。

f:id:daipresents2:20181001135613p:plain:w500

最後に、 Agile, DevOps,この時代に求められる人材とは? 何か?

アジャイルやDevOpsのような、継続的・持続的な開発サイクルの時代には、Continuous Testing in DevOps...でも紹介されているように、すべてのサイクルでテストが必要になり、テストフェーズという存在自体がなくなってしまいます。そんな時代にQAエンジニアはどうすればいいのか?

KazuCocoaさんがおっしゃっていた言葉はとても印象的でした(記憶を頼りに要約)。

エンジニアとQAエンジニアの間に位置するような職務であるSET(Software Engineer in Test)が誕生したように、開発サイクル内の様々なプロセスの境界を渡れる人は強いはず

AQAでは明確なキャリアパスを定義していないのですが、そのかわりに、QAエンジニアとしてのスキルをベースに、様々なプラスとなるスキルを身につけることを推奨しています。

たとえば、あるメンバーはプロセス全体の改善に取り組んでいたり、あるメンバーはテスト自動化(プログラミングを含む)までを仕事としていたり、あるメンバーは採用活動やイベントのサポートなどAQAの広報的に動いてくれています。

ベースとなるスキルの上に、こういったプラスアルファを積み上げていけば、今の時代の開発スピードにもついてこれるQAエンジニアが登場するのではないかという期待があります。

おわりに

第2回目のイベントを福岡で開催できたのはとてもよかったです。参加者層も東京都は一味違い、はじめて勉強会に参加された方や、女性の比率も多かったように感じました。

立ち上がり中の福岡開発拠点も盛り上がってくるでしょうから、また福岡で面白いイベントができたらなと思っています。そのときにお会いできることを楽しみにしています!

宣伝: テストや自動化について気軽に議論できる場所をと思い、Facebookグループ Agile Testing, Automation and QAの現場を作ってみました。まだまだメルカリからの発信ばかりになってしまっていますが、いずれは色んな人がいろんなトピックを持ち込んで話せるような場所になるといいなと思っております。