スポンサーリンク

自動化はテスター撲滅の夢を見るか?JaSSTで語られたテストの未来、品質の未来 #JaSST

Agile、DevOps時代の人材像

では最後の質問です。ひとりずつうかがいたいのですが、Web業界とかアプリ業界は特に、今の時代、アジャイル開発やDevOps、CI/CDがメインストリームになってきました。こんな時代だと、プロセスの中にテストフェーズ作ってしまうとそこがボトルネックになりがちです。

だから、自動化が流行ってきているのかなと思うのですが、自動化というものをかなり経験されてきたパネリストに質問したいのは、「アジャイル、DevOpsがあたりまえの時代に、どういう人材が求められているか?」、さらに「ご自身がどういう人材になりたいのか?」というのを聞かせてください。

藤原:まずは山口さん。「プログラマがだせない価値を出せる人」。こちらについてぜひおしえていただけないでしょうか? あ、結構、時間が、余裕が出てきました。 なので、語っていただいても大丈夫です(笑)。

山口: 語るほどの話はないと思いますが(笑)、みなさんがすでに語られていたと思います。プログラミングのような、ものづくりをするという行為、サービス開発をするという行為において、プログラマが主たるパフォーマンスを出せる領域がありますが、それ以外の領域もそれなりにあると思っていて、その領域で価値を出せる人が必要かなと思っております。

もちろん、プログラマ自身がその範囲を広げるのも、人の育成もひっくるめて考えるとまだまだですよね。多様性というか、領域は山ほどあって、そういう領域で、価値を出せる人っていうのは、今後もずっとパフォーマンスや価値を出せるし、求められる人材になるんじゃないかなと思います。

藤原: 追加で聞きたいんですけれども、インタビューでもあったと思うのですが、プログラミングスキルっているんですかね?

山口: プログラミングがまったくわからないっていうのは、何を作っているかわからなくなってしまうので、流石にちょっと苦しいかなと思っています。詳しく知る必要はないんですけれども、どう作られているのか、どういうプロセスがあるのかは知っておく必要があると思いますし、それで十分だと思っています。そして、それに基づいて「何が必要になんだっけ?」とかをきちんと考えられて、きちんと提供できれば十分だと思っています。

藤原: 先程もちょっとでてきた、開発環境やプロセスですね。たしか木住野さんもおっしゃっていたと思うのですが、そのへんを理解したうえでのQAであったり、自動化であったりというのが肝になるのですね。ありがとうございます。

藤原:つづきまして、大園さん。「誰もやっていないことに果敢にチャレンジする人」。これはもうご自身の経験をふまえてだったと思うんですけれども、たしかインタビューしたときは「失敗ならいくらでも語れます!」という話をされていたのが印象的で、そのなかで今、スクラッチをくりかえしながら、今の位置にいるのでしょうが、このメッセージはどういう意味を持つのでしょうか?

大園:どちらかというと僕のチームは若いチームで、まだできたばっかりで、テスト自動化というのもはじめて二年ぐらいで、ここ1年以内ぐらいでSETチームができあがって、いろんなことをターゲットにしていて、メンバーはソフトウェアエンジニアからロールチェンジして来られた方が中心になっています。

まだ、だれも考えもしなかったことをいきなりポーンとだしてきて、「それ面白いね! 一緒にやろうよ!」と盛り上がっているパターンが、結構社内のいろんなところでおきているんですが、うちのチームが狙っているところがまさにそういうところで、今までエンジニアが「やれるんだけどめんどくさいなぁ」と思っているところを、僕らがうまく拾い上げると言うか、エンジニアが、機能開発に集中できる環境をつくるのが、僕のチームの大事な目標のひとつかなと思ってやっているところもあります。

「それを開発するためにはどうしよう?」というのをみずからキャッチアップしてきて、自らそれを実践して、失敗しても全然大丈夫ですし、うちの上司もふくめ私もふくめ、みんな失敗だらけでやっていますが、チャレンジするっていうことをひとつのテーマにやっているところもあるので、そういうチャレンジを一緒に楽しんでくれる人と僕は一緒に仕事したいなぁと思っています。

