リスクベースの「テスト」で金融業界最高レベルの品質保証を目指すbitFlyerスプレッドシートを用いた属人的なテスト管理から脱却

ソフトウェアやサービスのテストケースやテスト結果の管理にスプレッドシートを用いることがある。だが、このような管理ではテスターによる属人性を排除することが難しく、開発規模が拡大するにつれ、情報がうまく管理できなくなっていく。スプレッドシートによる運用を止め、テスト管理ツールを導入した企業の事例を紹介する。

» 2021年09月08日 10時00分 公開
[PR/@IT]
PR

 日々の業務の中で資料作成だけではなく、スケジュール管理やプロジェクト管理にも広く活用されているのが、「Microsoft Excel」をはじめとするスプレッドシートだ。ただ、個人や少人数のチームでの管理ならばまだしも、大規模な開発プロジェクトの管理となると、スプレッドシートを用いた手作業では効率が悪い。

 このような問題意識を抱き、テスト管理ツールを導入したのが、「ブロックチェーンで世界を簡単に。」をテーマに暗号資産取引所を運営するbitFlyerだ。

スプレッドシートを用いた属人的なテストケース管理に感じた限界

 「ビットコイン」や「イーサリアム」といった暗号資産の取引所を運営しているbitFlyerは、日本だけではなく、米国や欧州などワールドワイドでサービスを展開している。日本リージョンで主な機能を実装し、国際化のためにファンクションテストを実施した上で、各国で文化、法律面も考慮したローカリゼーションテストを実行している。

bitFlyerの田口一夫氏

 PCやスマートフォン向けに提供しているサービスそのものの開発や更新に加え、開発チームはそれらを管理するシステムも手掛け、テストを経てリリースしてきた。bitFlyerでQAマネージャーを務める田口一夫氏によると、小規模なものでは数十、大きなサービスでは1000を超えるテストケースがあるという。

 これまではテストケースや結果の管理にスプレッドシートを用いてきた。「スプレッドシートではどうしても属人化してしまう部分があり、記述に揺らぎがあったり、チェック項目にばらつきがあったりして、行間を読む必要がありました。テストの品質を向上させるにはテスト管理ツールが必要だと考えていました」(田口氏)

 QAリードを務める藤井祐紀氏も、「ファイルの置き場所をはじめ、スプレッドシートによる管理が煩雑になっていた部分があります。必要なときにテストセットが見つからなかったり、プロジェクトで何かあったときに該当部分のテスト結果を迅速に探し出すことが難しかったりしていました。これらがサービスの信頼性の低下につながるという懸念もありました」と振り返る。

リッチな機能に加え、日本語サポート体制が採用の決め手に

 bitFlyerが最初に検討したテスト管理ツールはシンプルであり、そこが魅力的だった。だが、本来、属人化を排除するために導入を検討していたにもかかわらず、運用でカバーしないと使いこなせない部分があり、導入を諦めることにした。

 次に浮上した候補はテクマトリックスが販売する「TestRail」だった。採用理由を田口氏は次のように話す。「リッチな製品ということは理解していました。テクマトリックスによる日本語のサポートがあり、困ったときに言語のバリアーに妨げられることなく質問できることも採用した大きな理由でした」

 デフォルトで実装されている機能が多いにもかかわらず、テスト結果やエビデンスの登録操作が容易なこと、CSVのインポートも可能なことなど、評価の後押しとなる細かいポイントが多々あった。ただ念のため、3カ月にわたってPoC(概念実証)を実施し、「これならいける」という手応えをつかんだ上で本格導入を決定。半年程度かけ、同時並行で進む複数のプロジェクト全てにTestRailを採用していった。

テストケースと結果のログを一元管理し、テストの信頼性の保証にも一役

bitFlyerの藤井祐紀氏

 TestRailの導入によって、属人化していてバラバラに進められてきたテストケースの管理が非常に楽になったという。「いつテストを実施し、結果はこうで、再テストはいつ行ったかといった事柄がプロジェクトごとにログとして残るため、テスト結果の信頼性を保証できます。後から結果を探しやすくなりました」(藤井氏)

 以前は、テスト手順や前提条件、端末情報一つとっても、テスターによって大ざっぱだったり、逆に細かくフォーマットを作っていたりとばらつきがあったため、テストのアウトプットの質が損なわれる恐れがあった。「TestRailはそうした部分についても、『このフィールドは必ず埋めた上でテストすること』といった具合に指定できるので、属人化を排除でき、アウトプットの質が向上しました」(藤井氏)

 テストケースの管理そのものも効率化できた。TestRailを導入した当初は、サービス本体と内部向け機能も含め、全て1つのツリー構造に基づいてテストスイート(複数のテストケースをまとめたもの)を管理しており、サービスの拡大に伴って複雑化していた。現在は、1つのマスターの基でリグレッション(回帰)テスト用、内部向けのサービスといった具合に、テストやプロジェクトの役割、規模や機能ごとにテストスイートを分類して管理できている。

