Slide 1

Slide 1 text

Introduc)on to Entering Test Design Takuya Matsumoto 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 1

Slide 2

Slide 2 text

ࢲ • @upinetree (twi-er, github, qiita) • גࣜձࣾສ༿ • h-ps:/ /www.wantedly.com/projects/10005 ʹࣸͬͯΔਓ • We are hiring ! 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 2

Slide 3

Slide 3 text

·͕͖͑ • ؆୯ʹ࢖͑Δςετٕ๏ͷ঺հͰ͢ • ࣾ಺Ͱͷൃදࢿྉ͔Βࣾ಺޲͚৘ใΛ࡟আͨ͠΋ͷͰ͢ • ಠֶͰษڧͨ͠಺༰ʹج͍͍ͮͯΔͨΊࣗݾղऍؚ͕·Ε·͢ • ؒҧ͍౳͋Γ·ͨ͠ΒTwi%ert౳Ͱ͓஌Β͍͚ͤͨͩΔͱॿ͔Γ ·͢ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 3

Slide 4

Slide 4 text

ࠓ೔͸ςετʹ͍ͭͯ࿩͠·͢ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 4

Slide 5

Slide 5 text

όάͷͳ͍ϓϩάϥϜ͸ͳ͍ • όάͷͳ͍࢓༷΋ͳ͍ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 5

Slide 6

Slide 6 text

Ͱ΋Կ΋͠ͳͯ͘ྑ͍Θ͚Ͱ͸ͳ͘ • ૣ͘ؾ͚ͮΔ͔ʢ༧๷ʣ • ؾ͍ͮͨͱ͖ʹͲ͏͢Δ͔ʢ෼ੳɺରࡦʣ • ࠶ൃ๷ࢭͰ͖Δ͔ʢࣃࢭΊʣ ͪͳΈʹ͜ͷ͋ͨΓ͸޻ۀ෼໺ͷQCʢ඼࣭؅ཧʣͷߟ͑ํ͕݁ߏ ໘ന͍ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 6

Slide 7

Slide 7 text

͍Ζ͍Ζͳํ๏͕͋Δ • ސ٬ͱର࿩͢Δ • ઃܭΛ޻෉͢Δ • ϨϏϡʔ͢Δ • ϋϚΓͲ͜ΖΛWikify͢Δ ςετ͸ͦͷ͏ͪͷҰͭͷํ๏ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 7

Slide 8

Slide 8 text

͔͠͠ɺςετΛॻ͘ͷ͸Ή͔͍ͣ͠ • ͜ͷςετͰຊ౰ʹେৎ෉ͳͷͩΖ͏͔ʁ • ςετέʔε͸଍Γ͍ͯΔͩΖ͏͔ʁ • ॻ͖͗ͯ͢͸͍ͳ͍ͩΖ͏͔ʁ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 8

Slide 9

Slide 9 text

ෆ҆ͩΒ͚ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 9

Slide 10

Slide 10 text

ͦΜͳܦݧ͋Γ·ͤΜ͔ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 10

Slide 11

Slide 11 text

ςετʹ͸஫ҙ͢΂͖͜ͱ͕ͨ͘͞Μ͋Δ • ϩδοΫͷਖ਼͠͞ΛอূͰ͖Δ͔ʁ • ܽؕΛݕग़͠΍͍͔͢ʁ • ςετํ๏͸ޮՌత͔ʁ • ςετέʔε͸ඞཁे෼͔ʁ • ࣮ࢪ࣌ؒ͸ݱ࣮త͔ʁʢࣗಈʗखಈͲͪΒ΋ʣ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 11

Slide 12

Slide 12 text

ʹ΋ؔΘΒͣɺ͖ͪΜͱ࿩͠߹ΘΕΔ͜ͱ͕গͳ͍ • ܦݧͰॻ͔ΕΔ͜ͱ͕ଟ͍ • ҆৺͢ΔͨΊ͚ͩʹॻ͔ΕΔ͜ͱ͕ଟ͍1 • ޙ෇͚ɺ͓·͚ʹ͞Ε͕ͪ 1 ҆৺͸ςετͷॏཁͳཁૉͷͻͱͭͰ͕͢ɺ඼࣭͸อূͯ͘͠Ε·ͤΜ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 12

Slide 13

Slide 13 text

ࠓ͔ͦͬ͜͠ΓجຊΛԡ͑͞Δ͍ͧ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 13

Slide 14

Slide 14 text

