システム開発・運用やAWS構築など企業のDXを支援する日本オープンシステムズ「実績紹介」ページ

CASES

システム検証 状況の可視化 コストダウン 製造業

WEBシステムのテストを自動化して不具合を予防

製造業様向けの商品見積もりシステムに対し、リリース前の全体テストを自動化することで思わぬ不具合が混入することを未然に防ぐご提案をしました

 

クライアント情報

  • クライアント:製造業
  • エリア:富山
  • プロジェクト期間 :2ヶ月

課題

  • 製品の開発において、直接変更していない機能に不具合が発生して改修コストがかかる
  • リリースのたびに全体的なテストを行うには要員が不足し、毎回のテストは省略版になる
  • 不具合の修正に時間がかかり、新機能の開発のスケジュールに遅れがでてしまう

効果

  • テスト自動化ツールによる全体テストによって「思わぬ」不具合を予防できた
  • リリース前の全体自動テストがあるため開発者の負担が軽減された
  • テストツールはオープンソースのものを使用することでツール購入コストを抑止

【背景】リリース後に「修正していない」機能で不具合が発覚

製造業様にて、いくつかの商品を組み合わせて見積書を作成するWEBサイトがあり、そのシステムの商品の組み合わせには依存関係があるため、システムの内部処理は非常に複雑なものでした。そのため、特定の処理に機能を追加したつもりが、関連する別の処理にも悪影響を与え、想定していない箇所での動作の不具合を発生させることがありました。
本来、新機能の公開前には広範囲なテストを実施するべきではありますが、要員やコストの面からすべてのテストを行うことは現実的ではなく、一部を省略したテストを行うことが多くなります。また、競合他社との競争もあるため新機能の開発速度は上がり、テストの回数も増やさなければいけなくなるという矛盾が発生します。

【導入内容】オープンソースの自動テストツールを提案

WEBサービスの自動テストツールとして、 CodeceptJS をご提案しました。このツールを使用すると、自動的にWEBブラウザーの入力やボタン押下などの操作を準備したスクリプト通りに実施するため、テスト完了後に想定外の動作をした部分がまとめて確認できるようになります。
テストの方針は、「広く・浅くテストすることで、既存機能の意図しない不具合を検出する」としました。

 

今回のテスト自動化戦略

  1. 画面遷移図をもとに、商品ごとにすべての画面を通り、かつ「よく使われる操作」を洗い出す
  2. まずはシンプル、かつ「人気のある商品」からスクリプト化を行う
  3. 完成したスクリプトから、内部リリースの度に少しでも自動テストを実行し、いち早く重大な不具合が無いことを確認する
  4. 新機能の部分は手動でテストし、並行して自動化していく
  5. 徐々に対象となる商品や例外的なシナリオを追加し、自動テストの範囲を広げる
  6. パソコン向け(Chromeブラウザ)だけでなく、iPadを想定したWebkitブラウザによるテストも実施する

【効果】テスト自動化によって品質の見える化ができるように

このテストは不具合を見つけるというよりも、既存機能への悪影響が無いことを保証するテストですので、毎回たくさんの不具合を検出しているわけではありませんが、いくつかの「思わぬ」不具合を未然に予防できています。
テストに合格するという「品質の見える化」ができたことで開発者の負担も減り、人力でのテスト実行工数が削減されたことで開発効率も向上しました。
今回導入したテストツールはオープンソースのためツールライセンス購入費用等は発生せず、少しずつ自動化するという無理のないスケジュールが実現できました。

【まとめ】テストの自動化についてもお任せください

  • 少しずつ導入したテストシナリオも現在は23シナリオにまで増え、テストの範囲が全体的なものになりました
  • テストツールの導入だけでなく、WEBサービスの品質を測定・向上する様々なご提案を行います
  • 不具合が収束しない、テストの範囲や方法がわからないなどのご相談も承ります

関連サービス

CONTACT US

お問い合わせ

TOP