ユニットテストと機能テスト

ちょっと前になるけど、TL見てたら、@kyon_mm さんがこんなこと言ってるのを見つけた。

周りではあんまり機能テストって言葉を聞かないんだけど、気になったので調べてみた。

参考:ソフトウェアテスト標準用語集

機能テストの説明に"コンポーネントやシステムの"とあって、ユニットテストの説明に"コンポーネントテストのこと"とあるので、少なくとも同列の概念ではなさそう。
同じ資料に"非機能テスト"というものもあったので、それとの対比で考えると、機能テストは"機能"について担保するという観点でのテストと理解。
ユニットテストは、説明のとおり"コンポーネント"という単位(範囲?)でのテストかな。

その後のツイートでテストレベルとテストタイプというキーワードが出てたのでこちらも調べる。

  • テストレベル(test level)
    • 組織的に管理されるテスト作業のグループ。
    • テストレベルはプロジェクトの責任に対応する。
    • テストレベルの例には、コンポーネントテスト、統合テスト、システムテスト、受け入れテストがある。
  • テストタイプ(test type)
    • コンポーネントまたはシステムに相関する品質特性に向けたテスト活動の分類。
    • 各テストタイプは、たとえば信頼性テスト、有用性テスト、回帰テストなどのように特定のテストの目的にフォーカスしている。
    • テストタイプはひとつまたは複数のテストレベルまたはテストフェーズで行われる。

ユニットテストはテストレベルの一つで、機能テストはテストタイプの一つで良さそう。
"テストタイプはひとつまたは複数のテストレベルまたはテストフェーズで行われる"とあるから、ユニットテストかつ機能テストというのもあり得るってことだな。