ςετ͸͢Ε͹ྑ͍ͱ͍͏΋ͷͰ΋ͳ͍ • Ϧιʔεʹ͸੍໿͕͋Γɺ͢΂ͯΛςετ͢Δ͜ͱ͸Ͱ͖ͳ͍ • Ͳ͜·Ͱςετ͢Δ͔ɺϓϩμΫτ͕ෛ͑ΔϦεΫͱηοτͰ ݕ౼͢Δඞཁ͕͋Δ • ܽؕΛݕग़͢ΔՄೳੑ͕ߴ͘ͳΔΑ͏ͳςετ͕๬·͍͠ • ͦͷͨΊʹ͸ɺద੾ʹςετΛઃܭ͢Δඞཁ͕͋Δ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 14

Slide 15

Slide 15 text

ςετΛઃܭ͢Δ Test Design 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 15

Slide 16

Slide 16 text

Ͳ͏ઃܭ͢Δʁ • ςετέʔεʹ͸ແݶͷબ୒ࢶ͕͋ΓɺͦΕΒΛ෼ੳ͠ɺܾఆ ͢Δ͜ͱʹͳΔ • Ͳ͏΍ͬͯϦιʔεͷ੍໿͕͋ΔதͰޮՌతͳબ୒͕Ͱ͖Δ͔ Λߟ͑Δ • ޮՌతͱ͸ɺগͳ͍ςετέʔεͰܽؕΛݟ͚ͭ΍͍͢͜ͱͱ Ծఆ͢Δ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 16

Slide 17

Slide 17 text

ઃܭʹඞཁͳ΋ͷ͸Կʁ • ର৅ιϑτ΢ΣΞ΍ɺͦͷϏδωεྖҬͷ஌ࣝ • ςετର৅ػೳͷ໌֬ͳ࢓༷ • ςετέʔεΛ࡞ΔͨΊͷςΫχοΫ • → ͜ΕΛҰൠతʹςετٕ๏ͱݺͿ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 17

Slide 18

Slide 18 text

͓࿩͢Δ͜ͱ • ໌೔͔Β࢖͑Δ؆୯ͳςετٕ๏ͷ঺հ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 18

Slide 19

Slide 19 text

͓࿩͠ͳ͍͜ͱ • WebΞϓϦͷద੾ͳςετ۠෼ʢControllerςετͷੋඇͱ͔ʣ • ςετۦಈ։ൃͷΑ͏ͳ։ൃϑϩʔ • ςετܭըͷࡦఆํ๏ • ςετΛ͢Δ࣌ؒͷ೧ग़ํ๏ • ;Θͬͱͨ͠࢓༷Λ͸͖ͬΓͤ͞Δํ๏ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 19

Slide 20

Slide 20 text

໨࣍ 1. ୈҰ෦ ਺஋Λѻ͏ςετٕ๏ 2. ୈೋ෦ ૊Έ߹ΘͤΛѻ͏ςετٕ๏ 3. ·ͱΊ ͦΕͳΓʹར༻ස౓͕ߴͦ͏ͳ΋ͷΛબΜͰΈ·ͨ͠ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 20

Slide 21

Slide 21 text

ୈҰ෦ ਺஋Λѻ͏ςετٕ๏ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 21

Slide 22

Slide 22 text

਺஋ • ೥ྸ • ֹۚ • ೔࣌ • จࣈ σʔλ্࿈ଓతʹදͤΔ΋ͷɻ௨ৗ͸཭ࢄ஋ͱͯ͠ѻ͏ɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 22

Slide 23

Slide 23 text

ਅཧ஋ʢࢀߟʣ true ͔ false ͔ɻ ࿦ཧԋࢉࢠɺ੍ޚߏจʹΑΓදݱ͞ΕΔ΋ͷɻ • or, and • if, else, unless ୈҰ෦Ͱ͸਺஋͕ओ໾ͳͷͰࠓճऔΓѻ͍·ͤΜɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 23

Slide 24

Slide 24 text

ಉ஋Ϋϥεςετ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 24

Slide 25

Slide 25 text

ಉ஋Ϋϥεςετ ࠷΋جຊͷςετٕ๏Ͱɺ͍͍ͩͨͷέʔεͰςετΛ؅ཧՄೳ ͳ਺ʹ཈͑Δ͜ͱͷͰ͖ΔςΫχοΫɻ ΄ͱΜͲͷϓϩάϥϚ͕ແҙࣝʹߦ͍ͬͯΔ໛༷ɻ ਺஋Ҏ֎ʹ΋ద༻Ͱ͖Δ͕ɺࠓճ͸਺஋ʹϑΥʔΧεͯ͠঺հɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 25

Slide 26

Slide 26 text

ಉ஋Ϋϥεςετ ͨͱ͑͹࣍ͷΑ͏ͳ࢓༷͕͋ͬͨͱ͢Δɻ 0ࡀ ʙ 18ࡀ : ޏ༻͠ͳ͍ 19ࡀ ʙ 55ࡀ : ޏ༻͢Δ 56ࡀ ʙ : ޏ༻͠ͳ͍ 0, 1, 2, 3, ... ͷશͯͷ೥ྸʹ͓͍ͯςετ͢Δඞཁ͕͋Δ͔ʁ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 26

