ビジネス
【連載】第1回:ソフトウェアテストそもそも話~ソフトウェアテストはいつ「ソフトウェアテスト」になったのか(後編)~

「HQW!」の読者の皆さん、こんにちは。辰巳敬三です。
この連載コラムでは、ソフトウェアのテスト技術や品質技術の歴史を紹介しています。
前編では、ソフトウェアテストという名称の話しに入る前段階として、テストやプログラムという用語の由来や最初期のプログラムテストについて紹介しました。
今回の後編では、いよいよ、ソフトウェアテストがいつ「ソフトウェアテスト」と呼ばれるようになったのかを紹介します。
「テスト」の使用
コンピューターが出現した時から何らかのテストの作業が始まったとして、その頃から「テスト(test)」という語も一般的に使われるようになっていたのでしょうか。
実は、1950年代はまだ用語として定着していませんでした。Gelperinらはこの時代における認識を次のように書いています(筆者訳)[1]。
プログラミングに対する初期の考え方は、プログラムを「書き」、それを「チェックアウトする(checked it out)」というものだった。多くの人は、プログラムのチェックアウト、デバッグ、テストの概念は明確に区別していなかった。ある人は、「デバッグ」とはバグを取り除くためのあらゆる活動を意味し、テストはこれらの活動の一つと見なしていた。ある人は、「デバッグ」と「テスト」を同じ意味で使っていた。また、「デバッグ」と「テスト」は別の活動であるが、その区別を説明するのは難しいと考える人もいた。
1957年に出版されたGE社のMcCrackenが書いた『Digital Computer Programming』 [2]は最も初期のプログラミングの書籍ですが、すでにデバッグやテストに関する事項が"Program Checkout"という章で説明されています。ただ、内容面ではRand社のBakerの書評で、program checkoutにはデバッグとテストという二つのフェーズがあるのに、これらを区別して書いていないと批判されています[3]。
一方、私はIBM社が1954年に出荷開始したIBM 650のマニュアルの中に"IBM 650 Program Testing Manual"[4]があることを12年ほど前に知り、1957年発行のものを入手しました。その後、1956年発行のIBM Technical Newsletter[5]でもProgram Testingについて書かれていることが分かりました。恐らくIBM社内ではtestという用語が使われていたのでしょう。
また、1961年に出版されたLeedsとWeinbergの『Computer Programming Fundamentals』[6]では、ずばり"Program Testing"と題した章でテスト技術が説明されています。私が調べた範囲では、これがProgram Testingが書かれた最初の書籍です。著者の2人がIBM社所属だったからかもしれませんが、私はprogram testという用語が一般的になった証しだと解釈しています。

