スポンサーリンク

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

テスト自動化のための理想の体制とロール

藤原:後半は本題「自動化はテスター撲滅の夢を見るか」についてになります。実際にテスト自動化の課題を経験されて、みなさん今どう思いますか? テスト自動化のための理想の体制やロールがあれば教えてくださいという質問をさせていただきました。

回答者のほとんどがアプリとかウェブの会社なので、(一部取り入れているもふくめ)基本的にアジャイル開発で職能横断的チーム(小さなクロスファンクショナルなチーム)があたりまえのようです。よって、今回はQAエンジニアとかテスターといったロール(役割)について聞いてみました。

まずはこの会場のみなさんにも伺いたいのですが、テスターを主としてやられているかたってどれぐらいいらっしゃいますか? はずかしがらずにぜひ(笑)

(5分の1ぐらいの手が上がる)

結構いらっしゃいますね。QAエンジニアと名乗っている方。

(4分の1ぐらい)

エンジニアの方。

(4分の1ぐらい)

それ以外の方。プロマネとかいろいろありますよね。

(5分の1ぐらい)

ありがとうございます。結構ばらばらに散っている感じですね。

テスト自動化チームは必要なのか?

藤原:まずははじめの意見なのですが、「自動化チームは必要か?」という質問で、こういうふうにわかれました。その理由をぜひ聞いていきたいんですけれども、まずは根本さん。自動化チームに現在所属する上で、どうしてこう思うのかとを教えていただけますか。

根本:自分がそのチームにいるってのもあります。そして、それぞれのチームの中で、自動テストを書く人が増えるのは一番いいとはおもいます。でも、現場に行くと、今のメルカリだと技術の変化をすごく感じます。たとえでいうと、マイクロサービス化だったり。モバイルからフロントエンドにおいてマイクロサービス化されているところなんですね。そういった中で、今までモノリシックなWebのアプリケーションであれば、UTやUIテストを現場で書けるとは思うのですが、マイクロサービスなどになることで技術的にキャッチアップが難しくなってくると感じています。

このように技術が発達していく中で、それをキャッチアップしながら、いかに良いテストを書いていくのか? という人やチームへの投資は必要なのかなと思っています。

藤原:ありがとうございます。逆にきしのさん、根本さんの存在を真っ向から否定していると思うんですけれども(笑)、その理由をぜひ教えていただけますか。

木住野:否定するわけではないんですけれども(笑)、自動化エンジニアを「自動テストの運用とCI/CDまわりの自動化をすすめるエンジニア」としてお話しますが、そういった自動化は、開発チームが自立して行うのが理想だろうと考えています。なぜなら、サービスと開発プロセスを理解している方のほうが、より適切な自動化を、より迅速にできるからで、おそらくみなさん同意してくださるとおもいます。

たとえば、レビュープロセスにボトルネックがあるとすれば、そこに自動レビューツールを入れようとか、こういう判断は開発プロセスをしっかり熟知していて、開発に携わっている人のほうが迅速に考えられるからです。

ただし、これは開発チームが自動化を実施するスキルをもちあわせていて、かつ、それを実行できること。根本さんもおっしゃっていましたけど、技術的キャッチアップをするところにも、しっかりとリソースを投下できるのが大前提として必要になってくるんですけれども、そういった状況になるなら「自動化チームがいない」という世界が一番理想かなと私は感じています。

藤原:ありがとうございます。松尾さんにも質問したいんですけれども「自動化チームはケースによっては必要ない」とおっしゃっていましたね。どういうケースだといらなくて、どういうケースだと有効的に動くとお考えですかね?

松尾:あるサービスを開発するチームが自動化を行っていて、そこにその情報をキャッチアップする人達が入ってきて、そういう人たちがいろんなところにいて、横断的なコミュニティのようにお互いに情報交換をしながら新しい情報をキャッチアップする。そういうつながりができるのであれば、「チーム」という一つの独立したある部署が存在する必要はないと思います。僕はそういう形になるのがいいなと思って過去活動していました。

でも、どこから導入していこうか? というようにそこに至る前の段階だと、いわゆる開発基盤チームのような横断的部署や役割も必要だと思います。導入をする一番はじめの段階は、いろんなところに関わりながら、だんだん浸透させていくという活動も必要になります。

藤原:中に入り込んでやっていけばそういうチームがなくてもいいし、必要としても最低限、情報交換ができればいいんじゃないかということですね。

QAエンジニアは必要なのか?

藤原:次の質問なんですけれども、「QAエンジニアは必要か?」について質問をさせていただきました。これは未来の話です。自動化がすすんでいったらどうなるかを想像してみてください。ここでまさに会場の4分の1ぐらいのQAエンジニアを敵にまわしているが、木住野さんなんですけれども(笑)、ぜひご意見をいただけますか?