Slide 27

Slide 27 text

ಉ஋Ϋϥεςετ • ௚ײతʹNOͱ౴͑Δਓ͕ଟ͍ • ಉ݁͡ՌΛฦ͢σʔλͷू߹ʮಉ஋Ϋϥεʯ ಉ஋ΫϥεͷதͰ͸ςετ͕ඞཁͳͷ͸Ұ͚ͭͩͰɺͲͷ஋Λબ ΜͰ΋ಉ͘͡Β͍༗ޮɻ ઌͷྫͩͱ {10ࡀ, 30ࡀ, 80ࡀ} ΛબΜͰ΋ {15ࡀ, 40ࡀ, 60 ࡀ} ΛબΜͰ΋ಉ͡ɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 27

Slide 28

Slide 28 text

ಉ஋Ϋϥεςετ ͱ͸͍͑ɺ࣍ͷΑ͏ʹ࣮૷͞Ε͍ͯͨ৔߹ʹ͸΋ͪΖΜແޮɻ def hirable? if age == 0; return false; end if age == 1; return false; end if age == 2; return false; end # ... if age == 19; return true; end if age == 20; return true; end # ... end ͦΜͳ͜ͱ͸ͳ͍ͱئ͍͍ͨ ! 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 28

Slide 29

Slide 29 text

਺஋ͷ༗ޮ஋Ϋϥεɺແޮ஋Ϋϥε ༗ޮ஋Ϋϥε1ͭʹରͯ͠ແޮ஋Ϋϥε2ͭɻ๨Εͣʹςετ͢Δ ʢԼਤ͸ʮޏ༻͢ΔʯΛ༗ޮ஋ͱͨ͠ͱ͖ʣ 19歳 55歳 有効値クラス 無効値クラス 無効値クラス 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 29

Slide 30

Slide 30 text

Ͱ͸ɺಉ஋Ϋϥε͔Βબ୒͢Δ஋͸ Կ͕ྑ͍ʁ 10 Ͱ΋ 11 Ͱ΋ 12 Ͱ΋͍͍ͷ͔ʁ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 30

Slide 31

Slide 31 text

Ͱ͖Ε͹Ұ൪͕ܽؕݟ͔ͭΓ΍͍͢ ஋Ͱ͋ͬͯ΄͍͠ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 31

Slide 32

Slide 32 text

Ͱ͸਺஋ʹ͓͍ͯɺҰ൪͕ܽؕݟͭ ͔Γ΍͍͢஋ͱ͸ʁ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 32

Slide 33

Slide 33 text

ڥք஋ςετ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 33

Slide 34

Slide 34 text

ڥք஋ςετ ͨͱ͑͹ɺ࢓༷ͷڥքʹฆΕΔόά… 0ࡀ ʙ 19ࡀ : ޏ༻͠ͳ͍ 19ࡀ ʙ 55ࡀ : ޏ༻͢Δ 56ࡀ ʙ : ޏ༻͠ͳ͍ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 34

Slide 35

Slide 35 text

ڥք஋ςετ ·ͨɺίʔυʹજΉຌϛε… case age when 0...19 false when 19..56 # <= missing dot true else false end 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 35

Slide 36

Slide 36 text

ڥք஋ςετ ͜͏ͨ͠όά͸݁ߏ͋Δ͋Δɻڥքʹ͸ͨ͘͞Μͷ͕ܽؕજΜͰ ͍Δɻ ͋Δಉ஋Ϋϥεͱଞͷಉ஋ΫϥεͷڥքΛʮڥք஋ʯͱ͍͏ɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 36

Slide 37

Slide 37 text

ڥք஋ςετ ͔ͩΒڥք஋ͱɺͦͷ্͙͢ɺ΋͘͠͸͙͢Լͷ஋ʹண໨͢Δɻ • ڥք஋͕19ࡀͷͱ͖ɺண໨͢΂͖͸ {18, 19, 20} • ڥք஋͕55ࡀͷͱ͖ɺண໨͢΂͖͸ {54, 55, 56} ҰํͰಉ஋ΫϥεςετΛࢥ͍ग़ͤ͹ɺςετ͢΂͖஋͸ಉ஋Ϋ ϥε಺Ͱͻͱ͚ͭͩͰྑ͍ɻ ͭ·Γ {18, 19, 55, 56} Ͱྑ͍ɺͱͳΔɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 37

Slide 38

Slide 38 text

