システム開発において、さまざまなテストが実施されます。単体テストや結合テスト、システムテスト、受入テストをおこなうことでシステムをリリースしたあと、問題が発生するリスクの軽減が可能です。

しかし、テスト期間が思った以上に長引いてしまうと納期に遅れるリスクがあるのです。この記事では、システム開発において実施するべきテストや、テスト期間の見積もり方、遅延する要因などを詳しく説明します。

システム開発で実施される4つのテスト

システム開発で実施される4つのテスト

システム開発で実施されるテストには次の4つが挙げられます。

  • 単体テスト
  • 結合テスト
  • システムテスト
  • 受け入れテスト

1.単体テスト

単体テストとは、ユニットテストともよばれシステムテストにおける小さなユニットごとに、従来の機能を果たしているかどうかを確認するテストです。メソッドや関数などがユニットとなることが一般的であり、コードを作成するときをはじめテストにおける早い段階でおこなわれます。

モジュールが結合される前の段階でおこなうため、不具合の原因を特定しやすく修正コストを下げやすくなる点が特徴です。

2.結合テスト

結合テストとは、単体テストのあとにおこなうことが前提であり、単体テストをクリアしたシステムや機能と連動させることにより動作検証をするテストです。事前にテスト仕様書を作成しておいて、テスト項目もあらかじめ決めておきます。

結合テストでは、思った通りに動作するかどうかを確認するだけでなく、モジュールの組み合わせが正しいのか、仕様書通りに機能しているかなど確認するべき要素が複数ある点が特徴です。

3.システムテスト

システムテストとは、実際に運用する環境に近い状態でシステム全体で動作検証をおこなうテストです。

ソフトウェアやシステムを構築した時点でおこなうことが一般的であり、必要な機能や性能を満たしているかどうかを確認します。システムテストの精度を上げることによって、製品の品質維持につながる重要なテストです。

4.受け入れテスト

受け入れテストとは、仕様書や要件定義書に記載されている内容通りに進められているかどうかを確認するテストです。システムテストが終わって納品する環境でチェックをして、不具合がないかどうかを確認します。

受け入れテストはリリース前におこなうことが一般的であり、重要なテストです。そのため、受け入れテストのみ専門家に依頼するケースも少なくありません。

システムテストにかかる期間の目安とは?

システムテストにかかる期間の目安とは?

プログラミングのあとは、運用まで上記のように、単体テストや結合テスト、システムテスト、受入テストなどさまざまなシステムテストが必要です。単体テストは、プログラムを1つずつ問題がないかどうか確認するため、2週間から長い場合は1ヶ月かかる場合があります。

単体テストのあとに進められる結合テストは、複数のプログラムをチェックすることから2週間前後必要であることが一般的です。 単体テストや複合テストが終わった時点でシステムテストをおこないます。

システムテストは実際の環境に近い状態でおこなわれ、最終的にクライアントの作業環境で運用テストをそれぞれ1週間前後でおこないます。そのため、すべてのテストを含めると6週間から2ヶ月かかることが一般的です。

システムテストの期間を見積もる3つの方法

システムテストの期間を見積もる3つの方法

システムテストではフェーズごとに確認が必要であり、テスト期間を見積もるのは容易ではありません。しかし、精度を高めるための見積もりをする方法は存在します。

システムテストの期間を見積もるためには次の方法が挙げられます。

  • トップダウン見積
  • パラメトリック見積
  • 工数積上

それぞれの見積もり方法に特徴があり、効果的な方法を選ぶことが必要です。

1.トップダウン見積

トップダウン見積とはこれまでに似たシステムテストを参考にして、それぞれのフェーズにおける期間を見積もりする方法です。簡単に実施できますが、正確にできない場合があります。そのため、大規模や複雑なテストにおいては、トップダウン見積もりは向いていません。

過去に同じようなシステムテストをしたことがない場合は、トップダウン見積もりをできない可能性があるので注意が必要です。

2.パラメトリック見積

パラメトリック見積とはこれまで行ったシステムテストにおけるデータを参考に、パラメーターを設定してかかる時間を計算することによって見積もりをする方法です。

これまでの開発に1週間かかったプロジェクトと同じ内容でプロジェクトを5個開発する場合は、1週間×5個で5週間かかるといった見積もりになります。トップダウンと同じように過去のデータを基準としますが、パラメトリック見積は過去のデータを活用することから精度を高められることが一般的です。

3.工数積上