木住野:私が必要ないと言っているのは、おそらく、QAエンジニアの役割が変わるだろう思っているからです。何をテストで担保したいかを決めるのは、結局の所、開発チーム、もしくは、プロダクトオーナーが決めればいいと思っています。しかし、ソフトウェアテストのスキルや、品質保証活動の経験がない場合は、それが決められないというのが現状だと思います。

今のQAエンジニアのメインの仕事は、テストについて納得感を作ることです。この「納得しているか?」というところが、QAエンジニアのメインの仕事だと私は捉えていて、その納得のために必要なスキルを補うことができれば、QAエンジニアは必要なくなるかなと考えています。

そのために必要な教育とか、QAとしての経験値を蓄積して、みんなが自動テストを使えるような仕組みを作り上げるとか、そういった活動を行うのがQAエンジニアがやるべきことなのかなと私は考えています。

藤原:ありがとうございます。山口さんは「サービスによる」と回答されたんですけれども、ヤフーさんにはQAエンジニアというかQAというフェーズがないんですよね。

山口:ヤフーにはないです。僕自身はヤフーのサービスにおいて、QAエンジニアが必要なサービスやプロダクトは個人的にはあんまりないかなと思っています。だから、この質問だと「必要がない」ほうに入るかなとちょっと感じています。

その理由は、先程木住野さんがおっしゃったように、開発者が改善していけるサービスやプロダクトの規模があり、障害や不具合が発生したとしても、すぐ修正してリリースするほうが、コスト的にベストなものが多いと感じているからです。

ただ、一方で、組み込みのように、一回障害が出ると、売上が吹っ飛んでしまうようなプロダクトや、人の生死にかかわるプロダクトににおいては、開発者たちが「品質に対して全責任を持つ」というのはちょっと現実的ではないと思います。プロダクトオーナや企画のような作りたいモノを考える人も全能ではないので、そういった人たちをアシストするようなQAエンジニアは必要かなと思っています。

藤原: 私も最近自動化やQAの組織づくりについて、他社さんのサポートをさせていただりしているんですけれども、テストが全然なかったり、リグレッションとかもやってなかったりするんですよね。でも「自動化したい」と言う。さらに「今この状態で困っていることあるんですか?」と聞くと、ちょっと考えて「特にトラブルもおきてない・・・」となったり。

Webとかアプリとかだと、結構出してしまうのが先という状況が多いので、山口さんの意見にはとても賛成できると思いました。

おっしゃるとおり、モノ系やライフライン系ですね。そこが「自動テストしています」と言っているとさすがにちょっとひきますね(笑)。たとえば、自分はそんなシステムが動いている飛行機に乗りたくないなと思うんですけれど、使い分けは必要なのかなと思います。

テスターは必要か?

藤原:つづきましては「テスターは必要あるか?」という主題なんですけれども、必要あると4人がおっしゃる中で、大園さんがひとり「仕事内容が変わる」と回答されました。ぜひお話をいただけますか?

大園: 具体的なイメージがわいているわけではないのであくまで僕の感覚の話になるんですが、弊社にも結構QAエンジニア、テスターがいて、皆さん多様化してきている印象があります。

テスターといっても、決められたテストケースを単にテストするだけではなくて、たとえばプランナーさんに寄りそうように、仕様作成から入っていく場合もあります。あとは、UXエンジニアのように「これはユーザ的にだめじゃない?」という指摘を、数値も持って具体的についてくる人もいます。

テスターというロールだけでなく、こういうロールももつ方もちらほら見ることがあって、まさにここに回答したとおり、仕事の内容を自分たちで変えていくんじゃないか? という期待を僕は持っています。

今ちょっと自動化エンジニアってのがもてはやされていると思うんですけれども、それ以外の分野にも面白いことやっている人がいっぱいいると思うんですよね。そういうところを、期待してこういう書き方をしました。

藤原:ありがとうございます。「テスターは必要ない」と言っている悪い四人組については(笑)、次のスライドでもうちょっと詳しく聞かせていただこうと思います。

藤原:では、その仕事内容はどうか?「部分的に置き換わるだろう」という意見と「完全に置き換わるだろう」という意見に分かれました。どれぐらい変わるか? どのように変わるか? を伺ってもいいでしょうか?

山口:先程大園さんがおっしゃっていたように、テストケースの一覧にもとづいて、上から順に実行する単純な作業はなくなっていくと思っていますし、なくしていきたいと思っています。とはいえ、バグを感覚的に、探索的に見つけてくれる人は残るし、その価値は高いかなと思います。

