Lightening Talk at Open Source Conference 2007

Preview:

DESCRIPTION

A brief introduction to random tasting based on specification and specification driven development.

Citation preview

ランダムテスト& 仕様駆動テスト

紹介池上 大介

Haskell 同好会Open Source Conference 2007 Lightening Talk

2007-06-30 (Sat)

1

燃えろ!

熱血テスト魂

2

燃えろ!

熱血テスト魂

押忍!闘 応援団

KOF 2006於 大阪南港ATC ITM棟

2

あなたの人生、応援します!

3

あなたの人生、応援します!ᶶḅᶊ己ᶍ魂ᶱᵾᵾᵬ込ᶟ

熱血ᶴḅḅᲾ

ᵼᶫᵫ押忍᳆闘ᵧ᳆応援団᳆困ᶂᶅᵣᶪᶍᶡᶇᶗ駆ᵰᶃᵰᲾ

音楽ᶊ合ᶮᵺᶅ全力ᶆ応援ᵶᶧᵥ᳆彼ᶨᶍ頑張ᶩᵫ報ᶮᶫᶪᵪᶈᵥᵪᶎ

応援団ᶍ力ᶊᵪᵪᶂᶅᵣᶪ᳆

3

時間ᵫᶉᵣ᳆納期

ᶎ終ᶮᶪᶍᵪ!!

ᴞ自由~女子十二楽坊 ☆

4

押忍᳆

5

佐藤君新人入社ᵶᶅᴥ年

6

佐藤君新人入社ᵶᶅᴥ年

明日ᶎ担当ᶹ

ᶍ納期ᶆᵡᶪᲿ

6

7

7

7

佐藤君Ჾ要求仕様ᵫ

昨日Ჾ2点変ᶮᶂᵾᵪᶨ

7

佐藤君Ჾ要求仕様ᵫ

昨日Ჾ2点変ᶮᶂᵾᵪᶨ

7

佐藤君Ჾ要求仕様ᵫ

昨日Ჾ2点変ᶮᶂᵾᵪᶨ

佐藤君

7

佐藤君Ჾ要求仕様ᵫ

昨日Ჾ2点変ᶮᶂᵾᵪᶨ

佐藤君ᵼᲾᵼᶲnyaᲾ納期ᶎ明日ᶆᵸᶧ?

7

佐藤君Ჾ要求仕様ᵫ

昨日Ჾ2点変ᶮᶂᵾᵪᶨ

佐藤君ᵼᲾᵼᶲnyaᲾ納期ᶎ明日ᶆᵸᶧ?

7

佐藤君Ჾ要求仕様ᵫ

昨日Ჾ2点変ᶮᶂᵾᵪᶨ

佐藤君ᵼᲾᵼᶲnyaᲾ納期ᶎ明日ᶆᵸᶧ?

ᵲᶉᵣᵿᶍ変更ᶇ同ᵷᵿᶧᲾ

ᶆ済ᶝᵺᵾᶝᵧ

7

佐藤君Ჾ要求仕様ᵫ

昨日Ჾ2点変ᶮᶂᵾᵪᶨ

佐藤君ᵼᲾᵼᶲnyaᲾ納期ᶎ明日ᶆᵸᶧ?

ᵲᶉᵣᵿᶍ変更ᶇ同ᵷᵿᶧᲾ

ᶆ済ᶝᵺᵾᶝᵧ

7

佐藤君Ჾ要求仕様ᵫ

昨日Ჾ2点変ᶮᶂᵾᵪᶨ

佐藤君ᵼᲾᵼᶲnyaᲾ納期ᶎ明日ᶆᵸᶧ?

ᵲᶉᵣᵿᶍ変更ᶇ同ᵷᵿᶧᲾ

ᶆ済ᶝᵺᵾᶝᵧ

ᶆᶡᲾᶅᲾᵫᶝᵿ...

7

8

ᵿᶇ᳆

8

