ソフトには色々なテストがあります。単体テスト、結合テスト、・・・。日本語だと単体検査とか単体試験と書きますが、「検査」なんでしょうか「試験」なんでしょうか?
テストの日本語訳を調べてみると 試験・検査と出てくるので、どちらでも同じような気もします。
でも試験と検査は微妙に違うんですよね。
入学試験や入社試験とはいいますが、入学検査や入社検査とはいいません。
服装検査とはいいますが、服装試験とはいいません。
検査というのは(何らかの基準に照らして)異状や悪い所がないかどうか調べること。 校則に服装の規定があってそれに反していないかを検査するわけですね。
試験というのはある物事の性質や性能などをためしてみること。
化学の試験などは試してみないと結果がわからないこともあります。
試験の意味を調べると「物の性質や力などをためすこと、または検査すること」と検査も含んでいるので、仕様が決まっていて、仕様を満たすか確認するのが「検査」、検査も行った上で、さらに仕様にも載っていない所まで確認するのが「試験」かなと思いました。
そう考えるとユニットテストは設計通りに動いているか確認しているので単体検査。
開発者が「出来たよ」って言ってリリースしたソフトを「本当に正しく動いてる?」と(仕様に書いてあること+書いてないことも)試してみるのが試験(総合試験とか機能試験、受入れ試験)かなと思いました。
以前、テストの仕様書に「○○検査」「○○試験」を混在させていたら、上長から「どちらかに統一しろ」と言われて違いを考えてみました。
皆さんはどちらを使われているのでしょうか?
追記1:Facebookで秋山さんから「ソフトウェア開発のいう専門領域における専門用語としてのテスト」なので「テストの仕様を記載したものなら「○○テスト仕様書」に統一するのが良いと思います。」とご指摘を頂きました。
追記2:Facebookで辰巳さんから以下のコメントを頂きました。試験の一部に検査があるのかと思っていましたがが勘違いで、検査の一部に試験があるようです。
勉強になります。ありがとございました。
SQuBOK V1の「1.2.8 S-KA:検査」で以下のように書いています。
検査は一般に『品物またはサービスの一つ以上の特性値に対して,測定,試験,検定,ゲージ合わせなどを行って,規定要求事項と比較して,適合しているかどうかを判定する活動』〔JIS Z 8101-2:1999〕と定義されており,JIS Q 9000:2006における定義もほぼ同様である。ソフトウェアの検査においても,この定義はあてはまり『テストで得られたデータを基準に照らして品質評価し,合否を決めること』〔石井 1986〕,あるいは『ソフトウェア製品をなんらかの方法で試験(テスト)した結果を,品質判定基準と比較して,合格・不合格の判定を下すこと』〔保田 1995〕とされている。なお,JIS規格では検査はinspection(インスペクション)の訳語であるが,ソフトウェアの分野ではインスペクションは特定のレビュー技法の名称として用いられているので注意が必要であり,本書においても使い分けている。
SQuBOK V2でも「2.4 KA:検査のマネジメント」に上記の記述は移動して残しました。
ご参考まで。