ڥք஋ςετ 19 55 有効値クラス 無効値クラス 無効値クラス 18 56 ؆୯ͩͱࢥ͍ͬͯͯ΋ਤʹॻ͍ͯΈΔͱؾ෇͖͕ಘΒΕΔ͜ͱ͕ ͋ΔͷͰ͓͢͢Ίɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 38

Slide 39

Slide 39 text

❔ ڥք஋ςετΫΠζʂ ۈ຿࣌ؒͷڥք஋ 8.00hɺখ਺ୈ2Ґ·Ͱѻ͍͍ͨɻ ண໨͢΂͖஋͸ʁ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 39

Slide 40

Slide 40 text

❔ ڥք஋ςετΫΠζʂ ۈ຿࣌ؒͷڥք஋ 8.00hɺখ਺ୈ2Ґ·Ͱѻ͍͍ͨɻ ண໨͢΂͖஋͸ʁ {7.99, 8.00, 8.01} 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 40

Slide 41

Slide 41 text

❔ ڥք஋ςετΫΠζʂʂ ग़ۈ࣌ؒͷڥք஋͕ 10:30:00ɺඵ୯ҐͰѻ͍͍ͨɻ ண໨͢΂͖஋͸ʁ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 41

Slide 42

Slide 42 text

❔ ڥք஋ςετΫΠζʂʂ ग़ۈ࣌ؒͷڥք஋͕ 10:30:00ɺඵ୯ҐͰѻ͍͍ͨɻ ண໨͢΂͖஋͸ʁ {10:29:59, 10:30:00, 10:30:01} 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 42

Slide 43

Slide 43 text

ର৅ͷ஋ͷ୯Ґ͕େࣄ • ۈ຿࣌ؒͷڥք஋ 8.00hɺখ਺ୈ2Ґ·Ͱ => {7.99, 8.00, 8.01} • ग़ۈ࣌ؒͷڥք஋͕ 10:30:00ɺඵ୯Ґ => {10:29:59, 10:30:00, 10:30:01} 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 43

Slide 44

Slide 44 text

ͪͳΈʹ: ظؒͷڥք͸΍΍͍͜͠ ΧϨϯμʔΞϓϦͰɺ࣍ͷ2ͭͰσʔλ͸Ͳ͏࣋ͨͤΔʁ • 2/10 ʙ 2/12 ͱͨ͠ͱ͖ɺ2/12 ͸ऴ೔ؚΊ͍ͨ • 10:00 ʙ 12:00 ͱͨ͠ͱ͖ɺ12:00:00 ͸ؚΊͨ͘ͳ͍ ೔෇ࢦఆͷ৔߹͸಺෦දݱͰ 2/10 ʙ 2/13 ͱ͢Δ౳ɺऴ୺ΛͲͪ Β͔ʹ౷Ұ͢Δ΄͏͕ѻ͍΍ͦ͢͏ɻ2 2 RFC 2445 iCalender Ͱ͸ऴ୺ΛؚΊͳ͍ํʹ౗͍ͯ͠Δ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 44

Slide 45

Slide 45 text

2࣠ͷڥք஋ςετ ݱ࣮ʹ͸ɺෳ਺ͷ࣠ͷڥքΛѻ͏έʔε͕΄ͱΜͲɻ ࣍ͷ࢓༷͸Ͳ͏ςετͨ͠Βྑ͍ͩΖ͏ʁ • ෦໳ίʔυ͸ ΞϧϑΝϕοτ[a-c] + ਺ࣈ[1-5] Ͱ͋Δ͜ͱ • ্هΛຬͨͨ͠Β trueɺຬͨ͞ͳ͔ͬͨΒ false Λฦ͢͜ͱ • ͨͱ͑͹ a1 ͸ trueɺd5 ͸ false 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 45

Slide 46

Slide 46 text

2࣠ͷڥք஋ςετ ڥք஋ͷ૊Έ߹Θͤ͸άϥϑʹϓϩοτ͢Δͱ෼͔Γ΍͍͢ 1 5 a c 0 6 ` d 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 46

Slide 47

Slide 47 text

2࣠ͷڥք஋ςετ ϓϩοτ͢΂ͯͰςετΛ͠ͳ͚Ε͹͍͚ͳ͍Θ͚Ͱ͸ͳ͍ɻ ਖ਼ৗܥͷڥք஋͸·ͱΊͯςετͰ͖Δɻ 1 5 a c 0 6 ` d code valid? a1 ⭕ c5 ⭕ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 47

Slide 48

Slide 48 text

code valid? `1 ❌ d1 ❌ a0 ❌ a6 ❌ 2࣠ͷڥք஋ςετ ҟৗܥͷڥք஋͸ʁ → ਖ਼ৗܥ΄Ͳ͸·ͱΊͯςετͰ͖ͳ͍ 1 5 a c 0 6 ` d 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 48