工数積上とは、システムテストにおけるプロセスをタスクごとに分割して、それぞれのタスクごとに作業時間を割り出す見積もり方法です。割り出したタスクを積み重ねることにより、最終的にシステムテストにおける期間を計算します。

WBS(Work Breakdown Structure)を基準とすることから、トップダウン見積やパラメトリック見積と比較をしてより精度の高い見積ができる方法です。

システムテストにおける期間が遅延する4つの要因

システムテストにおける期間が遅延する4つの要因

システムテストにおける期間が遅延する要因として次の4つがかかります。

  • 見積精度に関するミス
  • 進捗管理に関するミス
  • アサインに関するミス
  • 外注管理に関するミス

1.見積精度に関するミス

システムテストにおいて期間が遅延する要因として、見積精度に関するミスが挙げられます。プロジェクトの規模が大きくなれば、見積もりの精度に原因があることによる遅延が起こりがちです。

そのため、規模が大きければ大きいほど、見積もりのミスには注意が必要です。専門の担当者に依頼したり、ほかの担当者のレビューを入れるなど精度を上げることが求められます。

2.進捗管理に関するミス

進捗管理に関するミスもシステムテストの期間が遅延する要因になります。そのため、遅延が起きた時点で早急に把握できるような環境作りが必要です。

プロダクトマネージャーが定期的にそれぞれの担当者の進捗状況を把握することで、適切なタイミングで対策をするようにしましょう。場合によっては、担当者の配置転換や交代などが求められる場合があります。

3.アサインに関するミス

十分な知識や技術のない担当者をアサインすることで、システムテストの遅延につながる可能性があります。そのため、担当者をアサインする前に1人ひとりの技術や知識を十分に把握したうえでアサインすることが必要です。

途中で担当者を変更すると、引き継ぎなどでより時間がかかる可能性があります。また、伝達ミスが起きる場合もあるため、出来る限り適切な担当者をアサインすることが求められます。

4.外注管理に関するミス

プロジェクトの一部またはすべての工程を外部委託する場合があります。普段の進捗状況を把握できないため、遅延が起きた時点で把握できるようにコミュニケーションをとることが重要です。

コミュニケーションを取りづらい場合もあるため、実績が豊富でノウハウを十分に持った外注先に依頼することが重要です。または、一部の業務だけを外注したり一緒に業務を進めたりするなどの対策が必要でしょう。

システムテストでよくある3つの質問

システムテストでよくある3つの質問

システムテストをするにあたって疑問に感じることは多いでしょう。その中でもよくある質問として、次の3つが挙げられます。

  • システムの開発全体にかかる期間の目安は?
  • システムテストの手順は?
  • システムテストに期間をかけて実施する目的とは?

システム開発における期間やテストの手順、期間などについて質問が多いことが特徴です。

質問1.システムの開発全体にかかる期間の目安は?

システムの開発全体にかかる期間ですが、システムの規模や内容、目的さらに仕様書が出来上がるまでに期間によって大幅に異なることが一般的です。そのため、依頼側と開発会社が十分にコミュニケーションを取り合い協力して進める必要があります。

さらに、意思決定が遅くなるとその分だけ開発期間が長くなるため前もってどのようなシステムテストにしたいのか、目的や方法などを明確にしておくことが重要です。

質問2.システムテストの手順は?

システムテストの手順は、テスト計画や仕様書を作成して、環境を構築しシステムテストをおこなうことが一般的です。テスト計画にはテストの内容や方針、実施方法、対象範囲などを含めます。さらに、仕様書はテスト計画を基準として実際におこなうテストの内容を設定します。

仕様書が出来上がった時点ではじめて環境の構築をおこなうことが一般的です。システム環境を進める環境が出来上がった時点でシステムテストを開始します。

質問3.システムテストに期間をかけて実施する目的とは?

システムテストに期間をかけて実施する目的は、顧客がシステムやソフトウェアを使い始めたときに不具合を最小限にすることやユーザビリティを高めることです。ユニットごとやシステム全体などさまざまな方法でテストをすることで不具合の出る確率を減らし、ユーザー満足度を上げることにつながります。

システムテストが十分でない場合不具合が発生する確率が高まり、ユーザーの信頼を失うことになります。

まとめ

まとめ

システムテストの期間は、システムの規模や目的、仕様書を作成する機関、最終的な判断をするタイミングなどさまざまな要素によって変わります。十分なテストをおこなわないと、不具合が起きる可能性が高くなったりユーザビリティが下がったりすることから信頼を失いやすくなるのです。

納期内に間に合わせることも重要であり、システムテストの内容を明確にしたうえで期間を設定するようにしましょう。