ᵿᶇ᳆俺ᵫ若ᵪᶂᵾ頃ᶎ

徹夜ᵶᶅᲾᵸᶝᵺᵾᶡᶲᵿ᳆

8

ᵿᶇ᳆俺ᵫ若ᵪᶂᵾ頃ᶎ

徹夜ᵶᶅᲾᵸᶝᵺᵾᶡᶲᵿ᳆

晩飯ᶍ宅配ᵶᶅᶣᶪᵪᶨᲾ

一晩ᶆ終ᶮᶨᵺᶪᶲᵿᶉ

8

ᵿᶇ᳆俺ᵫ若ᵪᶂᵾ頃ᶎ

徹夜ᵶᶅᲾᵸᶝᵺᵾᶡᶲᵿ᳆

晩飯ᶍ宅配ᵶᶅᶣᶪᵪᶨᲾ

一晩ᶆ終ᶮᶨᵺᶪᶲᵿᶉ

明日ᶝᶆᶊᶆᵬᵡᵫᶨᶉᵪᶂᵾᶨᲾᵩ前ᶎᵿ᳆

8

9

ᵩ9

10

ᵩᶂ10

11

ᵩᵥᵧᶲᵿ~ᶲ

11

12

12

12

13

押忍

13

押忍

13

押忍時間ᵫᶉᵣ᳆納期

ᶎ終ᶮᶪᶍᵪ!!

13

ᶍᶣᶩᵪᵾᵫᶮᵪᶨᶉᵣᶧ!?

14

ᶂᶅ何ᵿᶬᵥ!?

15

ᶇᶎ

16

ᶇᶎ

入力

16

ᶇᶎ

入力 出力

16

ᶇᶎ

• 断片

• 要求仕様

• ᶶḅḅ

•成功Ჾᶝᵾᶎ

•発見

入力 出力

16

一回ᶍᶆᶎᶎ見ᶃᵪᶨᶉᵣ

17

一回ᶍᶆᶎᶎ見ᶃᵪᶨᶉᵣ

17

一回ᶍᶆᶎᶎ見ᶃᵪᶨᶉᵣ

潜ᶟ

17

一回ᶍᶆᶎᶎ見ᶃᵪᶨᶉᵣ

潜ᶟ

17

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

18

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

18

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

18

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

18

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

18

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

18

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

18

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

18

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

18

大量ᶊᲾḅᶊᵶᶉᵰᶫᶏ

潜ᶟ

18

大量ᶍ書ᵮ時間ᵫᶉᵣᶧ

19

根性ᵫ足ᶩᶲ᳆

20

根性ᶆᵸᶪ時代ᶎ終ᶮᶩᶝᵶᵾ

21

皆ᶆ応援

22

23

ᵲᶫᵿᶂᲾḅ᳆

23

ḅᶇᶎ

• 断片

• 要求仕様

• 成功Ჾᶝᵾᶎ

• 発見

入力 出力

24

ḅᶇᶎ

• 断片

• 要求仕様

• 成功Ჾᶝᵾᶎ

• 発見

入力 出力

•ᶶḅḅᶎḅᶊ自動生成

24

Haskell ᶍ

Test.QuickCheckᶆḅ

25

ᶆᲾᶆᶡᲾ

Haskellᶮᵪᶲᶉᵣᵶ

26

27

Rubyᶊᶡ用意ᵶᵾᶂ

27

RushCheck

28

% sudo gem install

rushcheck

29

RushCheckᶆḅ

• 断片

• 要求仕様

•成功Ჾᶝᵾᶎ

•発見

入力 出力

30

RushCheckᶆḅ

• 断片

• 要求仕様

•成功Ჾᶝᵾᶎ

•発見

入力 出力

•ᶶḅḅᶎḅᶊ自動生成

30

ᶆᲾᶆᶡᲾ

要求仕様ᶱᶈᵥ書ᵲᵥ

31

32

