ピンボール鬼武者

システム開発(総合テスト)とは?目的や流れ注意点も解説

システムテスト(総合テスト)とは、システムやソフトウェアを構築した際に、最終確認を行うテストのことです。

ユーザーに求められている機能(neng)や性能(neng)を満たしているかどうかを見極(ji)めることが目的です。当初計画していた仕様書どおりに、システムやソフトウェアが作(zuo)動することは、品(pin)質の確保、クライアントとの信(xin)頼関(guan)係構(gou)築のためにも重要です。

今回はシステムテストについて、目(mu)的や種類、流(liu)れなどを詳(xiang)しく解説すると共に、注意する点やテストの自動化(hua)についても触れていきます。

関連記事:

1.システムテスト(総合テスト)の目的や観点・種類

システム開(kai)発(fa)とは、端的に説(shuo)明(ming)すると業務を効率化(hua)させる仕(shi)組みの開(kai)発(fa)。

「システム開発(fa)」とひとくくりにされがちですが、その内容は「Web系(xi)」「オープン系(xi)」「汎用系(xi)」など、いくつかの種類にわかれています。

  • Web系:Web上で仕様するシステムやアプリ構築のためのシステム開発
  • オープン系:業務効率化ーに関するシステム開発
  • 汎用系:企業の基幹業務システム構築などの大型コンピューターを用いたシステム開発

それぞれの違いについてあまり気にする必要はありませんが、各(ge)々開(kai)発で求められる知識(shi)やスキルが異なるという点(dian)についてはイメージできるのではないでしょうか。

開発(fa)するシステムによりテストの内(nei)容に違いが生(sheng)じますが、ここでは一般的なシステムテストについてお伝えします。

1-1.システムテストの目的

システムテストは「単体テスト」「結合テスト」を経(jing)て、クライアントに納(na)品(pin)される前の最終(zhong)的(de)な総合テストです。開発したシステム全体が、要件定義の仕様を全て満たしているかどうかの確認が目的(de)です。

全ての機能がそろった状(zhuang)態で最(zui)終的(de)に

・要(yao)件を満たしているか

・機能(neng)間の連携はうまくできているか

・運用・保守の現実的に問題ないか

などを総合(he)的に評価(jia)します。

図:「開発」から「テスト」、「リリース」までの一(yi)連の流(liu)れにおける開発工程とテスト工程の対応関(guan)係を表したV字モデル

出典:

1-2.システムテストの観点

前述のとおり、要(yao)件(jian)定義で定めた仕(shi)様が網羅(luo)されているかどうかを検証することが目的(de)です。そのため、発注者側(ce)の要(yao)求をまとめた要(yao)件(jian)定義書の内(nei)容が全(quan)て満たされているかどうかが重要(yao)な観点となります。

システムテスト以(yi)前に行われる、単体テストや結(jie)合(he)(he)テストでは、システムを構成する個々のプログラムに着(zhe)目してテストを実(shi)施しますが、システムテストは実(shi)際に動作したときに予測される総合(he)(he)的な問題を検出します。リリース前や機能改修時の最後の砦となる、とても重要な意(yi)味(wei)をもつものです。

多くの場(chang)合(he)、ハードウェア・OS・ミドルウェア・アプリケーションが幾(ji)重にも層をなして構成されており、互いに連動しています。そのため、全てのコンポーネントが必要な要件を満(man)たすのは、非常にハードルが高いともいえます。

1-3.システムテストの種類

システムテストにはいくつか種類があります。ここでは主な5つのテストについてご紹(shao)介(jie)します。

①機能テスト

要件定義(yi)に基づき、本番環境と同じ状態(tai)で要件を満たしているか否かを確認するテスト。機(ji)能要件どおりにシステムが動作するかの確認はもちろん、追(zhui)加・修正した機(ji)能も漏(lou)れなく対応(ying)していることをチェックします。

②性能テスト

テスト対象の性能要件に基(ji)づき、システムのパフォーマンス(時間効率・資(zi)源効率)を評価します。

③ユーザビリティテスト

製品の操作性・学習性・見やすさ・理(li)解しやすさ・満足度といったユーザーの求める製品であるかどうかを確認。「使い方がわかりやすく誰でも簡単に使える」ことがポイントです。

④セキュリティテスト

仕(shi)様(yang)書(shu)に明記されている機(ji)能が、仕(shi)様(yang)書(shu)通り作動してセキュリティが保たれているかを確認するテスト。サーバーやシステム、Webサイトの不(bu)具合や欠陥(xian)を見(jian)つけ出します。

この欠陥を見落(luo)とすと、サイバー攻(gong)撃や情報漏洩(xie)、システムダウンなど企業の社会的信用性(xing)にも関わります。万が一、欠陥(バグ)が見つかった場合は、すぐに対策を講じる必(bi)要があります。

⑤回帰テスト

システムの改修(xiu)をした場合、それに伴って変更していない箇所に新たな不具合が発生していないか確(que)(que)認(ren)するテスト。変更が加(jia)わるたびに、機能(neng)テスト・非機能(neng)テストを実行して確(que)(que)認(ren)する必(bi)要(yao)があります。

