最近、修士プログラムのソフトウェアエンジニアリングコースの最終試験を受けましたが、試験の質問の1つは次のとおりです。
Unit Testing is considered:
a. White-box Testing
b. Black-box Testing
c. Either
7年間のソフトウェア開発経験の中で、ユニットテストは常にホワイトボックスアプローチを採用してきました。テスターは、テストを作成する間、常にユニットの実装について完全な知識を持っています。ブラックボックステストは、統合、システム、および受け入れテストという形で常に後になります。
ただし、(教授によると)試験に対する正解は、単体テストはホワイトボックステストまたはブラックボックステストのいずれかであるということです。
私はいくつかの調査を行いましたが、多くの場合、「ブラックボックスユニットテスト」は、コードが作成される前にユニットテストが記述されるテストファーストアプローチを記述するために使用されているようです。しかし、私の意見では、これはまだホワイトボックステストです。実装はまだ存在していませんが、テストを書いている人は一般に、ソースコードの実装方法についてかなり良い考えを持っています。
ブラックボックスユニットテストのしくみ(本当にそうである場合)とホワイトボックスユニットテストとの違いを誰かに説明してもらえますか?
While the implementation does not yet exist, whoever is writing the test generally has a pretty good idea about how the source code is going to be implemented.
-はい、しかしテスト自体はしません。 ホワイトボックステストとは、変数の値など、メソッドまたはクラスの内部で何かをテストすることを意味します。テスト作成者がテスト中のコードがどのように見えるかを知っているという意味ではありません。