「ソフトウェア」の登場
「プログラム」の「テスト」までたどり着きましたので、次はいよいよ「ソフトウェア(software)」です。またまた、英語語源辞書を調べてみましょう。
software(n.)
1851年頃、soft-wares(柔らかい商品)とは、「ウールやコットンの布地」、さらには、「比較的傷みやすい消費財」を意味していました。これはsoft(柔らかい)とware(商品)から成る単語です。コンピューターに関連して使われる「ソフトウェア」という用語は、1960年頃に別個に作られた言葉で、コンピューティングの意味でのhardware(ハードウェア)をもとにしています。
語源辞書には1960年頃と書かれていますが、実はもう少し早く登場しています。
東京大学の玉井哲雄先生がbit誌に書かれた「ソフトウェアの語源」[7]によると、コンピューター用語としてsoftwareという言葉が書かれた印刷物で最も早期のものは、プリンストン大学のTukey教授が『米国数学月報』1958年1月号に書いた論文だそうです。このことは2000年7月のNew York TimesのTukey氏追悼記事にも書かれています[8]。
日本では「ソフトウェア」がいつごろから使われ始めたのでしょうか。私が調査した範囲では、印刷物で最も早期に使われたのは『情報処理』1961年11月号掲載の「国際情報処理会議(IFIP)第3回総会に出席して」[9]でした。実際には、これ以前から海外の研究者との会議や論文などを通じて日本に伝わっていたと思われます。1962年の日本電子工業振興協会の『国産電子計算機のソフトウェアの開発』[10]では、ソフトウェアの定義についても説明が書かれていますので、この頃には関係者の間では一般的な言葉になっていたものと考えられます。
ちなみに、当時はsoftwareの日本語訳も提案されていました。『モニタシステム』[11]では、hardwareの日本語訳の「かなもの」に対して「『かみもの』とよぶのはどうでしょうか」と書かれています。また『ソフトウェアとは何か』[12]では「『紙もの』『やわもの』などの提案はあるがまだ定訳がない」と書かれています。
softwareは新しい用語なので、定着には時間がかかります。どのくらいの期間で定着したのでしょうか。米国で1957年に創刊され1998年まで印刷物として発行されたコンピューター雑誌『Datamation』で、softwareとprogramの二つの語が何回使われたかを調べ、その推移を見ます。Datamationで最初にsoftwareが使われたのは1960年9月号で1カ所でした。次のグラフは1960年1月号から5年おきの各号における二つの語の出現回数の比です。1970年代前半に半々となり、1980年頃までにsoftwareの使用の方が多くなりました。その後1980年代半ばにかけて定着したと言えそうです。
![図表1: Datamation誌に見る"software"の定着状況(語の出現回数)[執筆者調べ]](/helloqualityworld/media/06bfb1cc911a40c894ee05da52702be9/750def097f9d4675925b71408603c2ac/%E9%9B%91%E8%AA%8CDatamation%E3%81%AB%E8%A6%8B%E3%82%8B_software_%E3%81%A8%E3%81%84%E3%81%86%E8%AA%9E%E3%81%AE%E5%AE%9A%E7%9D%80%E6%8E%A8%E7%A7%BB.jpg)
いつ「ソフトウェアテスト」になったのか
さあ、ついに最初の設問に答える段階になりました。さっそく、"software testing"あるいは"software test"という用語が書かれた最初の文献を探してみます。
IBM社のElmendorf(原因結果グラフ技法の考案者として有名)が1969年に作成した参考文献リストによると、テストに関する文献は1962年から1968年には57件しかなかったそうです[13]。これらの文献のタイトルにsoftware testingやsoftware testが含まれるものはありませんでした。
次に、前述した『Program Test Methods』の参考文献リストを調べたところ、約370件の中に1件、『Application of Disciplined Software Testing』という1971年の文献があることが分かりました[14]。もう少し調べると、同じ時期にElmendorfが『Disciplined Software Testing』のタイトルで講演していることも分かりました。
さらに調べると、IBM社内の資料ではありますが1967年にElmendorfが書いた『Evaluation of the Functional Testing of Control Programs』というホワイトペーパーで"disciplined approach to software testing"(ソフトウェアテストへの規律あるアプローチ)を紹介していることが分かりました。この辺りが、software testing/testという用語が書かれた最初のものではないでしょうか。
1970年頃からsoftware testingが使われ始めたことは分かりましたが、それが"program testing"に代わって主流になったのはいつ頃なのでしょうか。その時期を推測するために、Google Books Ngram ViewerでGoogle Booksの書籍データ(コーパス)から、二つの用語の出現頻度の推移を調べました。その結果が以下のグラフです。このグラフから、1988年にsoftware testingとprogram testingの出現頻度が逆転し、1995年頃から定着したことが見て取れます。
現在、読者の皆さんはほぼ「ソフトウェアテスト」という用語を使われると思いますが、広く使われ始めてから30年ということになりますね。
![図表2: Googleコーパスにおける"software testing"と"program testing"の出現頻度の推移[執筆者調べ]](/helloqualityworld/media/06bfb1cc911a40c894ee05da52702be9/93861eee1e344d87b7e9644f7e816b17/books_google.jpg)
おわりに
ソフトウェアという用語が登場した時は、ハードウェアと対比される用語で、何らかの処理を行うコンピューター・プログラムや、場合によっては関連する文書を指す程度の意味でした。
現在のソフトウェアの定義は、例えば大辞林では (1)コンピューター・システムに関係するプログラム。システムの運用に関する文書化された情報を含めることもある (2)映像・音楽・マルチメディアなどの作品 (3)特にハードウェアに対して,知識,思考による産物を集積したもの、と広範囲なものになっています。時代と共にソフトウェアの重要性が増大したことの表れだと思います。
ソフトウェアの定義が拡大し、世界を飲み込むほどになった(Software is eating the world)今、ソフトウェアテスターの役割がますます重要になっているのではないでしょうか。
<参考文献>
[1] D. Gelperin and B. Hetzel, "The Growth of Software Testing," Communications of the ACM, Volume 31 Issue 6, June 1988, pp. 687-695
[2] D. D. McCracken, "Digital Computer Programming," John Wiley & Sons, 1957
[3] C. Baker, Review of D.D. McCracken's "Digital Computer Programming", Mathematical Tables and Other Aids to Computation, Vol. 11, No. 60, October, 1957
[4] "IBM 650 Program Testing Manual," IBM, 1957
[5] Technical Newsletter No.11, Applied Science Division, IBM, March 1956
[6] H. Leeds and G. Weinberg, "Computer Programming Fundamentals," McGraw-Hill, 1961
[7] 玉井哲雄, ソフトウェアの語源,bit/共立出版, 33(1), pp.54-57, 2001
[8] D. Leonhardt, "John Tukey, 85, Statistician; Coined the Word 'Software'," The New York Times, July 28, 2000
[9] 山下英男, 国際情報処理会議(IFIP)第3回総会に出席して, 情報処理/情報処理学会, 2(6), pp.301-304, 1961
[10] 原科茂, 国産電子計算機のソフトウェアの開発, 電子工業/小峰電子工業, 11(7), pp.39-48, 1962
[11] 和田英一, モニタシステム, 情報処理/情報処理学会, 3(5), pp.267-277, 1962
[12] 渕一博, ソフトウェアとは何か, エレクトロニクス/オーム社, 8(8), pp.38-45(通算pp.910-917), 1963
[13] R. Bender, "William Elmendorf - In Memoriam," 2006
[14] W. C. Hetzel(Ed), "Program Test Methods," Prentice-Hall, 1973(鳥居 宏次(訳) ,プログラム・テスト法,近代科学社,1974)
この記事は面白かったですか?
今後の改善の参考にさせていただきます!