木住野: 私はテスターの仕事の内容を「単純な手動テストを実施する人」と解釈して回答したのですが、そういったテストは自動化されると考えています。ただし、それがどのぐらい変わるかは、組織の成熟度や自動化の進み具合によると思います。技術トレンドを追うリソースを持っていて、どんどん開発の中に取り込んでいけるチームであれば、どんどん自動化して、どんどん手動の簡単なテストがなくなるでしょう。

ただし、リーン開発のように「まずはビジネスの価値を明確に追求しよう」という環境では、テスターに探索的テストや手動テストをまずやっていただいて、自動化をあとにしてしまう場合も可能性としてある思います。よって、「部分的に自動化される」と答えました。

根本:いわゆるリグレッションテストというような、毎回機能的に壊れてないか確認するものは、どんどん置き換えていくべきだし、していきたいなと思っています。ただ、スクリプトを書く作業がAIに置き換わるかは、まだわからないんですが、スクリプトを書くのと、手でやるのとで、どちらがはやいかわからない状況ってあるんですよね。

たとえば、新しい新機能が特にそうだと思うんですけれど、そういう場合はたぶんマニュアルが優先されて自動化されないし、マニュアルテストが求められるのかなと。今後はそこに自動化への力を割いていきたいなと思っています。

松尾:置き換わる部分に関しては皆さんが言ってくれたと思います。今回の定義にあるように実施するだけの人、オペレーションだけする人は置き換えられるでしょう。

僕の新しい会社の話になりますが、特定の国のリアルネットワーク回線を使って自分たちのサービスを使うとどうなるか? といったレベルだともう自動化する環境は整ってきています。たとえば、日本で開発しながら、インドネシアやアフリカの国の地域の人たちが、実際に利用する携帯回線を使って、自分たちのサービスを使うとどうなのか? こういうケースはサービスの利用で解決する時代になってきているので、これからもどんどん置き換わっていくでしょう。

ただ、現地で生活をしたり、実際に移動したり、探索的テストしたり・・・という領域は当面、AIを考慮したとしても、まだ置き換わらないし、人の作業を取りのぞけられないと感じています。

藤原:ありがとうございます。4人とは違って、完全に置き換えてやるぜーっと回答してくださった大園さんはどういうお考えなのか教えてください(笑)。

大園:若干狙ったところもあります(笑)。私の希望が7割ぐらい入っていると思っていただきたいのですが、前提条件をいくつかつけてお話させていただくと、完全に置き換えるのであれば、開発プロセス自体であったりとか、今のQA体制であったりとか、そういったところにもメスを入れる必要がでてきます。今手動でやっているところをぜんぶ自動にするだけではなくて、そのプロセス自体を全部見直す必要が必ずでてくるとおもいます。見直した結果、完全に置き換えられる可能性とはゼロではないと思ってますし、そこを目指していくようなシステムを僕らが作っていくべきではないかなと思います。

藤原:なるほど。そのシステムを作る仕事ってなかなか難しそうですね。そこに到達するのってどれぐらい? 何年後? とかって見えていますか?

大園: 僕は今担当しているサービスの中で、チームの課題として、直近でそれをやるべき、やらないといけないと考えています。僕のチームはスクリプトを書いたりメンテンナンスしたりするのも主務のひとつに入ってはいるんですけれども、僕らがそこをやらずに、(開発を担当する)エンジニアやQAエンジニアだけで全部管理できる・・・ような環境ですね。環境をつくるのが僕らの仕事かなと 。そのために、今手動でやっているテストのうち、できるところをすべて自動テストで置き換えるのが、今の一番の狙いかなと思っています。

藤原:このへんは山口さん、先程おっしゃられたコーチングの肝な部分に近いかなという感じがするんですがどうですかね?

山口: 何を外の環境(現場とは別の場所)とするのかもあると思っていて、外にすればするだけ、実際の現場で開発している人から距離が出てくるので違うものになりやすいんですよね。一番理想はやっぱり、開発の人ができること。それができないのであれば、「なぜできないか?」というのをどんどん取り除いていければいいと思ってます。

藤原:ありがとうございます。木住野さん、リグレッションテストケースをかなり作られていると思うんですが、エンジニアが作って自分自身の仕事がなくなるような状況まで、すぐ達成できそうですかね?

木住野: すぐ達成できるとはいいきれないですけど、そこを目指しています。

私達が使っている自動テストツールは、AIとかは使ってないんですが、だれでもメンテナンスできて、WindowsでもLinuxでもMacでも自動テスト環境が作れる仕組みを作り、それを配布する取り組みを行っています。開発者自身も、結構、乗り気でやってくれているので、そういった世界をすぐに描けるんじゃないかと思っています。

藤原: 難易度は高いけれど、目指す方向はそこなんですね。

>> 最後はAgile、DevOps時代の人材像! そしてテストや品質の未来を考えます。

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