開発・Git・設計の用語一覧へ
このページの目次
開発・Git・設計初級図解あり

ソフトウェアテストとは?

読み方:ソフトウェアテスト

最終更新:2026/08/18

3秒でわかる

作ったものが仕様どおりに動くかを確かめる活動全般。単体・結合・E2Eと範囲の違う層を組み合わせ、壊れた箇所を早く安く見つけるために行います。

30秒図解

ソフトウェアテストは単体を厚く、結合を絞り、E2Eを少なく重ね、calc_feeの境界値0、101、負の値まで確かめる
テストピラミッドの層と、通常値・端数・ゼロ・負の値を使った境界テストを組み合わせます。

もう少し詳しく

どういうものか

ソフトウェアテストは、実装が意図どおりに動くかを確かめる活動の総称です。対象の範囲によって層に分かれます。

対象特徴
単体テスト関数クラス 1 つ速い。原因の場所がすぐ分かる
結合テスト複数モジュールや DB との接続組み合わせの不整合を捕まえる
E2E テストブラウザ操作を含む一連の流れ利用者に近いが遅く壊れやすい


数の比率は、下の層ほど多く上の層ほど少ないのが定石で、この形をテストピラミッドと呼びます。

なぜ必要か

バグは、見つかるのが遅いほど直す費用が上がります。書いた直後なら数分、本番で見つかれば調査、修正、再デプロイ、影響を受けた利用者への対応まで発生します。テストは、この発見時期を前倒しする投資です。

もう 1 つの効き目が、変更を怖がらなくなることです。テストが無いコードは、動いているという理由だけで誰も触れなくなり、少しずつ古びていきます。

具体例

import pytest from billing import calc_fee def test_通常の手数料は3パーセント(): assert calc_fee(1000) == 30 def test_1円未満は切り上げる(): assert calc_fee(101) == 4 # 3.03 -> 4 def test_0円なら0(): assert calc_fee(0) == 0 def test_負の金額は例外(): with pytest.raises(ValueError): calc_fee(-1)

境界となる値(0、1 円未満の端数、負の値)を並べている点が要点です。テスト名を日本語にすると、失敗したときの一覧がそのまま仕様の説明になります。

つまずきやすいところ

  • E2E テストばかり増やす — 実行に何分もかかり、通信の揺れで落ちるため、次第に誰も結果を見なくなります

  • 実装をなぞったテストを書く — 内部で呼ぶメソッドの回数を検証すると、リファクタのたびにテストが壊れます。見るのは外から観測できる振る舞いです

  • 落ちたテストを一時的に無効化して忘れる — 無効化には期限と理由を必ず残します

  • テストが無い既存コードに絶望する — 全部を一度に埋める必要はありません。バグを直すときに、そのバグを再現するテストを 1 本足す進め方で十分に増えます
  • 似た用語との違い

    用語意味
    デバッグ見つかった不具合の原因を追って直す作業
    テスト不具合があるかどうかを確かめる作業
    回帰テスト直した箇所以外が壊れていないかの再確認


    覚え方

    テストは「見つける」、デバッグは「直す」。まず落ちるテストで問題を固定してから直すと、直った証拠がその場で手に入ります。

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地ソフトウェアテスト開発・Git

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    Node.jsコースの全編を見る