ォノヺビルヺで見る - jasstjasst.jp/archives/jasst10e/pdf/b4-7.pdf1....

21
(C) K. Tatsumi 2010 1 HISTORY OF SOFTWARE TESTING で見 で見 で見 で見 5分間 分間 分間 分間 で見 で見 で見 で見 で見 で見 で見 で見 5 5 分間 分間 分間 分間 分間 分間 分間 分間 辰巳 辰巳 辰巳 辰巳 辰巳 辰巳 辰巳 辰巳 敬三 敬三 敬三 敬三 敬三 敬三 敬三 敬三 20 20 1 1 0 0 1 1 28 28 JaSST10 Tokyo

Upload: others

Post on 16-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

(C) K. Tatsumi 20101

HISTORY OF SOFTWARE TESTING

カバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見る

5分間分間分間分間ソフトウェアソフトウェアソフトウェアソフトウェアテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリー

カバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見るカバーフローで見る

55分間分間分間分間分間分間分間分間ソフトウェアソフトウェアソフトウェアソフトウェアソフトウェアソフトウェアソフトウェアソフトウェアテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリーテスト・ヒストリー

辰巳辰巳辰巳辰巳辰巳辰巳辰巳辰巳 敬三敬三敬三敬三敬三敬三敬三敬三

20201100年年年年年年年年11月月月月月月月月2828日日日日日日日日

JaSST‘10 Tokyo ライトニングトークス

Page 2: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

HISTORY OF SOFTWARE TESTING

HISTORY OF SOFTWARE TESTING

(C) K. Tatsumi 20102

ソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリー

�ソフトウェア・テストソフトウェア・テストソフトウェア・テストソフトウェア・テストPRESS

Page 3: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

HISTORY OF SOFTWARE TESTING

HISTORY OF SOFTWARE TESTING

(C) K. Tatsumi 20103

ソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリーソフトウェアテスト・ヒストリー

�コラム番外編コラム番外編コラム番外編コラム番外編 : テストテストテストテスト書籍カバ書籍カバ書籍カバ書籍カバーギャラリーーギャラリーーギャラリーーギャラリー

洋書のアートワークが洋書のアートワークが洋書のアートワークが洋書のアートワークがCOOL !

音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい音楽雑誌のようにしたい!!

残念ながら残念ながら残念ながら残念ながらモノクロモノクロモノクロモノクロ orz

Page 4: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

HISTORY OF SOFTWARE TESTING

HISTORY OF SOFTWARE TESTING

(C) K. Tatsumi 20104

というわけでというわけでというわけでというわけでというわけでというわけでというわけでというわけで カバーフローカバーフローカバーフローカバーフローカバーフローカバーフローカバーフローカバーフロー

でも、なんでも、なんでも、なんでも、なんちゃってちゃってちゃってちゃってカバーフローですカバーフローですカバーフローですカバーフローです (^^;)

でででででででで リベンジ

リベンジ

リベンジ

リベンジ

リベンジ

リベンジ

リベンジ

リベンジ!!

Page 5: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

HISTORY OF SOFTWARE TESTING

HISTORY OF SOFTWARE TESTING

(C) K. Tatsumi 20105

始める前に始める前に始める前に始める前に始める前に始める前に始める前に始める前に : : 前史前史前史前史前史前史前史前史

�コンピュータの原型コンピュータの原型コンピュータの原型コンピュータの原型

�Charles Babbage(英国)の「解析機関」

• 1837年に設計を開始 (完成には至らず)

�最初のプログラマー最初のプログラマー最初のプログラマー最初のプログラマー

�Ada Byron, Lady Lovelace

•解析機関のプログラムを作成(1843年)

�テストやデバッグの最初の議論はAdaのメモに遡る(Boris Beizer)

�最初のテスターは最初のテスターは最初のテスターは最初のテスターは ?

Page 6: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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らが開発

Page 7: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

評価指向

論証指向破壊指向

予防指向デバッグ指向

Page 8: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

Page 9: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

• テストはプログラムが仕様を満足していることを提示するためのもの

Page 10: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

Page 11: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

Page 12: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

Page 13: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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,・・・カバレッジを提案

Page 14: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

• テストとは、エラーをみつけるつもりでプログラムを実行する過程

Page 15: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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"

Page 16: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

Page 17: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

Page 18: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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モデル”につながる考え方

Page 19: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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 : テストは行動ではない。テストをしないで品質

の高いソフトウェアを作るための精神的な訓練である。

Page 20: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

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

Page 21: ォノヺビルヺで見る - JaSSTjasst.jp/archives/jasst10e/pdf/B4-7.pdf1. ヅノチギ指向の時代( ~1956 年) 2. 論証指向の時代 (1957 年~1978 年) 3. 破壊指向の時代

HISTORY OF SOFTWARE TESTING

HISTORY OF SOFTWARE TESTING

(C) K. Tatsumi 201021

この先は・・・この先は・・・この先は・・・この先は・・・この先は・・・この先は・・・この先は・・・この先は・・・??

�みなさんがつくっていく時代

�歴史を学び

�歴史に学び

�歴史をつくっていきましょう

ご静聴ありがとうございました。ご静聴ありがとうございました。ご静聴ありがとうございました。ご静聴ありがとうございました。

1950 1980 19901960 1970 2000

評価指向

論証指向破壊指向

予防指向デバッグ指向