- セッション4:楽天の品質改善を加速する継続的システムテストパターン
- セッション5:キーワード駆動によるシステムテストの自動化について
- セッション6:Testing Tools for Mobile App
- 自分なりのまとめ
- 最後に
セッション4:楽天の品質改善を加速する継続的システムテストパターン
「継続的システムテストパターン」でどのように品質改善をドライブさせているのかという取り組みのお話。
まず印象に残ったのは、自動テストを含めたCIからのレポートを継続的にフィードバックできるようにすることで開発自体を強力にサポートできる、ということ。さまざまなツールを使って機能テスト/パフォーマンステストの結果や静的解析/カバレッジ/リポジトリのログなどなど、様々なメトリクスを可視化して瞬時に閲覧可能にして、何が起きていて品質がどういう状態なのかを理解できるので修正も早くなる。
自分の担当している業務では自動テストでテスト結果のOK/NGはわかるところまで実現しているけど、テスト結果のレポート生成自体は自動テストの実行者任せになっているのでメトリクス蓄積されずフィードバックもほとんどてきていない。だから自動テストによって効果が得られているのかも判断できていない。自動テストの結果をきちんとフィードバックするサイクルまで用意しなければ、効果が十分得られたとは言えないんですよね。
それから、テスト自動化エンジニアの育成をどのように進めているか、という話。やっぱり楽天でもテストができる人・やりたい人は少ないのだそうだが、それを変えるためにキャリアパスの明確化とスキルセットの定義を進めているとのこと。ビジョンを語ることができれば仲間を増やすことができるってことなんだろうと理解した。ある意味これも標準化。今現在の自分の立っている位置を把握して、何ができるようになったのか、何が足りないのか、これからどこに向かっていくのか、を考えるための道標になるし、同志を増やしていくことにも繋がっていくんでしょうね。
余談ですが、楽天の新人研修で「Jenkins/Gatling/OpenStack/Chefなどで自動テストプラットフォームを作ってくれ、2週間で。」と言うとみんなそこそこまともなモノを作ってくる、とのこと。新人は先入観が無い分、自由な発想でモノ作りができるそうです。楽しそうな研修ですね。
セッション5:キーワード駆動によるシステムテストの自動化について
小井土 亨 氏(SQiP 運営委員会メンバー、株式会社OSK)
メモ帳とPowershellを使ったキーワード駆動によるシステムテスト自動化のデモンストレーションと、テスト自動化アーキテクチャーで品質を達成するためのルールをどのように作るか、というお話。
簡単なアプリと自動テストシステムを使って非常にわかりやすく解説してもらうことができた。決められたルール通りにテスト対象の実装が行われれば、自動テストを駆動させるエンジン側をメンテナンスせずともテストケースの追加だけで対応できることも理解できた。
個人的な所感としては「キーワード駆動」はテストコードとテストケースを完全に分離するための手法で、手動テストを担当する人が自動テストのテストコードを追加/編集しない(できない)場合に有効な手段になると感じた。方法自体はデベロッパーとテスターが別ロールとして分業されている場合に両者がコラボレーションするには良い選択肢になりそうなのだけど、キーワードとして利用する固有の名前を操作対象のコンポーネントに付与しなければいけない、という束縛がデベロッパーに受け入れられるようにするにはハードルがあるように感じた。逆に、デベロッパーだけがシステムテストのテストコードを書く場合には、メリットが理解されにくいのかもしれないなぁとも思う。
今の自分の業務環境では自動テストのテストコードをテスターに書いてもらうというのはラーメン屋で寿司を注文するくらいの難易度なので、どこか良いタイミングで自動テストにキーワード駆動を導入して、コードを書けなくてもテスターが自動テストの運用に参画できるかの実証実験をやってみたいところです。
セッション6:Testing Tools for Mobile App
松尾 和昭 氏(クックパッド)
モバイルアプリの開発を取り巻く状況や発生するリスクの管理、利用しているツールの紹介や開発環境の特徴、実際に現場でやっていることや発生した問題事例の共有、今後の課題や対策をどう考えているか、というお話。
第一にモバイルアプリ開発でのテスト自動化がいかに困難なものなのか、ということが伝わってきた。サービスを小さく作って短いサイクルで改善しながら育てていくスタイルなのも大変な作業の一因なのだろう。OSのバージョンアップによってSDKそのものへの破壊的な変更が一定サイクルで行われるため、バージョンアップの度にお祭り騒ぎになるのだそうだ。その問題に対応する不断の努力たるや想像を絶する。
けれどもそんな日々の取り組みを積み重ねるうちに、「テストする人」に対する社内の認識が変わっていった、ということもお話しされていた。周囲の開発者や開発チーム、ひいては企業全体の自動テスト/テストエンジニア/品質に対する文化さえもテストエンジニアの活動を通して改善していける、ということを語られており感銘を受けた。明日へのモチベーションに変えて頑張っていこうと思う。
自分なりのまとめ
今回カンファレンスに初参加したテストエンジニアとして、サブタイトル「システムテスト自動化エンジニアの今とこれから」という視点からの感想をまとめてみる。
テスト自動化を推進できるようなスキルセットを持ったソフトウェアエンジニアの将来像。これまであった様々な垣根を飛び越えて活動できる存在になれるのではないだろうか。デベロッパとテスター、開発チームとマネージャー、開発チームと運用チーム、マネージャーとデザイナー、などなど。たくさんの役割の垣根を取り払ってその隙間を埋める役割を、テストオートメーターが担っていけるのでは、と。一日を終えてそんな風に感じることができたカンファレンスでした。
最後に
発表者の皆さま、運営スタッフの皆さま、素晴らしい機会をありがとうございました。
本当にお疲れ様でした。
それと、日曜日を丸一日、私の趣味に使うことを許してくれた嫁さんと子供達に感謝。
#stac2015