UPSTARTSのぱみやすです

みなさんアプリWebサイトバグを発見したことはありますか?

もし、個人情報を取り扱う箇所などにバグがあった場合、信用に関わり経済的な損失に繋がってしまいます。

バグを出さないためには、用途に合わせてさまざまな種類のテスト(動作確認)をする必要があります。

なので、今回はソフトウェア開発で【よく使われているテストの種類】を紹介しようと思います!

4種類のテストの種類を紹介します!

・単体テスト、UT(Unit Test)

・結合テスト、IT(Integration Test)

・システムテスト、ST(System Test)

・受入テスト、UAT(User Acceptance Test)

では見ていきましょう!

単体テスト、UT(Unit Test)

単体テストとは、プログラムのクラスや関数といった小さな単位で行うテストのことを指します。

このため、個々の画面や機能で実施される動作を確認することが目的となります。

例えば、通販サイトの場合、表示機能検索機能といった機能を一つ一つ確認します。

画像の赤枠の部分を別々にテストを行います。

主なテスト内容

・設計書や仕様書通りに動作することを確認する(機能確認テスト)

・プログラムの構造に沿って、「命令」や「分岐」などが正しく実行されるかを確認する(制御フローテスト)

・データや変数が正しい順に行われているかを確認するテストなどがあります(データフローテスト)

単体テストでは基本的に、その画面内でできることはすべて確認する必要があります!

結合テスト、IT(Integration Test)

結合テストとは、単体テストで検証したプログラムを組み合わせて行うテストになります。

具体的な例を出すと

商品一覧ページの検索機能で「パソコン」と検索した場合、「正しくパソコンの画像やテキスト、料金が表示されているか」を確認します。

もう一つ例をあげると、買い物かごページでマウスを追加した場合、注文ページで「合計の料金は正しく表示されるか」を確認します。

なので、単体テストで確認したひとつの画面内で完結する内容については、省略することができます

主なテスト内容

・他の機能から必要な情報を取得できているかを確認する(状態遷移テスト)

・他の機能で変更を加えたデータが反映されているかを確認する

このように、結合テストでは単体テストで実施しなかった画面間や機能間の連携に問題がないかを中心に確認します!

システムテスト、ST(System Test)

システムテストは、システム開発の最終段階で行われることが多く、実際に使用される状況と同じ設定や環境でテストを行います。

ハードウェアも含めた全体を通したテストを行います。

またまた通販サイトを例に出すと、商品一覧ページから注文が完了しメールが送信されるまでの一連の流れを確認します。

システムテストでは最初から最後までの流れを確認するだけではなく下記の様な様々なテストがあります!

主なテスト内容

・修正・変更した後に,変更箇所が正しく動くかや新たな不具合が生まれていないかを確認する(回帰テスト)

・修正・変更を行った後に,新たな不具合が生まれていないかを確認する(デグレードチェックテスト)

・外部からの攻撃への対応や脆弱性が存在しないかを確認する(セキュリティテスト)

・ユーザーに対しての見やすさや使いやすさを確認する(ユーザビリティテスト)

・障害(バグ)が発生した場合に指定された機能が維持されていることを確認する(障害許容性テスト)

・処理能力が仕様を満たしているか確認する(性能テスト)

・長時間の連続稼働によって処理能力や稼働率に問題が生じないかを確認する(ロングランテスト)

・極端に高い負荷をかけた状況下での動作を確認する(負荷テスト)

システムテストは様々なテストがあります!

時間やコストはかかりますが、しっかり行うことでシステム全体の品質が向上し、運用開始後のメンテナンスが楽になります!

受入テスト、UAT(User Acceptance Test)

受入テストとは、納品されたシステムに対して、ユーザー企業側が、導入しても問題ないかを判定するためのテストです。

業務として利用できるシステムであるかなど、最終的な確認を行います。

主なテスト内容

・実際の操作環境下でシステムが正しく動くかを確認する(運用テスト)

・開発者以外の人が操作して,不具合がないことを確認する(アルファテスト)

・発売・リリース前の製品を一般ユーザーが操作して,不具合がないことを確認する(ベータテスト)

まとめ

はい、今回はソフトウェア開発で主に使用されているテストの種類を紹介しました。

今回紹介したものはV字モデル開発によく使われています!

会社や開発手法によってテストの種類は異なりますが、今回動画で紹介したものはよく使うので覚えておきましょう!

おすすめの記事