ヤフー、楽天、クックパッドにおける「テスト」への挑戦――ツール、体制、アーキテクチャはどうなっているのか:システムテスト自動化カンファレンス2015(2/3 ページ)
「システムテスト自動化カンファレンス」第3回が開催。ソフトウェアテストの現場にはどのような課題があり、エンジニアがどう解決してきたかが紹介され、いくつか共通するキーワードが見えてきた。
【楽天】継続的テストがもたらす価値を見える化する「レポート」「フィードバック」
楽天の荻野恒太郎氏は、「楽天の品質改善を加速する継続的システムテストパターン」と題して講演を行った。同じく楽天の菊川真理子氏と、“ゆるい”のになぜか胸に突き刺さる言葉をちりばめた寸劇を交えながら、「生産性だけでなく、開発の永続性やプロダクトの信頼性を挙げるためのコンセプトとしての『継続的テスト』」の在り方について説明した。
CI/継続的フィードバック
永続性を支えるキーワードの一つが「CI/継続的フィードバック」だ。荻野氏は「一番いいところは、開発者がコミット直後にバグに気付けること。毎日テストして毎日フィードバックを得られると、いつ失敗したかが一目瞭然になる」と述べた。同社の場合は、JenkinsとCucumber、Gatling、SonarQubeといったツールを組み合わせ、「毎日実行、毎日レポート」を実現しているという。
この結果をメトリクス化することも重要だ。「これには二つのポイントがある。一つは、品質改善によって『こんなによくなった』という結果が目に見え、現場のモチベーションが上がることだ。もう一つは、その成果を上の人に見せられること。一日に何回、何十回とデプロイしていることを自動的に取得し、メトリクスで示せば、上層部にもその価値を示すことができる」(荻野氏)
荻野氏はこの取り組みを、「ATM貯金箱」に例えた。昔ながらの貯金箱は、割って中身を数えないといくらたまったか分からない。これに対し、継続的テストは、「コインを入れたら今の貯金額が分かり、いくら足りないのかをフィードバックしてくれる貯金箱のようなものだ」。これに従って「もうちょっと足そう」といった具合にコントロールしていくことができる。
「1日にn回テストする」ことが可能なアーキテクチャ
また、「テスト可能なアーキテクチャ」も重要であり、そのために「プロダクト」と「自動テスト」という二つのシステムを分けて考えるのではなく、一緒に考えていくことが必要だとした。
その好例として荻野氏が紹介したのがグーグルだ。「Google Test Automation Conference(GTAC)」の講演では、検索というプロダクトを構成するコンポーネントの中に『自動テスト』や『自動評価』といったコンポーネントが含まれている。つまり、運用やテスト、リリースのための要件をプロダクトの中に盛り込んでいることが紹介されたという。
「『1日にn回テストする』といった要件も盛り込んだ上でシステムとしてリリースしている。プロダクトと自動テストシステムは一緒のもの。一緒に要件定義し、一緒にアーキテクチャを考えるとやりやすい」(荻野氏)
当たり前だが、テストはそれ自体が目的ではなく、最終的にはプロダクトの品質を上げていくことが目標だ。そこで「チームとユーザーに、またビジネスとテクノロジーの各面でどういう価値を提供するかを、アジャイルテストの価値を四象限に分けて整理することが重要だ」という。
この文脈で整理すると、DevOpsにおけるテストの価値も見えてくるという。「テストをちゃんとやらないでDevOpsを進め、Dev側でバグを出し切れないと、Opsフェーズに入ってバグが見つかり、その修正に追われて新しい機能追加ができないといったことになりかねない。当たり前の話だが、Devで作ったものをOpsに提供する前にきちんとテストすることによって、Ops側に『信頼できるコード』という価値を提供できるし、Dev側にも開発スピードが上がるという価値が提供される。そしてDevが加速することによって、ユーザーにはより高い頻度でバリューを提供できるようになる」
「テストだけ」ではなく「テストも」できるエンジニアに
萩野氏は最後に、菊川氏の「テストのスキルって、なめられがちじゃないですか」という小芝居に答え、テストエンジニアの人材育成とスキルセットについてもコメントした。
「テストができる人、テストをやりたい人があまりいない。そもそも新しい分野であり、テストエンジニアはまだまだ少ない」(萩野氏)
その意味で育成は必須なのだが、テストだけができるエンジニアでいいというわけではなさそうだ。
「楽天はサービスカンパニー。だから、テストだけできる人よりも、機能実装もでき、テストもできて、リリースもできる人がうれしい。チームの中には、リリースオートメーションを経験してからテストオートメーションに来た人も多いし、DockerやInfrastructure as a Codeに関心を持っている人もいる。自動化とリリース、テストといった部分を行ったり来たりしながらキャリアアップしていく、というイメージを持っている」(萩野氏)とし、特にクラウドや自動化に対する抵抗感を持たない若いエンジニアに、会社の中での自動化をどんどん進めていってほしいと呼び掛けた。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- テスト自動化の歴史と今後、良い/悪い事例〜システムテスト自動化カンファレンス2013レポート
テスト自動化を開発の“武器”にするための3つのポイントや、“自動化”の良い事例、悪い事例など、テストの現場を「進化させる」知見が多数紹介されたカンファンレンスの模様をレポートする。 - JAXA、サイバーエージェントが考える「品質向上」と役立つツール
2015年10月に開催された@IT主催セミナーより、前編となる今回は、JAXA主任研究員の植田泰士氏やサイバーエージェントのチーフクリエイティブディレクターの佐藤洋介氏による品質向上への取り組みに関する講演、品質向上に役立つ考え方やツールを紹介した各講演をお伝えする。 - ゴールドマン・サックスが実践する「品質向上」の取り組みと役立つツール
2015年10月23日に開催された@IT主催セミナーより、後編ではゴールドマン・サックス・ジャパン・ホールディングスの伊藤博志氏による特別講演の他、品質向上に役立つ考え方やツールを紹介した各講演を紹介する。 - 「第3のIT」へと変革する時代に考えておきたい「品質」との付き合い方
2015年2月4日に行われた@IT主催セミナーより、JJUG会長鈴木氏による基調講演の模様や、弥生とYahoo!ショッピングの品質向上事例、各品質向上ツールの概要をお届けする。 - ビジネス目標を見据えたテスト設計が肝!「DevOps時代のテスト自動化カンファレンス 冬の陣」開催
DevOpsの実践で肝となるソフトウェアテストの自動化。しかし@ITの読者調査でも50%以上が「テスト環境に課題あり」と回答した。これにどう対応すれは良いのだろうか? カンファレンス登壇者の言葉にヒントを探る。