TOP>企業情報>コラム>技術情報>さらばダミーデータ!超高速開発を実現するテストデータ活用

さらばダミーデータ!超高速開発を実現するテストデータ活用

Delphix

ビジネスの拡大にともなって増大するデータ。他社とのビジネス差別化を実現するためには、膨大になったデータを速く、柔軟、かつ安全性を保って活用することが必須となります。しかし、データ利用の需要が高まる一方、データを安全に扱うための制約も増加してきています。このデータ利用とデータ管理の摩擦に悩まされ、データを思うように活用できていない企業は多いでしょう。これが解消すれば、企業は思いのままにデータ活用ができるようになり、変化するビジネスニーズへの柔軟な対応も可能となるのです。こうした理想のデータ活用を実現するのがDelphixのDynamic Data Platformです。

本稿ではデータ活用の中でもテストデータに関する課題を例に、ビジネスに変革を与えるDelphixの新しいデータ活用をご紹介します。


優位性獲得にはリリースサイクルの短期化が必須


なぜ、ビジネス差別化にデータ活用が求められているのでしょうか。システム開発の観点で考えてみます。最近のIT業界では短期間に数多くのサービスがリリースされるようになっており、たとえば金融・保険業界では契約や取引がオンラインサービスでできるのが常識になりつつあります。そういったオンラインサービスは、掘り下げれば提供会社ごとに異なる特徴を持っていますが、サービスを初めて認識した利用者には違いが判別しづらいことがあります。この場合、利用者は新鮮さ、期待感があるサービスに飛びつく傾向があります。したがって、サービスリリースが速いほど、新規顧客を獲得できる可能性が高まるのです。また、最初のリリースが速いだけでは継続的に顧客を留めておくことができません。例えば、あるサービスが使いづらいので改善してほしいという要望に対する改善が遅いと、顧客が別のサービスに乗り換えてしまうというリスクがあります。したがって、継続して顧客を維持するためには修正対応にもスピードが要求されます。つまり、製品やサービスを市場に提供するスピード自体が競争優位性につながるようになってきていると言えるでしょう。そこで、システム開発工期の短縮が注目されています。これを実現するにはテストデータ活用は不可欠となるのです。

リリース短期化のボトルネックとなっている“データ活用”


システム開発工期の短縮の需要に対応するため、テスト環境準備工程も進化してきました。例えば図1にあるように、サーバはより速く簡単に環境が作成できる仮想化やクラウド化が増え、開発手法はウォーターフォールが主流でしたが、アジャイルやDevOpsという手法が選択肢として考えられるようになりました。しかし、これだけでは開発の工期短縮は実現しません。工期を短縮するとはいっても、もちろん品質も良くなくてはリリース後に不具合対応に追われ、工数を費やしてしまうことがあるからです。そこで品質に大きく影響するのがテストデータです。では、テストデータ準備の進化はどうでしょうか。現状、ダミーデータを手動で作成したり、ストレージのコピー機能を使って特定断面のみを準備していたりすることが多いでしょう。

図1:テスト環境準備工程の変化

図1:テスト環境準備工程の変化

こう見ると、サーバ、開発手法に比べテストデータ準備だけが発展していない印象を受けます。弊社が関わったあるお客様では、サーバ準備、開発手法をいくら高速化してもデータ準備とデータの品質がボトルネックとなり、結局開発工期短縮ができないという悩みを抱えていらっしゃいました。このように、市場に速く製品を出すためには“テストデータ準備”がとても重要です。

なぜ、テストデータ準備が進化しないのか


重要であるはずのテストデータ準備が発展しづらい状況には、図2にあるようにテストデータにおける課題が大きく関係しています。

弊社が考えるテストデータにおける主な課題を四つご紹介します。一つ目は「時間」です。本番データからテストデータを作成する場合、本番データが多ければ多いほどテストデータ作成時間が長期化してしまいます。開発・テスト担当者はデータを要求してから数日~数時間待たなければ要求したデータを使用することができないことも多いでしょう。二つ目は「容量」です。多くの場合、開発・テスト環境を複数作成します。そうなると、作成する環境分の容量を用意しなければならないため、ストレージコストの増大につながります。三つ目は「セキュリティ」です。本番データには個人情報や機密情報が入っていることがあります。そのまま開発環境に持っていくことはできないため、マスキングが必須となります。そのため、マスキングする時間やマスキング環境が追加で必要となり、さらにコストがかかります。また、マスキング手法が属人化してしまう恐れもあります。マスキングにかかる時間とコストを削減するため本番データを使わずにダミーデータを使用する場合もあります。そうなると今度は四つ目の「品質」問題を引き起こす恐れがあります。ダミーデータでは本番データにあるようなデータのバリエーション、データ量等を再現できないため、テストが不十分となる可能性があるからです。