関連記事:

2.システムテスト(総合テスト)の流れと期間

システムテストでの進捗(bu)の遅れは、製品(pin)リリースにも影響を与(yu)え、プロジェクト全体(ti)の進捗(bu)に関わります。そこでシステムテストは、一連の工程を計画的に定められた期間で行うことが重要です。

2-1.システムテストの工程(流れ)

ここでは、システムテストの一(yi)般的な流(liu)れについてご紹(shao)介します。

①計画書の作成

全体(ti)の概要をまとめて「計画書(shu)」を作成。

何のためにテストを行うのか、目的や対象(xiang)範囲、テスト環境、実施(shi)方(fang)法、予(yu)定など全体の方(fang)向性をまとめて明(ming)記します。

②環境構築

テストを実施(shi)する環境(jing)は、原則として本(ben)番と同様。

データも本番と同じものを用(yong)意し、想定外の不具(ju)合や動(dong)作がないかをチェックします。

③テスト項目作成

実際に行(xing)うシステムテストの具体的な項(xiang)目を作成。

誰がどのテストを行うか、テストをクリアする評(ping)価基準(zhun)等も決(jue)定しておきます。

④データ・手順準備

テストの実(shi)施手順や内(nei)容、実(shi)施用のテストデータを作成。

誰が同じ水準で実行できるよう、具体的で再(zai)現性(xing)のある記述をしていきます。

テストの自動(dong)化(hua)を視(shi)野にいれている場合は、この工程でテストスクリプトの作成も実(shi)施します。

⑤実行

準備したテスト環境下で、実(shi)行します。テストケースに基づき操作(zuo)し、期待値の確(que)認と画面キャプチャや結果を確(que)認できるものを取得。テスト工程で確(que)認した結果は、全て記(ji)録に残します。

⑦テスト内容の評価

システムテスト全体の計画がうまくいかなかったり、機能しなかったりした場合(he)、インシデント報告(欠陥報告)やその動作原(yuan)因(yin)を探り、特定します。システムの修(xiu)正が必要となったときは、追加(jia)修(xiu)正の影響範囲となるテストケースをもう一度行います。

2-2.システムテストの期間

システムテストをスムーズに行うことは、プロジェクトの進捗に関わります。そのため、ある程度目(mu)安となる期間があるので参考にしてみてください。

・単体テスト:約2週間~1ヶ月

ひとつずつプログラムに不(bu)具合がないかを確認するのが単体テスト。内容(rong)によりますが、およそ2週間から1ヶ月で行(xing)います。

・結合テスト:約2週間

単体(ti)テストの後、それぞれのプログラムの連携を確認する「結(jie)合テスト」。複数のプログラムの一連の動きをチェックします。

・システムテスト(総合テスト):約1週間

それぞれの動作確認(ren)が完(wan)了したら「システムテスト」に移ります。実際の使用環境とほぼ同じ条件(jian)で実施。

・運用テスト:約1週間

最終段階としてクライアント側の作業環境で正しく動くかを確(que)認(ren)(ren)する「運(yun)用テスト」。動作の確(que)認(ren)(ren)はもちろん、デザインや使いやすさなども確(que)認(ren)(ren)します。

これら全てのテストをクリアしたら、システム移行(xing)が行(xing)われ納品(pin)となります。

なお、テストの期間はシステムの規模や会社によって異なりますので、事前(qian)にしっかり情報を集(ji)めることが重要です。

関連記事:

3.システムテスト(総合テスト)の注意点

実(shi)際にテストを行う場(chang)合に注(zhu)意しておきたい点について以(yi)下にご紹介します。

3-1.必要なものを事前に洗い出す

機能によっては、作成する機能以外にも作らなくてはいけないものもあります。

・テスト用モジュール
・テストデータを作成するためのツール
・テスト結果検証ツール

本来、要件定(ding)義(yi)や基本設(she)計の段(duan)階で洗い出すものですが、検討が漏れる可能性もあります。テスト実施(shi)の直(zhi)前(qian)にツールが必要だと気づいたのでは遅すぎます。

テスト計画の段(duan)階(jie)であれば、まだスケジュールにゆとりがある場合も多いので、事(shi)前に必要なツールについては今一度しっかり検討しておくとよいでしょう。

3-2.不具合の管理を徹底する

規模の大きなプロジェクトでは不具(ju)合(バグ)が放(fang)置されてしまう可(ke)能性が高くなります。

これは、不具合管理(li)(課題(ti)管理(li))がうまく機能していないことに起因します。

不具合管(guan)理台帳への記載漏れがないように徹底すること、記載した不具合は最後(hou)までフォローする体制が重要です。

3-3.Web系のテストで注意すべきポイント

Webサイトは「Webサーバー」と「ブラウザ」を使用します。

HTMLページ、TCP/IP通信、インターネット接(jie)続、実行されるアプリケーション(Webページ側・サーバー側)、ファイアウォールなど、相(xiang)互作用を考慮する必要があります。