Slide 49

Slide 49 text

2࣠ͷڥք஋ςετ ϙΠϯτ: ແޮ஋͸ଞͷແޮ஋ΛӅ͢ ྫʣ d6 ͱ͍͏ςετσʔλ false ʹͳΔͷ͸ d ͕ݪҼ͔ 6 ͔͕෼͔Βͳ͍ɻ ΞϧϑΝϕοτͷνΣοΫͱ਺ࣈͷνΣοΫͲͪΒ͕ઌʹߦΘΕ Δ͔͸࣮૷࣍ୈɻ ࣮૷ґଘͷյΕ΍͍͢ςετʹͳΔ͏͑ɺยํͷਖ਼͔͠͞͠อূ Ͱ͖ͳ͍ɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 49

Slide 50

Slide 50 text

2࣠ͷڥք஋ςετͷ·ͱΊ • ਖ਼ৗܥ͸ෳ਺ͷ༗ޮڥք஋Λಉ࣌ʹ֬ೝͰ͖Δ • ҟৗܥ͸༗ޮ஋ͱແޮ஋ͷ૊Έ߹ΘͤΛҰͭͣͭ֬ೝ͢Δ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 50

Slide 51

Slide 51 text

࣮૷ํ๏͕࣮֬ʹ૝ఆͰ͖Δ΋ͷ͸ྫ֎΋͋Γ RailsͷόϦσʔγϣϯ (ActiveModel::Varidations) ʹݶͬͯ ͸ errors ͔ΒݪҼ͕෼͔ΔͷͰແޮ஋͸ӅΕͳ͍ɻ ͨͩ͠ͻͱͭͷఆٛͰෳ਺ͷແޮ஋͕ݱΕΔ΋ͷ͸আ͘ɻ validates :code, format: { with: /[a-c][1-5]/ } # ਺஋ͱਅཧ஋ͷ૊Έ߹Θͤ validates :name, length: { maximum: 30 }, on: :create 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 51

Slide 52

Slide 52 text

Ͱ΋ςετέʔεΛߜΓࠐΉࢦ਑͕ ΠϚΠνΘ͔ΒΜ ʢ͔͠΋͕࣠͞Βʹ૿͑ͨΒ΋͏ѻ͍͖Εͳ ͦ͞͏…ʣ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 52

Slide 53

Slide 53 text

υϝΠϯ෼ੳςετ ؔ࿈ͷ͋Δෳ਺ͷ࣠Λಉ࣌ʹςετ͢Δͱ͖ɺςετ͢΂͖஋ͷ ૊Έ߹ΘͤΛޮ཰Α͘෼ੳ͢Δํ๏ ಉ஋Ϋϥεςετɺڥք஋ςετΛn࣍ͷଟ࣍ݩʹ֦ுɾҰൠԽ͠ ͯߟ͑Δ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 53

Slide 54

Slide 54 text

υϝΠϯ෼ੳςετ: ༻ޠͷ੔ཧ 10 7 in out 9 13 on off x >= 10 on: ڥք্ͷ஋ in: ڥք৚݅Λຬ͕ͨ͢ڥք্ʹͳ͍஋ off: ڥք৚݅Λຬͨ͞ͳ͍ɺڥքʹྡ઀͢Δ஋ out: ڥք৚݅Λຬͨ͞ͳ͍஋ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 54

Slide 55

Slide 55 text

υϝΠϯ෼ੳςετ લड़ͷ෦໳ίʔυΛྫʹ෼ੳͯ͠ΈΔɻ • ෦໳ίʔυ͸ ΞϧϑΝϕοτ[a-c] + ਺ࣈ[1-5] Ͱ͋Δ͜ͱ • ্هΛຬͨͨ͠Β trueɺຬͨ͞ͳ͔ͬͨΒ false Λฦ͢͜ͱ ʮυϝΠϯςετϚτϦΫεʯͱ͍͏ͷΛॻ͍ͯ෼ੳ͢Δɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 55

Slide 56

Slide 56 text

1 2 3 4 5 6 7 8 [a-c] x >= ‘a’ on v off v x <= ‘c’ on v off v 代表値 (in | on) v v v v [1-5] x >= ‘1’ on v off v x <= ‘5’ on v off v 代表値 (in | on) v v v v 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 56

Slide 57

Slide 57 text

1 2 3 4 5 6 7 8 [a-c] x >= ‘a’ on v off v x <= ‘c’ on v off v 代表値 (in | on) v v v v [1-5] x >= ‘1’ on v off v x <= ‘5’ on v off v 代表値 (in | on) v v v v υϝΠϯ෼ੳςετ • ແޮ஋͸ଞͷແޮ஋ΛӅ͢ • ແޮ஋Λಉ࣌ʹςετ͠ͳ͍Α͏ʹɺ ยํͷม਺Λ୅ද஋ʹݻఆ͠ɺ΋͏ย ํΛมԽͤ͞Δ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 57