図2:テストデータにおける課題

図2:テストデータにおける課題


ダミーデータのみのテストはリスクが大きい


ダミーデータがどうして品質問題を引き起こす恐れがあるのか、少し詳しくご紹介します。

図3:ダミーデータの危険性

図3:ダミーデータの危険性

まず、ダミーデータを使用する場合は、本番データを想定して全テストパターンを網羅できるデータを作成します。この作成には、本番ではどんなデータがあり、どうなったら正常または異常かを判別できる業務知識が不可欠です。業務知識があったとしてもデータ設計における判断が難しいため、テストデータの品質にむらが発生しテストそのものの品質低下につながることも考えられます。また、「Test,Test」といった安易なデータやバリエーションの少ないデータでは、ユーザが実際に使ったときのイメージがしづらいという問題もあります。結果、ユーザが使いづらい画面となり、サービスリリース後に大量の改善要求に対応しなければならない、ということもあります。そして、最も注意しなければならないのは本番リリース後の不具合リスクが内在する恐れがあることです。ダミーデータでは本番データにあるようなデータの偏り、データの量を再現したテストができません。テスト自体の品質が下がり、本番リリース後に本番データに起因した障害が発生する恐れがあります。もちろん単体テスト段階では全てを網羅するデータが必要なため、あえてダミーデータを使用する、ということがあります。しかし、リリースまでの全てのテストをダミーデータで実施するとなると、このような問題に直面する可能性があることを考慮しなければなりません。図3にまとめたように、品質が不十分になる恐れがあるダミーデータを使用すると、テスト品質が低下し、製品そのものの品質にまで影響を及ぼす危険性があるのです。

今までは、こうしたテストデータの課題全てを解決することが困難なため、思うようにテストデータ活用ができていませんでした。この状況に変革を起こす製品がデータベース仮想化ソリューション「Delphix」です。

「Delphix」ではデータをコピーしない複製でデータ高速提供を実現


Delphixは任意のデータを好きな時に高速に提供するデータベース(DB)仮想化ソリューションです。提供には物理コピーを伴いません。図4のようにDelphixに取り込んだ本番データのマスターコピーから、スナップショット技術で提供用データベースを切り出し、開発者専用のDBを作成します。開発側では切り出されたDBをマウントするだけなので、データ要求からDBが使用できるようになるまでを数分で実現します。また、Delphixはマスキング機能を備えています。DBを切り出すタイミングでマスキングを実施することで、セキュリティを担保しつつマスキング済みDBを素早く提供することが可能です。

図4:Delphixのデータ提供イメージ

図4:Delphixのデータ提供イメージ

さらにDelphixは、開発者専用インターフェースの提供によって、作成された開発者専用DBに対するデータ巻き戻し、データ最新化といった操作のセルフサービス化を可能にします。これにより従来はDBAに作業依頼しなければならない作業を開発者に任せることができ、DBAの工数と開発者の作業待ち時間削減を実現します。

「手戻り」解消によりシステム開発工期を短縮


Delphixのデータベース仮想化技術はテストデータの課題を全て解決することができます。図5にあるように短時間かつ任意の時点の複製が自由にでき、セルフサービス機能により開発者が欲しいときに欲しいデータを利用できます。さらにはマスキング機能により重要なデータを開発環境でもセキュアに扱えるようになります。速く、いつでも、セキュアにデータを提供できることで、「データ準備」に変革を起こすソリューションなのです。

図5:Delphixの主な特長

図5:Delphixの主な特長

また、Delphixで開発・テスト工程の初期段階から本番データを使用することで、不具合発見を早期にシフトできる可能性も高まります。図6は各テストフェーズでの不具合検出率を示しています。左側のグラフがDelphixを使用していない、従来の方法の場合です。従来は受け入れテストあたりで本番データを使用し、そこで不具合が多く検出されるケースが多くありました。場合によっては前のフェーズに戻ってテストをやり直す「手戻り」が発生することもあり、これがシステム開発工期延長を引き起こしていました。Delphixの場合はテストの早い段階から本番データを使用できます。したがって本番データに起因する不具合の発見が早くなる可能性があります。この不具合の発見と修正を左側にもっていくことをシフトレフトの実現とも言い、Delphixが起こす変革の一つです。

図6:不具合検出の早期化イメージ

図6:不具合検出の早期化イメージ


従来方法より高速かつ低コストでデータ複製を実現


