0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はな丸's QAAdvent Calendar 2024

Day 18

「結合テストは死んだのか?」

Last updated at Posted at 2024-12-02

今回は、「結合テストは死んだのか?」というテーマになります。
エッセイですね。

X にて、以下のリクエストをいただきましたので、書いてみます。
image.png
https://x.com/akiyama924/status/1863367270346711237

Web系の結合テストとは何か

まずはこちらのモデルをどうぞ。
Wmodelそとむけ.gif

これは、あるSaaS製品を持つ開発チームで運用している、現行のWモデルです。
単体テスト、結合テスト(インテグレーションテスト)、
システムインテグレーションテスト、などの括りとはちょっと違っています。

通常のWモデルであれば、いろいろな呼び方はあれど、
これらのテストレベルは一般的ですが、
Web系は、OSやブラウザなど、プラットフォームが、他でテストされていて、
基本的に動作が担保されたものを使います。
ですので、この部分のテストはしないのが通常です。
(ブラウザのコンパチビリティテストはもちろんありますが。)

このため、OSI参照モデルで言うところの、アプリケーション層のテストに
集中できるという特性があります。
また、ブランチをマージする、という概念で、ローカル環境(エンジニアのPC)で
行うテストが単体テストと言えますが、単体テストと言えどもフィーチャーなので、
テストの範囲が組み込み系で行う単体テストのイメージよりは広くなります。
また、ここで行うローカルのテストは、結局製品全体が開発したコードとマージされた
ブランチで行うので、同時に結合テストと同様の環境でテストすることになります。

こうした事情で考えると、確かに、結合テストと呼べるものは、少なくとも、
Web製品開発では主流とは言えないと思っています。普段のテストに
包括されているイメージです。

それでは、結合テストは死んだのか?

もしWeb製品の開発現場で結合テストをやっているところがあるとしたら、
相当な大規模のウォーターフォール開発だったり、古くからある企業などのように
思えますが、有名なショッピングサイトを持つ会社の開発においては、結合テスト、
かつ、システムインテグレーションテストを行った例がありました。
例えば、決済部分とサービス部分が、組織的にも分かれたチームで
開発された場合です。

ここでも、明確に結合テスト、という位置づけではなく、テスト、という括りでした。
実際に行っていたのは、結合テストが含まれたシステムインテグレーションテスト
でしたが、「結合テスト」という認識でのコミュニケーションはしておらず、
結合テストの概念は、Web製品開発において、一般的な項目、というわけでは
なさそうです。

まとめ

ただし、結合テストで何をテストするかは、知っておくとテストセットを構成するのに
有利で、この辺の認識があいまいな状態でテストセットを組むのと、
知っていて作る場合とでは、テストの目的や性能、構成の抜け漏れなどに
差が出てくると考えています。

ですので、個人的な見解としては、「知識として知っておくべき」と思っています。

用語解説

テストレベル(JSTQB)

具体的にインスタンス化したテストプロセス。
https://glossary.istqb.org/ja_JP/term/test-level

OSI参照モデル

コンピューターネットワークのプロトコルについて、7つの層に分類したもの。
https://ja.wikipedia.org/wiki/OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?