テストレベルについて(単体テスト・統合テスト・システムテスト・受け入れテスト)

f:id:ryoutaku_jo:20190607022633p:plain

【結論】

・ソフトウェアのテストは、主に4種類のレベルに分類できる

・「単体テスト」は個々のプログラムが正常に動作するかテストし、「統合テスト」は複数のプログラムで構成された一つの機能が正常に動作するかテストする

・「システムテスト」は全ての機能が正常に動作するかを様々な観点でチェックするテスト。「受け入れテスト」はソフトウェアが要求水準を満たしているかユーザー側で確認するテスト。

【目次】

【本題】

テストのレベルについて

ソフトウェアのテストは、下記の4種類に分類することができます。

単体テスト

・統合テスト

システムテスト

・受け入れテスト

今回は、これらのテストについてまとめます。

単体テスト

単体テストとは、一つのプログラム単体が正常に動作しているかをテストするものです。

一つのプログラムとは、関数・メソッド・クラスなど、ひとまとまりで動作する最小単位を指します。

これから紹介するテストの中では、最も細かいチェックを行えます。

統合テスト

統合テストとは、複数のプログラムを組み合わせた機能が正常に動作するのかテストするものです。

先ほどの単体テストで、プログラム個々が正常に動作する事か確認できたとしても、それらを結合させた時にエラーが発生する場合があります。

統合テストでは、そういったエラーを未然に防ぐことが出来ます。

システムテスト

システムテストとは、ソフトウェア全体が正常に動作するかを様々な観点でテストするものです。

全ての機能を統合した時に起こる欠陥に焦点を合わせているので、実際の本番環境と同じ条件でテストを行います。

また、正常に動作するのかという機能性の他にも、ユーザビリティ・セキュリティ・パフォーマンス・可用性など、様々な観点でソフトウェアの動作を検証します。

受け入れテスト

受け入れテストとは、ソフトウェアが要求水準を満たしているかユーザー側で確認するテストです。

主にソフトウェア開発の発注元が、ソフトウェアの納品前に実行します。

実行する主体が違うだけで、テスト内容自体は、システムテストと遜色無い場合もあります。

参考情報

システムテストとは?開発段階のテストの流れと主な種類|発注成功のための知識が身に付く【発注ラウンジ】

テストレベル - Qiita

アプリ納品時に泣かないための受け入れテストの基礎知識 (1/3):Androidアプリ開発テスト入門(終) - @IT

単体テスト、結合テスト、システムテスト、受入テストの関係を理解する | まくまくいろいろノート

《今日の学習進捗(3年以内に10000時間に向けて)》

・今週はテストケース作成にかかりきりになっているが、作業の進め方がかなり効率が悪く時間が掛かり過ぎているように感じる。別プロジェクトを参考にアウトラインを作って、そこから細部の詰めているが、必要最小限のテストで済ますには、どこまでテストの粒度を細かくすべきか?どういったバグが混入することが想定されるか?などの判断が難しい。調べてみると、テストケース作成における体系的なノウハウはいくつかあったので、今回は間に合わないが、それらの知見を身につけて、次回以降の作業効率を高めて行きたい。

学習開始からの期間 :181日
今日までの合計時間:1750h
一日あたりの平均学習時間:9.7h
今日までに到達すべき目標時間:1653h
目標との解離:97h
「10,000時間」まで、

残り・・・「8250時間!」