ソフトウェアテストは単体テスト、結合テスト、システムテスト、受入テストと段階的に実施されます。これらを十分に行わないとバグや不具合を残したまま本稼働してしまうリスクが生じるため重要な作業です。ここでは各テストの目的やできるだけ時間とコストをかけずに効率よく行うための方法や注意点についてまとめました。
正常に動作するかモジュールごとにテストして不具合の修正を行うことが単体テストの目的です。漏れのないテスト仕様書を作成することがポイントでテストケースを増やすとコスト高になるためバランスに注意します。
単体テスト後の各モジュールを組み合わせ、実際に動作する状態に近づけた中で問題がないか確認し発見された不具合を取り除くのが結合テストの目的。組み合わせによっては工数が増えるので余裕を持った計画が必要です。
プログラムとハードウェアを合わせシステム全体として要件を満たしているか検証するのがシステムテストです。バグや不具合発見より本番環境での動作に重点が置かれ、高負荷をかけたり使い勝手も含めチェックを行います。
ソフトウェアテストの悩みは、そのほとんどが「品質・コスト・納期(QCD)」に関わる課題です。しかも早急に対応が必要なことが多いので、QCDの課題解決に長年携わってきた、実績の豊富な第三者検証会社に依頼するのがベター。このサイトでは、「テスト対象別」におすすめの3社を詳しく紹介しています。ぜひ以下のボタンからチェックしてみてください。
テスト最終工程で行われます。システム発注側が要件通りに動作するかどうか確認し、納品の可否を判定。実際の業務で支障なく利用できるか確認するのが目的で、効率を上げるには受け入れ基準を決めておくことが重要です。
対象となるソフトウェアが問題なく意図した通りに動作するかを検証することを指します。ソフトウェア単体だけでなく他の製品などと組み合わせた検証を行うこともあり、不具合の早期発見により手戻りの防止に繋がります。
通常時やピーク時に想定できる最大限の負荷をシステムにかけた場合、仕様通りに動作するかを確認するためのテストをロードテストと呼びます。現実的にシステムがどの程度の処理能力があるか図る目的で行われるテストです。
ソフトウェアにおける機能とはどう動作するかではなく何をするかということ。機能テストはテスト対象が求められている仕様を満たしているかを検証するもので、システムテストの一つとして実施されることが多くあります。
PMOとは企業・組織でプロジェクトマネジメントの支援を横断的に行う部門や構造システムのこと。特にQ(品質)、C(コスト)、D(納期)の3つを重視し、プロジェクトの成功を目標とした運営と管理を行います。
E2Eとは「End to End」の頭文字を採ったものですが、E2Eテストとは、文字通り、ソフトウェア・システムの実際のユーザーの視点に立ちながら、ソフトウェアに不具合がないか「端から端まで」検証するために行われるテストです。
システムおよびソフトウェアのデータ処理スピード等が、ユーザーが求める水準にあるかどうかを評価・確認するためのテストがパフォーマンステストです。負荷テスト、ロードテスト、ソークテストなど、パフォーマンステストには複数の種類があります。
スモークテストでは、ソフトウェア・システムのごくごく基本的な動作を検証します。プログラムの細部を検証するユニットテスト等を行う前の段階で、予備的なテストとして行われるテストです。
リグレッションテストとは、プログラムを変更した際に他の機能などに影響が及ぼされていないかどうかを確認するテストのことです。全範囲だけではなく1か所のみに絞ってテストされることもあり、ツールで自動化することも可能です。
WEBサイトやアプリの使い勝手を改善するため、実際にユーザーに制作物を使ってもらって行われるテストのことをユーザビリティテストと言います。ユーザー目線で課題を発見したり、既存サイト・アプリとの比較を行ったりするのが目的です。
ロードテストではシステムに対して要求を実行し、特定レベルの同時要求でシステムの機能が働くかどうかを確認します。ボリュームテストと呼ばれることもあり、バグ発見やソフトウェアの拡張性の向上に繋がります。
トップダウンテストは複数のモジュールを組合わせた「結合テスト」の中でも、上位モジュールから下位モジュールへとテストしていく流れを言います。下位モジュールが未完成の場合には「スタブ」という仮のモジュールを使います。
ボトムアップテストは最下位から上位への流れでシステム内のモジュールをテストしていく手法です。上位モジュールが未完成なら「ドライバ」と呼ばれる代替モジュールを使用し、開発とテストを並行して同時に行うことができます。
システム構造の中間からテストを開始し、徐々に上位・下位へとテスト範囲を広げていくテスト手法です。トップダウン・ボトムアップテストのメリットをどちらもバランスよく活かせるのが特徴ですが、手間がかかりやすい点もあります。
ソフトウェアやシステムを構成するモジュールを全て一挙に結合し、動作を検証する手法です。他のテストと比べて作業量が少ない点がメリットですが、不具合の原因を究明するのが難しく、品質低下に繋がる可能性があるのが注意点です。
システムの内部構造を考慮せず、インプット・アウトプットのみに着目してテスト対象の振る舞いを確認するテスト手法です。ユーザーインターフェースの不具合や使用感を確認しやすい反面、不具合が見逃されるリスクもあります。
システムの内部構造を理解した上で、ロジックや制御の流れを単体テストで実施する手法です。例外処理やプログラムのミスがないか確認しやすく、不具合の早期発見に繋がります。ただし、ユーザーのニースまでは把握できません。
事前のテスト計画を必要としない場当たり的に行われるテストのことをモンキーテストといいます。このテストの目的はランダムに動作を検証することで、意外なバグを検出すること。テストケースが必要なテストと組み合わせることでソフトウェアの品質向上を目指せます。
ソフトウェアの仕様に理解のあるテスターが事前にテスト計画を用意せずに行うテストのことをいいます。決まったルールがなく、テスターの知識・経験に基づいて直感的に行われることがポイントです。開発プロジェクトのあらゆる段階で実施されます。
テストケースは用意せずにテストの目的だけを設定して実施するテストです。テスターはテストの設計・実行・記録を同時に繰り返し行うため、高度なスキルが求められます。記述式テストの準備時間がない場合やプロジェクトの最終段階で念押ししたい場合に有効です。
ユーザーが使用する場面や動作を想定したシナリオを作成して、それに沿ってテストを行う方法です。システムの内部構造は考えずに、ユーザー視点に立ったシナリオ作成が求められます。ユーザーの満足度に繋がる問題点を効率的に発見することが目的です。
経験ベーステストは担当者の経験に基づいてテストをおこないます。過去の経験から欠陥が起こりやすいところを予測してテストを行う「エラー推測」やチェックリストを使用する「チェックリストベースドテスト」、テストの設計、実行、記録を同時に行う「探索的テスト」の3つの技法があります。時間がないときでも実施しやすいテストです。
経済を支え続ける産業製品や、IoTとして進化する家電・自動車。
ARやVRなど新たな技術でさらに加速していくエンタメ分野。
仮想通貨の登場や貯金→投資シフトで市場規模が拡大するFintechの3つから、
それぞれおすすめの検証会社をご紹介しています。
1995年の創業以来、1,200件以上のテスト実績を持ち、豊富な経験で製品の品質向上を支援。テストだけでなく、IoT機器の分野でも改善提案も対応。
医療機器/電子工学機器/スマートホームデバイス/自動車・車載ソフトウェア/OA機器/産業用ロボット
機能検証だけでなく、UIUX・キャラクター性能バランス・クエスト難易度・ランダム要素の公平性などユーザー視点でフィードバック。
ゲーム開発/マンガアプリ/ライブ配信サービス/VR/イラスト・アニメーション/WEBサイト
生保会社出身や損保系システム検証経験者など、同業界内の知識を持つエンジニアが多く在籍するほか、脆弱性診断やペネトレーションテストも依頼可能。
キャッシュレス決裁サービス/金融商品取引/会計ツール/不動産投資/金融システム開発・保守