ここまでDelphixの機能と効果をご紹介してきましたが、ここで従来の方法との違いを検証結果と共にご紹介します。図7は1テラバイトのOracle Databaesを別のOS上に複製した際の、複製時間と複製容量の違いを示しています。結果、複製時間は従来と比べ180倍高速であることが分かりました。また、複製先の容量は約1/10に削減されました。これはDelphixがデータを物理コピーせず、開発環境からマスターデータを参照させる仕組みによるものです。従来の方法よりも高速かつ少ないリソースで開発環境が複製でき、時間とコストの削減効果が高いことが分かりました。

図7:従来方法との比較イメージ

図7:従来方法との比較イメージ


活用例


Delphixは本番データを使用できるという特性上、さまざまな業種で使用いただいています。最後に、実際に使用いただいているお客様の活用例をご紹介します。

1.テストと開発の競合解消


一つ目はテスト支援での競合解消に関する活用です。開発・テスト環境が一つしかない場合、両者の作業を同時に実施することができずに苦労したことはないでしょうか。例えば、長時間かかるバッチのテストを実施するとバッチが終わるまで開発者が待たなければならなくなり、バッチが失敗した場合にはプロジェクト全体の遅延につながってしまうこともあるでしょう。Delphixを導入すると、図8にあるように本番DBよりも少ない容量で本番相当のデータを持ったDBをバッチ用、開発用それぞれ作成することができます。さらにバッチが失敗して最初の状態に戻したいときには開発者自身が数分でデータを巻き戻すことができるので、作業時間を大幅に削減することができ、プロジェクト期間短縮も実現します。

図8:活用イメージ(1) テストと開発の競合解消

図8:活用イメージ(1) テストと開発の競合解消


2.障害発生時の再現環境を瞬時に作成


稼働中のシステムで突発的な障害が発生した場合、再現環境を作るのは大変ではないでしょうか。稼働中のデータベースへのアクセスはなかなか許可されないことが多いでしょう。Delphixは図9にあるように本番データを常に同期しているので本番環境へのアクセスをせずに、再現環境の作成がスムーズにできます。また、障害発生時点前後のデータを複製し、同じSQLを投入することで障害発生前後の動作比較も可能です。

図9:活用イメージ(2) 障害発生時の再現環境作成

図9:活用イメージ(2) 障害発生時の再現環境作成


3.クラウド環境へ移行


最後にクラウド移行時の活用例です。米国ではクラウド移行にDelphixが採用されるケースが増えています。図10にあるようにDelphixをオンプレミスとクラウドに2台導入することで移行前検証フェーズと、移行時切り替えフェーズ両方で活用できます。検証フェーズでは、まずオンプレミスからDelphixにデータを取り込み、クラウド上Delphixに同期します。このDelphix間の同期はDelphixに備わっている機能です。クラウドにデータが同期された後は、クラウド側で仮想DBを作成して、バージョンアップの検証や、アプリケーションの適合性検証を専用かつ何度も巻き戻し可能な環境でテストが実施できます。今まで実施できなかったテストを追加して品質向上をすることもできます。続いて切り替えフェーズの活用です。Delphixには仮想DBを物理的に書き出す機能があります。これを使用して仮想DBを新本番環境に昇格させることができます。データ移行となると複雑な手順と高度な技術スキルが必要となります。そのため熟練の技術者でも手順の漏れやミスが起こるリスクがありますが、Delphixは移行手順を簡易化することで、そういったリスクを軽減する効果もあります。

図10:活用イメージ(3) クラウド移行

図10:活用イメージ(3) クラウド移行


Delphixの活用例のご紹介は以上です。このように、Delphixは本番データを同期しているという特性上、多種多様な使い方ができるのも特徴です。

あらゆるデータの統合基盤を提供


Delphixの「Dynamic Data Platform」はデータに関わる制約を解消し、最小限のオーバーヘッドでのデータ活用を可能にします。高速に変化するビジネスニーズへの柔軟な対応を可能にし、生産性向上により市場における優位性の獲得を実現します。今回ご紹介したのはテストデータ活用でしたが、データに関するあらゆる課題を解決しうるソリューションです。実現したいけど諦めていたこと、困っていることがありましたらぜひアシストにお手伝いさせてください。


執筆者紹介

拝島 渚

拝島 渚(Nagisa Haijima)

株式会社アシスト データベース技術本部

アシスト入社後、データベース技術本部に所属し、Oracle Databaseのフィールドエンジニアとして設計・導入などを担当。現在はデータベース仮想化ソリューション「Delphix」の販促・技術担当としてハンズオンセミナー講師やブログ執筆を担当し「Delphix」の魅力を広める活動を行っている。

関連製品/サービス

ページの先頭へ戻る