テストケースのマスター管理画面(提供:bitFlyer)

 「どのように管理すればよいのか悩んでいたときに、テクマトリックスの担当者とのコミュニケーションの中で『こんな機能がありますよ』と教えていただきました。これを使うことでプロジェクトのテストケースの管理が楽になりました」(藤井氏)

 暗号資産の取引所というサービスの性質上、適切な情報管理も運営上の重要なポイントの一つだ。「年に何度か、新しい暗号資産を上場することがあります。そのサービスの開発やテストには、社内でも特定の人だけがアクセスできるように制御する必要があります。TestRailであればそうした管理もできます」(藤井氏)

 さらに、テスト結果の管理や把握も一元化、簡便化できた。

bitFlyerの金 東希氏

 「今までは、リグレッションテストの結果を記録し、そのたびにスプレッドシートに書き込まなければなりませんでしたが、TestRailではそうした情報が自動で管理されるため、非常に楽になりました。テスト結果のエビデンスの登録も簡単です」(QAエンジニアを務める金 東希氏)

 これまでは、テストの結果を踏まえて修正し、再度テストを実行して……ということを繰り返すたびに、スプレッドシートの備考欄にタイムスタンプと担当者の名前を記していた。もちろん結果や修正過程も記入していくので、備考欄がどんどん長く伸びていった。TestRailでは、それをログとして残していくため、記入の手間が省けるだけではなく、「前のテスト結果はどうだったか」「いつ修正されたのか」といった内容を確認しやすくなり、テスト管理にかかる時間の削減につながった。

 さらに、過去のテスト結果を簡単に参照できるので、類似のプロジェクトのテストケースを参照しながら「このテストを追加しよう」とテストケースを充実させやすい。テストケースの中に画像を埋め込むこともできるので、画像表示の確認テストの際に別途デザイン設計書などを参照する必要がなく、ここでも工数を減らすことができた。

的確な進捗管理を実現、新規プロジェクトの参考にも

 現在bitFlyerはアプリケーションのテストのほぼ全てにTestRailを活用している。主たるサービスの下に、日本や米国、欧州などリージョンごとにツリー構造で分類し、全体で数万単位のテストケースを管理している。それにもかかわらず、必要なときに目当てのテストケースを素早く探せるようになった。

 別のメリットもある。レポート機能を利用して「どのくらいテストケースをカバーしたか」、日次単位で把握できるようになったことだ。スプレッドシートで管理していたときは、実施結果を手動で管理していた。集計結果を出すための計算式自体に間違いがある場合もあり、テストが完了したと思っていたら実は全然終わっていなかったといったこともあった。「進捗(しんちょく)管理の計算式のメンテナンスなどを考えることなく、TestRailが的確に状況を表示するため、プロジェクト全体の進捗を正確に把握できるようになりました」(藤井氏)

日次で出力しているレポートタイトルの一覧(提供:bitFlyer)

 さらに、プロジェクトの終了時に「このテストケース数で不具合数はこのくらいだった」といった全体の傾向をまとめ、新たに類似したプロジェクトがスタートする際の参考にしている。

 今、テストの世界では「自動化」がキーワードの一つだ。TestRailを導入してテストケースや手順、プロセスを均一化、標準化し、管理する下地が整ったことを踏まえて、bitFlyerもテストの自動化に取り組み始めている。

 「コンサルタントの力を借りながらテストの自動化を進めています。TestRailを用いてテストケースを整理した上で取り組んでいるので、あまり苦労することなくスムーズに移行できています」と藤井氏は言う。API連携の機能も備わっていることから、TestRailを活用し、テストの実施から結果の出力に至るまで一連の自動化を実現していく方針だ。

リスクベースのテストを実現し、金融業界最高レベルのQAを目指す

 金融サービス、特に暗号資産の取引の世界は日々変化を続けており、それに追随するには次々と新たなサービスや機能を実装していかなければならない。かといって、新機能の動作に問題があっては、利用者からの信頼を損なう結果になるだろう。その意味で、テストや品質保証(QA)プロセスが果たす役割は非常に大きくなっている。

 全てのテストケースを実行するのは不可能だという「全数テスト不可能の原則」を挙げて、田口氏は「テストエンジニアにとって大事なスキルの一つは、品質を落とさず、いかに実行するテストケースを絞れるかです。TestRailでテストケースごとに優先度や重要度を細かく振り分けることによって、リスクの高いところからテストを進めるリスクベースのテストを実現し、効率良く品質を向上させやすくなりました」と話す。

 「金融業界の中でも一番のQAを目指し、TestRailのようなツールを生かして実効性あるリスクベーステストを行い、テスト作業の効率化や最適化を図りつつ、品質も向上させていきたい。こうしたチャレンジに興味を持つエンジニアやマネジャーを募りつつ、より良いサービス作りに今後も取り組んでいきます」(田口氏)

Copyright © ITmedia, Inc. All Rights Reserved.


提供:テクマトリックス株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2021年9月22日

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。