ォノヺビルヺで見る - jasstjasst.jp/archives/jasst10e/pdf/b4-7.pdf1....
TRANSCRIPT
(C) K. Tatsumi 20101
HISTORY OF SOFTWARE TESTING
カバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見る
5分間分間分間分間ソフトウェアソフトウェアソフトウェアソフトウェアテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリー
カバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見る
55分間分間分間分間分間分間分間分間ソフトウェアソフトウェアソフトウェアソフトウェアソフトウェアソフトウェアソフトウェアソフトウェアテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリー
辰巳辰巳辰巳辰巳辰巳辰巳辰巳辰巳 敬三敬三敬三敬三敬三敬三敬三敬三
20201100年年年年年年年年11月月月月月月月月2828日日日日日日日日
JaSST‘10 Tokyo ライトニングトークス
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 20102
ソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリー
�ソフトウェア・テストソフトウェア・テストソフトウェア・テストソフトウェア・テストPRESS
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 20103
ソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリー
�コラム番外編コラム番外編コラム番外編コラム番外編 : テストテストテストテスト書籍カバ書籍カバ書籍カバ書籍カバーギャラリーーギャラリーーギャラリーーギャラリー
洋書のアートワークが洋書のアートワークが洋書のアートワークが洋書のアートワークがCOOL !
音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい!!
残念ながら残念ながら残念ながら残念ながらモノクロモノクロモノクロモノクロ orz
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 20104
というわけでというわけでというわけでというわけでというわけでというわけでというわけでというわけで カバーフローカバーフローカバーフローカバーフローカバーフローカバーフローカバーフローカバーフロー
でも、なんでも、なんでも、なんでも、なんちゃってちゃってちゃってちゃってカバーフローですカバーフローですカバーフローですカバーフローです (^^;)
でででででででで リベンジ
リベンジ
リベンジ
リベンジ
リベンジ
リベンジ
リベンジ
リベンジ!!
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 20105
始める前に始める前に始める前に始める前に始める前に始める前に始める前に始める前に : : 前史前史前史前史前史前史前史前史
�コンピュータの原型コンピュータの原型コンピュータの原型コンピュータの原型
�Charles Babbage(英国)の「解析機関」
• 1837年に設計を開始 (完成には至らず)
�最初のプログラマー最初のプログラマー最初のプログラマー最初のプログラマー
�Ada Byron, Lady Lovelace
•解析機関のプログラムを作成(1843年)
�テストやデバッグの最初の議論はAdaのメモに遡る(Boris Beizer)
�最初のテスターは最初のテスターは最初のテスターは最初のテスターは ?
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 20106
始める前に始める前に始める前に始める前に始める前に始める前に始める前に始める前に : : 最初の電子計算機最初の電子計算機最初の電子計算機最初の電子計算機最初の電子計算機最初の電子計算機最初の電子計算機最初の電子計算機
�最初の電子計算機最初の電子計算機最初の電子計算機最初の電子計算機
�ABC (Atanasoff-Berry Computer), 1939年
•米国アイオワ州立大学のAtanasoffとBerryが開発
�ENIAC (Electronic Numerical Integrator and Computer), 1946年
•米国ペンシルバニア大学のEckertとMauchlyが開発
�最初の最初の最初の最初のプログラム内蔵型プログラム内蔵型プログラム内蔵型プログラム内蔵型コンピュータコンピュータコンピュータコンピュータ
�EDSAC (Electronic Delay Storage Automatic Calculator), 1949年
•英国ケンブリッジ大学のWilkesらが開発
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 20107
始める前に始める前に始める前に始める前に始める前に始める前に始める前に始める前に : : テストの考え方の変遷テストの考え方の変遷テストの考え方の変遷テストの考え方の変遷テストの考え方の変遷テストの考え方の変遷テストの考え方の変遷テストの考え方の変遷
1. デバッグ指向デバッグ指向デバッグ指向デバッグ指向の時代 ( ~1956年)
2. 論証指向論証指向論証指向論証指向の時代 (1957年~1978年)
3. 破壊指向破壊指向破壊指向破壊指向の時代 (1979年~1982年)
4. 評価指向評価指向評価指向評価指向の時代 (1983年~1987年)
5. 予防指向予防指向予防指向予防指向の時代 (1988年~ )
[出典] D. Gelperin and W. Hetzel, "The Growth of Software Testing," 1988
それでは、カバーフローのはじまり~それでは、カバーフローのはじまり~それでは、カバーフローのはじまり~それでは、カバーフローのはじまり~
1950 1980 19901960 1970 2000
評価指向
論証指向破壊指向
予防指向デバッグ指向
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 20108
1. 1. デバッグ指向の時代デバッグ指向の時代デバッグ指向の時代デバッグ指向の時代デバッグ指向の時代デバッグ指向の時代デバッグ指向の時代デバッグ指向の時代 ((~~~~~~~~19561956年年年年年年年年))
1950 1980 19901960 1970 2000
評価指向
論証指向破壊指向デバッグ指向デバッグ指向デバッグ指向デバッグ指向デバッグ指向デバッグ指向デバッグ指向デバッグ指向 予防指向
�デバッグとテストの区別がなかった時代デバッグとテストの区別がなかった時代デバッグとテストの区別がなかった時代デバッグとテストの区別がなかった時代� McCracken, "Digital Computer Programming," 1957
(最も初期のプログラミング教科書)
• ”Program Checkout”の章でデバッグやテストを説明
EDSAC
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 20109
2. 2. 論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代 (1957(1957年~年~年~年~年~年~年~年~19781978年年年年年年年年))
1950 1980 19901960 1970 2000
評価指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向
破壊指向
デバッグ指向 予防指向
1957
�デバッグとテストを区別すべきデバッグとテストを区別すべきデバッグとテストを区別すべきデバッグとテストを区別すべき� Baker, "Digital Computer Programming"の書評, 1957
• テストはプログラムが仕様を満足していることを提示するためのもの
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201010
2. 2. 論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代 (1957(1957年~年~年~年~年~年~年~年~19781978年年年年年年年年))
1950 1980 19901960 1970 2000
評価指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向
破壊指向
デバッグ指向 予防指向
�テスト技術、テストプロセスの萌芽テスト技術、テストプロセスの萌芽テスト技術、テストプロセスの萌芽テスト技術、テストプロセスの萌芽� IBM社のElmendorfのテスト制御プロセス (IBM OS/360)
• "Controlling the functional testing of an operating system," 1969
� Debugging Techniques in Large Systems Sympo., 1970
1970
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201011
2. 2. 論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代 (1957(1957年~年~年~年~年~年~年~年~19781978年年年年年年年年))
1950 1980 19901960 1970 2000
評価指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向
破壊指向
デバッグ指向 予防指向
1973
�テストに関する最初の書籍テストに関する最初の書籍テストに関する最初の書籍テストに関する最初の書籍� Hetzel(Ed.), "Program Test Methods ," 1973
•最初のテストのシンポジウム(1972年6月)の論文集
The Computer Program Test Methods Symposium
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201012
2. 2. 論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代 (1957(1957年~年~年~年~年~年~年~年~19781978年年年年年年年年))
1950 1980 19901960 1970 2000
評価指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向
破壊指向
デバッグ指向 予防指向
1975
�ソフトウェアエンジニアリング国際会議の開始ソフトウェアエンジニアリング国際会議の開始ソフトウェアエンジニアリング国際会議の開始ソフトウェアエンジニアリング国際会議の開始� International Conference on Reliable Software, 1975
� National Conference on Software Engineering, 1975
� International Conference on Software Engineering, 1976
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201013
2. 2. 論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代論証指向の時代 (1957(1957年~年~年~年~年~年~年~年~19781978年年年年年年年年))
1950 1980 19901960 1970 2000
評価指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向論証指向
破壊指向
デバッグ指向 予防指向
1977
�テスト技術の研究の拡大テスト技術の研究の拡大テスト技術の研究の拡大テスト技術の研究の拡大� Miller, "Tutorial: Program Testing Techniques," 1977
• テストに関する参考文献数は400件以上
• Millerは1975年ころにC0,C1,C2,・・・カバレッジを提案
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201014
3. 3. 破壊指向の時代破壊指向の時代破壊指向の時代破壊指向の時代破壊指向の時代破壊指向の時代破壊指向の時代破壊指向の時代 (1979(1979年~年~年~年~年~年~年~年~19821982年年年年年年年年))
1950 1980 19901960 1970 2000
評価指向
論証指向 破壊破壊破壊破壊指向指向指向指向
破壊破壊破壊破壊指向指向指向指向
デバッグ指向 予防指向
1979
�テストの成功とはエラーを見つけることテストの成功とはエラーを見つけることテストの成功とはエラーを見つけることテストの成功とはエラーを見つけること� Myers, "The Art of Software Testing," 1979
• テストとは、エラーをみつけるつもりでプログラムを実行する過程
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201015
4. 4. 評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代 (1983(1983年~年~年~年~年~年~年~年~19871987年年年年年年年年))
1950 1980 19901960 1970 2000
評価評価評価評価指向指向指向指向
評価評価評価評価指向指向指向指向
論証指向破壊指向
デバッグ指向 予防指向
1983
�ライフサイクルを通じた評価活動の中にテストライフサイクルを通じた評価活動の中にテストライフサイクルを通じた評価活動の中にテストライフサイクルを通じた評価活動の中にテストが位置付けられたが位置付けられたが位置付けられたが位置付けられた� FIPS 101 (米国標準局(NBS)規格), 1983
"Guideline for Lifecycle Validation, Verification, and Testing of Computer Software"
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201016
4. 4. 評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代 (1983(1983年~年~年~年~年~年~年~年~19871987年年年年年年年年))
1950 1980 19901960 1970 2000
評価評価評価評価指向指向指向指向
評価評価評価評価指向指向指向指向
論証指向破壊指向
デバッグ指向 予防指向
1983
�テストの文書に関する最初の規格テストの文書に関する最初の規格テストの文書に関する最初の規格テストの文書に関する最初の規格� IEEE Std 829-1983 Software Test Documentation
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201017
4. 4. 評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代評価指向の時代 (1983(1983年~年~年~年~年~年~年~年~19871987年年年年年年年年))
1950 1980 19901960 1970 2000
評価評価評価評価指向指向指向指向
評価評価評価評価指向指向指向指向
論証指向破壊指向
デバッグ指向 予防指向
1983
� Beizerのソフトウェアテスト技法の第一版のソフトウェアテスト技法の第一版のソフトウェアテスト技法の第一版のソフトウェアテスト技法の第一版� Software Testing Techniques, 1983
� Software System Testing and Quality Assurance, 1984
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201018
5. 5. 予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代 (1988(1988年~年~年~年~年~年~年~年~))
1950 1980 19901960 1970 2000
評価指向
論証指向破壊指向
デバッグ指向 予防指向予防指向予防指向予防指向予防指向予防指向予防指向予防指向
1988
�ソフトウェアライフサイクルと並行ソフトウェアライフサイクルと並行ソフトウェアライフサイクルと並行ソフトウェアライフサイクルと並行して進められして進められして進められして進められるるるる予防予防予防予防指向の指向の指向の指向のテストテストテストテストプロセスプロセスプロセスプロセス� Hetzel, "The Complete Guide to Software Testing," 1988
• テスト方法論 STEP, “Wモデル”につながる考え方
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201019
5. 5. 予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代 (1988(1988年~年~年~年~年~年~年~年~))
1950 1980 19901960 1970 2000
評価指向
論証指向破壊指向
デバッグ指向 予防指向予防指向予防指向予防指向予防指向予防指向予防指向予防指向
1990
�Beizerのテスト「道」のテスト「道」のテスト「道」のテスト「道」 (電通大・西先生の命名)
� Beizer, "Software Testing Techniques 2nd Ed.," 1990
• フェーズ4 : テストは行動ではない。テストをしないで品質
の高いソフトウェアを作るための精神的な訓練である。
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201020
5. 5. 予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代予防指向の時代 (1988(1988年~年~年~年~年~年~年~年~))
1950 1980 19901960 1970 2000
評価指向
論証指向破壊指向
デバッグ指向 予防指向予防指向予防指向予防指向予防指向予防指向予防指向予防指向
� Kaner, et.al, "Testing Computer Software 2nd Ed."
テスト技術者交流会(訳)、
基本から学ぶソフトウェアテスト、2001� TEF有志が最初に翻訳したテスト書籍
1999
HISTORY OF SOFTWARE TESTING
HISTORY OF SOFTWARE TESTING
(C) K. Tatsumi 201021
この先は・・・この先は・・・この先は・・・この先は・・・この先は・・・この先は・・・この先は・・・この先は・・・??
�みなさんがつくっていく時代
�歴史を学び
�歴史に学び
�歴史をつくっていきましょう
ご静聴ありがとうございました。ご静聴ありがとうございました。ご静聴ありがとうございました。ご静聴ありがとうございました。
1950 1980 19901960 1970 2000
評価指向
論証指向破壊指向
予防指向デバッグ指向