藤原: 熱いメッセージですね!

藤原:つづきまして、木住野さんは「技術スキルを持ち、継続的な改善を推進する人」。こちらもご自身の活動に重ねてだと思うんですけれども、ぜひ教えてください。

木住野: 技術スキルがなぜ必要なのかという話をまずしようと思うのですが、「最適なテクノロジーを選んで、最適な自動化、最高の価値を生み出す」ためには、どうしても技術スキルを自分も持っていて、それを理解して、どれが最適かってのを選び取る必要があります。

そのためには、技術スキルが絶対必要で、たとえば、サーバがどう動いているのか? ネットワークがどう繋がっているのか? 実際にデプロイがどう行われているのか? 自分自身が理解していかないと、それをどういった形にするのが最適なのかつきつめることができません

次に、「継続的な改善」ですけれども、これは僕自身の経験からでてきているもので、誰もが最初から正解を選ぶのは難しいと思っていて、かつ、最初に正解がたまたま低確率ででたとしても、それは時間の経過とともに、周りの環境との間で不正解になることもよくあると思うんですよね。だから、継続的にそれを見直して、問題を見つけて、改善を行って。問題を解決へと改善できる人。この2つが自分自身に対してもですし、こういう人と一緒に仕事していきたいなと思っています。

藤原: ありがとうございます。つづきましてが、メルカリ根本さん。越境する人。これを詳しく教えてください

根本: 今回、パネルディスカッションで、僕のマネージャが何度も「テスター撲滅」と言ってましたけれども(笑)、いわゆるE2Eテストを書いていると、僕らの仕事もなくなるかなと思っていて、むしろテスターよりはやくなくなるんじゃないかなと個人的に思っています。

たとえば、今回基調講演にあったAI For Testingだったりとか、そういったものによって、スクリプトを書かなくてもどんどん自動化されていく時代が、すぐ近にあるのかなと思っています。そういった中で、ひとつの専門性を持ちながら、他の領域もキャッチアップして貢献できる人が必要になってくる、求められるのかなと思っています。

先程大園さんが言っていたとおり、メルカリの現場でも、デザイナーさんがデザインだけじゃなくて、フロントエンドのコンポーネントを作ったりとか、SREエンジニアのようなインフラを専門としながら、たとえばパフォーマンスが悪いときに、実際のアプリケーションコードをがしがし改善していくとか、そういった人がより求められる時代になってくるのかなと思っています。

だから自分としては、たぶん技術力だけじゃなくて、自動化を専門にしながら、他の領域に行って、実際に現場に入っていって、貢献していく・・・のをやっていきたいなと思っています。

藤原: ありがとうございます。「自分の領域を超えて」というのは、ちょっと前に福岡でイベントやったときに、松尾さんと一緒にこういう話をしたんですけれども、そのときも「境目を越えられる人」がトピックになって、根本パクったな・・・と僕は思っています(笑)。でも、たしかにおっしゃるとおり、SETもエンジニアとQA、エンジニアとテスターの間だったりするわけで、そういう境目のところに広がっていくのは今後もあると思っていて、全体を通して企画に参加するQAとか大園さんもおっしゃっていましたけど、そういうところがまさに「越境」なのかなと感じました。

藤原:最後は松尾さんですね。「学びを続けられる人」。

松尾: かなり一般的な話になるんですけれど、僕の知人とか、日本人以外の人達を見ていても、やっぱり思うのは、たとえば、自分たちが活躍しているチームで足りないものは何かとか、カスタマーとか、サービスを享受するユーザとか、そういう人たちに対して自分たちはどう動けばいいか考えていて、自分たちがいたらないのであれば、新しいものを学ぶなり取り入れるなりしていく・・・という印象が強いですね。

今生き残っている人たちは、それがモチベーションとしてとても強くて、そのモチベーションを維持し続ける人は、少なくともアジャイルみたいなひとつの風潮がおわったあとでも、生き残る道を模索しつづけられる人になって強いんじゃないかなと思います。それらをまるっとくくって、「学びを続けられる」というふうにしました。