また、Web系にはさまざまなバージョンのサーバーとブラウザがあります。それぞれに接続速度の変動、急速なアップデート、複数の標準とプロトコルの点など、重(zhong)要な違いも含まれています。

市場の動(dong)きに伴いスピードと変化が激しいため、システムテストの最(zui)終結果は継(ji)続的な取(qu)り組みになる可能(neng)性があるでしょう。

関連記事:

4.システムテスト自動化とは?

システム開発(fa)の中でもWeb系(xi)の開発(fa)は、不特定多数の外部(bu)ユーザーのためのシステムを開発(fa)するもの。

そのため、常に変化するWebの世界で快適(shi)な閲(yue)覧(lan)環(huan)境を構築していかなければなりません。

開発テストでは「テストケースの設(she)計(ji)」「テストの実施と結果(guo)の確認」「テストの進捗管(guan)理」「レポートの作(zuo)成」などの作(zuo)業も含まれ、非常(chang)に煩雑なものになります。

そこで、これらの作業の一部(bu)、場合によっては全てをシステムが制御するのが「テスト自(zi)動化」です。

4-1.システムテスト自動化のメリット

テスト自動化(hua)によるメリットは次の3つ。

  1. 問題点の早期発見
  2. リソースの問題に左右されない
  3. 人為的なミスを防ぐ

テストの自動化(hua)により問題点や不(bu)具(ju)合を早期発見でき、全体の時間短(duan)縮、全体の効率があがるでしょう。人的(de)リソース不(bu)足にも対応(ying)でき、手(shou)動では不(bu)可(ke)能な大規模(mo)なテストや大量データを扱(xi)えます。

また、人による作(zuo)業(ye)はどうしてもミスが発生してしまうもの。自動化を適用すれば、システムが正誤を判断し、人為的エラーを防(fang)ぐことが可能です。

4-2.システムテスト自動化のデメリット

一方で、自動化によりデメリットは次の3つ。

  1. コスト削減のみに走り逆にコスト肥大化
  2. 品質向上を狙った結果、形だけになってしまう
  3. 運用保守体制の抜け落ち

テストを自(zi)動化するとコスト削(xue)減につながると勘(kan)違いしている例も少なくありません。

初期コストは、テストコードの作(zuo)成やツールを使いこなすための学習(xi)コストなど、手動(dong)のケースに比(bi)べて高くなりがちです。コスト削減だけを目(mu)的にすると、逆(ni)にコストの肥大につながる可能性も。

また注意(yi)したいのは、自動(dong)化できるのは、すでにテスト設計済みのテスト内容のみという点。テスト設計とテスト実行を並(bing)行して行う探索的テストなどは自動(dong)化できません。

自動(dong)化の際は、自動(dong)化に向いているテスト・向かないテストの見極めがポイントになるでしょう。

DeFactoryには、事業目線でプロダクト開発を進められるマネージャーや、経(jing)験豊富なエンジニアが集まっています。

プロダクト開発における計画(hua)(要件定義(yi))までであれば最(zui)短(duan)5営業日(ri)で、計画(hua)〜実(shi)装〜テストのサイクルであれば最(zui)短(duan)14営業日(ri)で行なうことが可能です。

開発(fa)からテストまで、高品質なプロダクトをスピーディーに開発(fa)したいとお考えの場合(he)は、ぜひDeFactoryにください。

5.まとめ:「システム開発」に関する支援を承ります

システムテストは、開発側の最終テストということもあり、検証(zheng)する観点(dian)も多くなります。

機能(neng)面ではない部分(fen)への検証テストも多(duo)いため、苦手意識をもつエンジニアも多(duo)いもの。システムテストを実施する際には、機能(neng)要件のみならず非機能(neng)要件にもしっかり対応できるテストを検討していきましょう。

DeFactoryでは、アイディア着想、ユーザーヒアリング、テストマーケティング、アジャイル・MVP開発と、プロダクト開発における立(li)ち上げ支援を全力サポートいたします。 

また、経験豊富なエンジニアと事業開発経験者で、開発だけでなく事業設計から「一気(qi)通貫」した伴走を行います。 

事業開(kai)発(fa)や立ち上げを検(jian)討しているご担当者様がいらっしゃいましたら、問い合わせページから資料請求や無料相談などお気(qi)軽(qing)にご連絡くださいませ。

【DeFactoryの3つの特(te)徴】

・最短14営業日程度で納品
・事業構築力、スピード、高品質を実現する体(ti)制(zhi)

新規事業におけるプロダクト開発・
プロダクトマネジメントにお悩みの⽅へ

事業開発経験が豊富にある担当者が、解決策をご提案いたします︕
お気軽(qing)にお問い合(he)わせください。

この記事を書(shu)いた人(ren)
DeFactory代表取締役 事業開発、デジタルマーケティング(検索領域)、グロースハックが得意領域です。 事業の壁打ちのご相談お受けしております!

新規事業におけるプロダクト開発・
プロダクトマネジメントにお悩みの⽅へ

事業開発経験が豊富にある担当者が、解決策をご提案いたします︕
お気軽(qing)にお問い合わせください。