RSpecᶱ使ᵧᶂ

32

RSpec

33

% sudo gem installrspec

34

RSpec +

RushCheck

35

最強ᶍ支援環境ᶂ

36

ᵼᶍ後…

37

38

38

ᵡᶨᲾᲾ

今晩ᶎ遅ᵮᶉᶪᶲᵷᶢᶉᵪᶂᵾᶍ᳅

38

ᵡᶨᲾᲾ

今晩ᶎ遅ᵮᶉᶪᶲᵷᶢᶉᵪᶂᵾᶍ᳅

38

ᵡᶨᲾᲾ

今晩ᶎ遅ᵮᶉᶪᶲᵷᶢᶉᵪᶂᵾᶍ᳅

ᵾᵪᵶᶱ風呂ᶊ入ᶫᶪᶍᶎᲾ

俺ᶍ大切ᶉ役目ᵿᵪᶨᶉᲾᵼᶫᶊ…

38

ᵡᶨᲾᲾ

今晩ᶎ遅ᵮᶉᶪᶲᵷᶢᶉᵪᶂᵾᶍ᳅

ᵾᵪᵶᶱ風呂ᶊ入ᶫᶪᶍᶎᲾ

俺ᶍ大切ᶉ役目ᵿᵪᶨᶉᲾᵼᶫᶊ…

38

ᵡᶨᲾᲾ

今晩ᶎ遅ᵮᶉᶪᶲᵷᶢᶉᵪᶂᵾᶍ᳅

ᵾᵪᵶᶱ風呂ᶊ入ᶫᶪᶍᶎᲾ

俺ᶍ大切ᶉ役目ᵿᵪᶨᶉᲾᵼᶫᶊ…

今日ᶎᶑᶇᶃᶍ山ᶱ超ᵧᵾᶲᵿᲾ

ᶈᵥᵿᲾ外ᶆᲾ蟹食ᵣᶊ行ᵪᶉᵣᵪ᳅

38

ᵡᶨᲾᲾ

今晩ᶎ遅ᵮᶉᶪᶲᵷᶢᶉᵪᶂᵾᶍ᳅

ᵾᵪᵶᶱ風呂ᶊ入ᶫᶪᶍᶎᲾ

俺ᶍ大切ᶉ役目ᵿᵪᶨᶉᲾᵼᶫᶊ…

今日ᶎᶑᶇᶃᶍ山ᶱ超ᵧᵾᶲᵿᲾ

ᶈᵥᵿᲾ外ᶆᲾ蟹食ᵣᶊ行ᵪᶉᵣᵪ᳅

38

ᵡᶨᲾᲾ

今晩ᶎ遅ᵮᶉᶪᶲᵷᶢᶉᵪᶂᵾᶍ᳅

ᵾᵪᵶᶱ風呂ᶊ入ᶫᶪᶍᶎᲾ

俺ᶍ大切ᶉ役目ᵿᵪᶨᶉᲾᵼᶫᶊ…

今日ᶎᶑᶇᶃᶍ山ᶱ超ᵧᵾᶲᵿᲾ

ᶈᵥᵿᲾ外ᶆᲾ蟹食ᵣᶊ行ᵪᶉᵣᵪ᳅

ᵡᶉᵾᶂ♡♡♡

38

39

応援

39

応援大

39

応援大成

39

応援大成功

39

最後ᶊ言ᶂᶅᵩᵮ᳆

40

何事ᶡ気合ᵣᵿᶂ᳆

41

Special Thanks• Koen Claessen & John Hughes QuickCheckᶍ作者

• reck wreck ᵴᶲ

• 家族Ჾ特ᶊᶴᶉ写真ᶱ撮影ᵶᶅᵮᶫᵾ母ᶊ

• 押忍᳆闘ᵧ᳆応援団ᶱ作ᶂᵾ任天堂 & iNiS

• 応援ᵶᶅᵮᶫᵾ皆様

ありがとう!

42