あたらしい環境とか、変わっていくのが常なので、そういうふうにいかに自分たちが貢献したり、それを教授する人たちを、それはそれでいいのかというのを考えながら動ける人はいいなと思います。

藤原: ありがとうございます。ご自身もAppiumのコミッタとしての視点をお持ちだと思うんですけれども、自分もやっていて思うんですけれども、特にモバイル業界、結構技術の進化も速いですし、どんどんツールもでてくるじゃないですか。ご自身もツール提供のベンダーと思うんですけれど、やっぱりどれもどんどん試していくとか、自動化エンジニア、QA、テスター含め、学んでいくべきなんですかね?

松尾: 使ったりするのはいいとは思うんですけど、たとえば、モバイルアプリのファンクショナルな部分で自動化ができているけれども、性能評価のモニタリングはプロダクションに出したあとに頼りっきりで良いのか? そういうところに疑問に思って、ユーザがいる地域でリリースをする前のモニタリングができる環境を作れるHeadspinに今回転職をしたんですね。

ためしてみるというよりは、こういうことをしたほうが、自分たちのサービスをうけるユーザとかが、よりよい体験になると思うのにそれができないのはなぜか? という点に対して、ちゃんと取り組んでいけるように開拓をするとか、Appiumのコミッタとかやっているとすごく重要だなと感じますね。

そういう人たちが新しいものに取り組んだり、今回のAIのような領域にもコラボレーションしていったり、いろんなところでいろんな技術を作りながらそれを統合していって、最終的にたとえば、AndroidやiOSのテスト自動化プラットフォームなどに、自分たちがいなくなったとしてもそこに還元される。だからそれはそれでいい。これによって数年前、自分たちにできなかったことが今では普通になっているとか、それが安いとか、無料とか、もしくは有償だけれどもすぐに使えるとか。

そういう世界がくるといいなというのがモチベーションの源泉ですね。

藤原: ありがとうございます。面白いですね。これでいいのか? と問いかけ、見つけたサービスを選んで転職。しかもスタートアップでアメリカに行く。もうシンデレラストーリーですよね。すごいチャレンジだと思います。

まとめ: 自動化はテスター撲滅の夢を見るか?

藤原:そろそろ時間になってきたので、まとめに入りたいと思いますが、あくまでこれは仮説の話になります。このセッションのテーマでも書かせていただいたんですけれども「自動化はテスター撲滅の夢を見るか」。

たぶん、今までの話を聞いていてうすうすと気づいていたかもしれないんですけれども、この話、テスターだけじゃないんですよね。QAエンジニアもしかり、エンジニアもしかり、自動化エンジニアもしかり。特に私はSET、自動化エンジニアをやっていて、ずっとテストコードを書く仕事ってやりたくないよねっていう話も根本とかとも話します。

Autometorという仕事も海外にはあるみたいなんですけれども、それだけではなんかつまらないというか、モチベーションの源泉たるものをみつけなきゃねということで、どんどんどんどんシフトレフト、より違う方向に越境してこうと思っています。

先程ちょっと紹介させていただいた「テスターの仕事は自動化によってどうなるか?」というアンケートなんですけれども、パネリスト+アンケートに答えてくださった20戦士の合計値を見ると、こういう形になっているんですよね。

92%の人が「全部ではなく部分的に置き換わる」であろうと答えている。これはまあ、みんな同じ意見です。回答した方がテストや自動化、QAに関わる人達なので、その人達の意見としては、結構高い数字だといえますよね。

そして、完全に置き換えると答えたのは大園さんだと思うので、大園さんにはあとでちょっと身の危険を守っていただければと思いますが(笑)、そういう意見もある。私もどちらかというと大園さんの意見に賛成で、完全に置き換えてやろうとおもって自動化を進めているので、この方向性は変わらないだろうと思っています。