Slide 58

Slide 58 text

1 2 3 4 5 6 7 8 [a-c] x >= ‘a’ on v off v x <= ‘c’ on v off v 代表値 (in | on) v v v v [1-5] x >= ‘1’ on v off v x <= ‘5’ on v off v 代表値 (in | on) v v v v লུͰ͖Δςετέʔε • ಉ͡૊Έ߹Θͤ͸΍Δඞཁ͕ͳ͍ • ਖ਼ৗܥ͸޻෉࣍ୈͰҰ౓ʹςετՄೳ ୅ද஋Λ on ͱ͢Ε͹ɺ1, 3, 5, 7 ͸·ͱΊ ͯલड़ͷදͷΑ͏ʹͳΔɻ code valid? a1 ⭕ c5 ⭕ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 58

Slide 59

Slide 59 text

͜͜·Ͱ͕਺஋Λѻ͏ςετٕ๏Ͱ ͨ͠ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 59

Slide 60

Slide 60 text

͜͏ͯ͠ߟ͑ͯΈΔͱҎ֎ͱԞ͕ਂ ͍ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 60

Slide 61

Slide 61 text

ٳܜ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 61

Slide 62

Slide 62 text

ୈχ෦ ૊Έ߹ΘͤΛѻ͏ςετٕ๏ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 62

Slide 63

Slide 63 text

૊Έ߹Θͤςετ • OSXͱWindowsɺFirefoxͱChromeͱSafariɺ͜ΕΒΛ૊Έ߹Θ ͤͯ΋ͪΌΜͱಈ͘ͷ͔ʁ • Ұཡը໘ʹ৽ͨʹιʔτػೳΛ௥Ճͨ͠ɻطଘͷߜࠐػೳʹӨ ڹΛٴ΅͍ͯ͠ͳ͍͔ʁ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 63

Slide 64

Slide 64 text

૊Έ߹Θͤςετ Ұݟؔ܎ͳ͍ͩΖ͏ͱࢥΘΕΔ૊߹ͤʹόά͸જΉ΋ͷɻ ͦΕΒΛ૊Έ߹Θͤͨͱ͖ʹɺຊ౰ʹ໰୊͕ى͜Βͳ͍͔Λ֬ೝ ͢Δςετɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 64

Slide 65

Slide 65 text

૊Έ߹Θͤςετ ͔͠͠૊Έ߹Θͤͷύϥϝʔλ͕૿͍͑ͯ͘ͱɺ૯౰ΓͰ͸๲େ ͳྔʹͳΔɻԿΒ͔ͷ߹ཧతͳϧʔϧͷ΋ͱʹ૊Έ߹ΘͤͷҰ෦ Λςετ͍ͨ͠΋ͷɻ ֤ػೳ͕ʢ࢓্༷ʣ௚ߦ͓ͯ͠Γɺަޓ࡞༻͕গͳ͍͜ͱΛલఏ ʹͰ͖Ε͹ɺʮϖΞߏ੒ςετʯ͕ར༻Ͱ͖Δɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 65

Slide 66

Slide 66 text

ϖΞߏ੒ςετ • શͯͷ૊Έ߹ΘͤͰ͸ͳ͘ɺύϥϝʔλؒͷϖΞͰςετ • {Android + Chrome + DoCoMo} • {iOS + Chrome + SoftBank} • ͜ΕͰ6ͭͷϖΞΛςετͨ͜͠ͱʹͳΔ • ଟ͘ͷόά͸ɺൺֱతগ਺ͷύϥϝʔλؒͷ૬ޓ࡞༻ʹΑΓҾ ͖ى͜͞ΕΔɺͱ͍͏ܦݧଇ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 66

Slide 67

Slide 67 text

୅දతͳϖΞߏ੒ςετ • ௚ަද • ϖΞϫΠζ๏ ࠓճ͸͜ͷ2ͭΛ͞Βͬͱ঺հ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 67

Slide 68

Slide 68 text

ͦͷલʹ: ૊Έ߹Θͤςετͷ஫ҙ఺ ֤ػೳͷؔ࿈ੑ͕ʢ࢓্༷ʣ௿͍͜ͱ͕લఏͷςΫχοΫɻͦ͏ Ͱͳ͍ػೳؒͰ͸ద༻Ͱ͖ͳ͍ɻ ʢ͜ͷલఏ͕ࡌͬͯͳ͍هࣄ͕ͨ·ʹ͋Δʣ ୯ମςετͳͲͰे෼ςετͨ͠͏͑ͰɺͦΕͧΕ͕૊Έ߹Θͤ ͯݺͼग़͍ͤͯΔ͔Λ݁߹ςετʢfeature spec ౳ʣͰ֬ೝ͢Δ ͷ͕ྑͦ͞͏ɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 68