そして、圧倒的な事実がここからわかるんですけれども、「テスターの仕事は自動化によって置き換わらない」とおもっている人がひとりもいないんですよね。これが結構面白い事実かなと思っていて、撲滅と言うとちょっといいすぎかもしれないんですけれども、あきらかに仕事の価値が変わってきている部分があるんじゃないかなと思っています。

私のはメルカリでマネージャはじめて2年目ぐらいになるんですけれども、もともとQAエンジニア経験がない中で、QAエンジニア採用でどうやってスキルを見極めようかをいろいろ考えていました。そして、対外的にも内部的にも言っているんですけれども、メルカリにはテスターはいないです。

もちろん、テストを主としている人はいるかもしれないですけれども、「テストするだけ」という意識で働いている人はそもそも採用しないです。なぜならば、誤解を恐れずに言うと、そこに価値を僕は感じてないからです。

さらにいうと、エンジニアリングマネージャとしてメンバーの育成やキャリアプランを考える、支援する仕事もあるんですけど、それを考えたときに、今の時代だとテストだけを極めようという人のキャリアを作るのが難しいなと考えていますし(もちろん極められるならそれはそれで大歓迎なんですけれども)、職能横断的なプロジェクトの現場にQAエンジニアが入っていって、エンジニアと肩を並べてあーだこーだいいながらモノを作り上げていく開発の中では、なかなかテストをやっているだけでは価値が上がらないんですよね。極端にいうと給料があがらないんですよ。

さすがにそういう状況をすすめられないから、採用基準としてもテストだけのひとは雇わないとしていて、もしもそういう人が入ってくるとしても、それ以外のポテンシャルを持っているか? それ以外の領域に価値を広げられるか? ってところを必ず重視して見るようにしています。

もうひとつ、このセッションに関して、「テストの未来、品質の未来」という話もありましたが、これについては自分が最近に感じていることをまとめてみました。

私もマネージャーとしてメンバーとディスカッションしたり、海外のカンファレンス情報を集めたりしておもうところがあります。

たとえばですよ。超高速な環境ができて、モバイルテストでもWebテストでも1分以内で終わることができるようになったらどうでしょう? すごいじゃないですか? でも、実際にそれってもうできるんですよね。松尾さんはクックパットでやられていて(参考:x3 Speed Up Android CI at Cookpad)、根本さんも同じくメルカリでやっていて(参考:Docker × Android エミュレータで、自動テスト(Appium)を並列化・爆速にする環境を作ったお話)、クラウド上の高性能サーバーを利用して、今だと100〜150ケースで1時間半ぐらいかかっているテストが、10〜15分ぐらいで実行できて、どんどんどんどん短くなっている。10〜15分になると、毎コミットごとにE2Eが流せる時代がくるかもしれない。ここにはぜひ投資したいなと思っています。

さらに、AIやMLは今回のJaSSTの主題のひとつでもあると思うんですけれども、たとえば自然なシナリオを自動生成できるようになったらどうなるのでしょう? 一部、OSSで公開されたアプリのエレメントを自動で見つけるプラグインみたいなのもでてきていて(参考:AppiumのAIによる要素セレクタを試してみたら、自動テストの未来を感じた)、できるようになってきているのが現状なんですよね。しかも、数年で実用化されるだろうという予想も立ってきている。

さらにさらに、これらを提供するテストサービスが登場したらどうなるか? これもすごいあるんですよね(参考:「テストエンジニア採用は不要」——日本人初、AIを活用したソフトウェア自動テストツール「Autify」が米国アクセラレータ「Alchemist Accelerator」プログラム卒業を発表)。国内だとまだ少ないかもしれませんが、海外のイベントとか行くと、この会場の三倍ぐらいのところにテストベンダーのブースがたくさん集まっていて、「仕様書を送ってくれれば全部自動化しますよ」と言っています。

もしもこれらが本当に使えるのであれば。

「コスト高になるE2Eを作りすぎない」というテストピラミッドのような常識がひっくりかえるかもしれないし、探索テストやテスト設計手法ですら必要なくなるかもしれない。なぜならば、はやく実行できるから全件網羅すればいいんですよね。全件網羅ですらも、自動で見つけてもらえばいいんですよね。そして、テスト、QAエンジニア、自動化エンジニアが必要なくなるかもしれませんよね。だって、サービス使えばいいんだから。

完全自動で、全ケース網羅して、高速実行する。こういう未来が訪れるかもしれないし、その一歩は踏み出しているように感じていて、このセッションにおいて、そういう事実を語り合いたいなと思っていました。

「かもね」と書いているとおり、あくまで仮説であり、どういう未来が来るかはわかりませんが、先程の0%と言う事実ですよね。結構高い角度で来るかもしれないですよね。

そんな時代の中、我々がどうやって生きていくか? どういうふうにキャリアを築くか? どういう人材を集めるべきか? なるべきか? たぶん、パネリストのみなさんの一言にまとまっていると思います。

価値の移動が起こっている中で、自分の価値をどう生かしていくか? 今の価値が下がっていくならば、上げるためにどうするべきか? もしくは違うところにその価値を高めていくのか?

次に、チャレンジです。その価値がなにもせずに上がるのは「ない」と思います。うちのメンバーにも「プロジェクトに参加して仕事しているだけでスキルがあがるの? とか聞いているんですよね。あがるときもあるけど、そうじゃないときも多いですよね。とくにデスマーチになっていたら全部下がってしまうかもしれない。だからチャレンジを必ずしましょうと。

そして、継続的な改善。これはアジャイルコミュニティでよくいわれる言葉ですけれども、ちょっとずつ継続的な改善は本質なのかなと。急激な改善は起きないと思うんですよね。

さらに根本さんのおっしゃっていた越境。自分の領域をどう超えていくか? これも価値に繋がる部分があります。

やっていることをずっとやっていけば許される時代はたぶん終わっていて、変化が激しい世の中に対して、自分もどう変化していくか? そのために、松尾さんがおっしゃっていたようなな、国内外とわず、コミッターとしてOSSに貢献して学び続ける。これはすごい意志ですよね。

今回パネリストの方々にいろいろお話を聞かせていただいて、その意見をセッションに向けてまとめながら、こういった本質にたどりついたのは、とても面白い体験でした。

簡単で早口でまとめてしまいましたが、以上をまとめとさせていただきました。

(ここで質問をひとついただきました)

質問: リグレッションテストなどのテスト自動化をすすめる活動をいています。現場で改善をすすめるうえで、最先端の情報とか、新しいツールとか手法とか試してみたいと思っています。でも、リソースも限られているので、現場の改善を優先するのか? そういった新しい手法を試すのか? バランスをとるのが難しいと感じているのですが、そこに対してどう気をつけているのか? どうバランスを取っているのか? アドバイスがあればぜひお答えいただきたいです。

藤原:目の前の仕事が忙しいけれども、未来への投資とかの勉強も大切だよね。そのバランスをとるのが難しいけれどみなさんどうされてますか?という質問ですかね。挙手制にしますか? いい話できる方、ぜひ手を上げてください(笑)。

大園: 参考になるかはわからないんですが、私の場合、チャレンジしようという風土をすごく作ってくれていて、コスト度外視で完全に独立部隊のチームを作ってもらいました。新しいことはじめるんだったら失敗していい。コストもかけていい。好きにやっていい。ただ、失敗した場合はどんどんそれを学んで、組織にいずれ返してくださいと。そんなかんじでうちの上司は背中を押してくれましたね。

藤原:それはやっぱり目の前の仕事ありつつの、そういう投資もしつつもなんですかね?

大園: ひとつだけ補足しておくと、QA環境もかなり固まっている状態でした。そこから、新しいことをはじめる状態だったので、環境に助けられた部分もあるかなと思います。

(ここで時間となりました)

藤原:最後にですね、今日、いろいろな意見をくださったパネリストのみなさまには、多大なお時間を頂きました。そして、アンケートに答えてくださった20戦士の方々もたぶんこの中に何人かいらっしゃると思うのですが、ぜひ、大きな拍手をいただければ幸いです。本日はどうもありがとうございました。

タイトルとURLをコピーしました