Slide 69

Slide 69 text

௚ަද 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 69

Slide 70

Slide 70 text

1 2 3 1 1 1 1 2 1 2 2 3 2 1 2 4 2 2 1 ௚ަද ΦΠϥʔͷ࣌୅ͷϥςϯํ֨Λɺ඼࣭޻ ֶͱͯ͠ൃలͤͨ͞΋ͷɻ Ͳͷ2ྻΛͱͬͯ΋ɺͦͷ஋ͷશͯͷϖΞ ͕ಉ͡਺͚ͩݱΕΔΑ͏ʹ࡞ͬͨදɻ ӈਤ͸ ௚ަදͱݺ͹ΕΔ΋ͷͰɺ3ύ ϥϝʔλ2ਫ४ʹରԠɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 70

Slide 71

Slide 71 text

௚ަද͔ΒςετέʔεΛ࡞Δ 1 2 3 1 1 1 1 2 1 2 2 3 2 1 2 4 2 2 1 OS ブラウザ キャリア 1 Android Chrome DoCoMo 2 Android Firefox SB 3 iOS Chrome SB 4 iOS Firefox DoCoMo 1ߦ໨͸ඞͣ1͕ฒͿɻ1ΛσϑΥϧτͱ͢Δͷ͕ྑ͍ɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 71

Slide 72

Slide 72 text

௚ަදͷಛ௃ • ۉߧੑͷ੍໿ • ΋͠ϖΞ͕ॏෳͯ͠ෳ਺ճݱΕΔͳΒɺͲͷϖΞ΋ಉ͡ճ਺ͩ ͚ݱΕΔ • 3ύϥϝʔλҎ্ͷؒͷ૊Έ߹Θͤ΋όϥϯεΑ͘ݱΕΔ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 72

Slide 73

Slide 73 text

௚ަදͷ೉఺ • දͷ࡞੒ίετ͕ߴ͍ • ؾܰʹ࡞Γ௚ͤͳ͍ɻදͷαΠζʹറΒΕɺطଘͷςετͷྲྀ ༻΍ςετͷলུ͕ى͜Γͦ͏ • ௚ަදΛվྑ࣮͠༻తʹͨ͠HAYST๏͕͋Δ͕ɺπʔϧ͸༗ঈ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 73

Slide 74

Slide 74 text

ϖΞϫΠζ๏ʢΦʔϧϖΞ๏ʣ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 74

Slide 75

Slide 75 text

ϖΞϫΠζ๏ 2ύϥϝʔλؒͷ࠷খݶͷ૊Έ߹ΘͤʢϖΞʣ͚ͩΛอূɻ ௚ަදͷۉߧੑͷ੍໿ΛऔΓআ͘͜ͱͰɺ͞ΒʹςετέʔεΛ ݮΒ͢͜ͱ͕Ͱ͖Δɻ πʔϧ͕ଟ͘ެ։͞Ε͍ͯΔɻPICT3 ΍ CIT-BACH4 ͕༗໊ 4 h$p:/ /www-ise4.ist.osaka-u.ac.jp/~t-tu6ya/CIT 3 h$ps:/ /github.com/Microso4/pict 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 75

Slide 76

Slide 76 text

ϖΞϫΠζ๏: PICT Microso'͕OSSͰެ։͍ͯ͠Δςετέʔεੜ੒πʔϧɻϖΞͷ ੜ੒ʹରԠ͍ͯ͠Δɻ $ cat model.txt Role: Admin, General, Student, Guest Theme: Black, White, Red Login method: Google, ID/PW ૯౰ΓͳΒ 4 * 3 * 2 = 24 ௨Γ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 76

Slide 77

Slide 77 text

$ pict model.txt Role Theme Login method Student White Google Student Black ID/PW Guest Black Google Student Red Google Admin White ID/PW General White ID/PW General Black Google Guest Red ID/PW Admin Red Google Admin Black ID/PW General Red ID/PW Guest White Google 12௨Γ (50%) ʹ཈͑ΒΕͨʂ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 77

Slide 78

Slide 78 text

ࠓճ͸3ύϥϝʔλ͕ͩͬͨɺ૯౰Γͱͷࠩ͸ύϥϝʔλ͕૿͑Δ ΄Ͳଟ͘ͳΔ5 5 h$ps:/ /msdn.microso1.com/en-us/library/cc150619.aspx 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 78

Slide 79

Slide 79 text

ϖΞϫΠζ๏ͷ೉఺ • 3ύϥϝʔλҎ্ͷؒͷ໢ཏ཰͸ߟྀ͞Εͳ͍ • πʔϧʹΑͬͯ໢ཏͰ͖Δ͕100%໢ཏɻςετέʔε͸૿͑ Δ • ܦݧతʹ10ʙ40%ͷόάΛݟಀͯ͠͠·͏ͱओு͢Δ࿦จ΋͋ Δ6 6 h$p:/ /csrc.nist.gov/groups/SNS/acts/index.html 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 79

Slide 80

Slide 80 text

݁ہͲͬͪͷํ๏Λ࢖͏ͷ͕͍͍ͷ • ௚ަද͸૊Έ߹Θͤͷόϥϯε͕ྑ͍͕ɺύϥϝʔλ΍ਫ४ͷ ਺ɺදͷେ͖͞ͷ੍໿͋Γ • ઴ਐతʹίʔυΛҭ͍ͯͨͱ͖ɺ࢓༷มߋ͕ଟ͍ͱ͖͸޲͔ͳ ͍ • ΑͬͯࣗಈςετΛॻ͖ͮΒ͍ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 80

Slide 81

Slide 81 text

ීஈ࢖͍͸ϖΞϫΠζ๏͕͓͢͢Ί • ίϚϯυϥΠϯπʔϧ΋͋Δ • ௚ަද͸ෆ҆ఆͳର৅ͷ܏޲Λ෼ੳ͢Δͱ͖΍ɺड͚ೖΕςε τΛ͢Δͱ͖ʹ࢖͑ͦ͏ • ͲͪΒͷํ๏΋ϛογϣϯΫϦςΟΧϧͳର৅ʹద༻͢Δ͔Ͳ ͏͔͸ݕ౼͕ඞཁ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 81

Slide 82

Slide 82 text

େࣄͳͷ͸ • ͲͷػೳͱҰॹʹ࢖ΘΕͦ͏͔ʁ • Ͳͷػೳͱ૊Έ߹ΘͤͨΒόά͕ग़ͦ͏͔ʁ • ͦΕͧΕͷػೳʹ͸ͲΜͳਫ४͕͋ΓಘΔ͔ʁ ͱ͍͏ߟ͑ํɺ࢓༷ͷཧղɺצɻ ͋΍͍͠ػೳɺਫ४Λݟ͚ͭଛͳͬͨΒɺͲΜͳʹ૊Έ߹ΘͤΑ ͏͕όά͸ݟ͚ͭΒΕͳ͍ɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 82

Slide 83

Slide 83 text

ͪͳΈʹ ϖΞߏ੒ςετ͸ɺՊֶతʹ৴པੑΛূ໌ͨ͠࿦จ͕ࠓͷͱ͜Ζ ͳ͍ɻ ౷ܭɾ࣮੷͔Β࿦ͨ͡΋ͷ͸ଟ͘ग़͓ͯΓɺݱ৔Ͱ޿͘࢖ΘΕͯ ͍Δɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 83

Slide 84

Slide 84 text

·ͱΊ • ςετΛઃܭ͢Δ͜ͱͷେ੾͞Λ࿩ͨ͠ • ໌೔͔Β࢖͑Δςετٕ๏Λ঺հͨ͠ • ਺஋ͷςετ • ૊Έ߹Θͤͷςετ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 84

Slide 85

Slide 85 text

ٕ๏ʹͱΒΘΕͳ͍͜ͱ ໨త͸ɺແݶͷςετέʔεͷத͔ΒޮՌతͳςετέʔεΛબ ͼग़͢͜ͱͰ͋ͬͯɺςετٕ๏Λ࣮ફ͢Δ͜ͱͰ͸ͳ͍ • ո͍͠ͱࢥͬͨ͜ͱ͸ςετͯ͠ΈΔɻ௚ײΛ৴͡Δ • ͨͱ͑͹ɺԿ΋͠ͳ͔ͬͨΒͲ͏ͳΔͩΖ͏ʁͱࢥͬͨΒԿ΋ ͠ͳ͍͜ͱΛςετͯ͠ΈΔ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 85

Slide 86

Slide 86 text

໌೔͔ΒτϥΠ ! 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 86

Slide 87

Slide 87 text

Copyrights h"ps:/ /flic.kr/p/gDqtze h"ps:/ /flic.kr/p/9Sgawd h"ps:/ /flic.kr/p/QFzL4S h"ps:/ /flic.kr/p/9P1ebv h"ps:/ /flic.kr/p/x1qSv h"ps:/ /flic.kr/p/baoynZ h"ps:/ /flic.kr/p/aDPTFx 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 87