Introduction to Entering Test Design (Japanese)

Introduction to Entering Test Design (Japanese)

0814cba621ab9aeabcf91b4095d9dd50?s=128

Takuya Matsumoto

February 17, 2017
Tweet

Transcript

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

    1
  2. ࢲ • @upinetree (twi-er, github, qiita) • גࣜձࣾສ༿ • h-ps:/

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

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

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

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

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

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

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

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

  11. ςετʹ͸஫ҙ͢΂͖͜ͱ͕ͨ͘͞Μ͋Δ • ϩδοΫͷਖ਼͠͞ΛอূͰ͖Δ͔ʁ • ܽؕΛݕग़͠΍͍͔͢ʁ • ςετํ๏͸ޮՌత͔ʁ • ςετέʔε͸ඞཁे෼͔ʁ •

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

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

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

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

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

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

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

  19. ͓࿩͠ͳ͍͜ͱ • WebΞϓϦͷద੾ͳςετ۠෼ʢControllerςετͷੋඇͱ͔ʣ • ςετۦಈ։ൃͷΑ͏ͳ։ൃϑϩʔ • ςετܭըͷࡦఆํ๏ • ςετΛ͢Δ࣌ؒͷ೧ग़ํ๏ •

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

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

  22. ਺஋ • ೥ྸ • ֹۚ • ೔࣌ • จࣈ σʔλ্࿈ଓతʹදͤΔ΋ͷɻ௨ৗ͸཭ࢄ஋ͱͯ͠ѻ͏ɻ

    2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 22
  23. ਅཧ஋ʢࢀߟʣ true ͔ false ͔ɻ ࿦ཧԋࢉࢠɺ੍ޚߏจʹΑΓදݱ͞ΕΔ΋ͷɻ • or, and •

    if, else, unless ୈҰ෦Ͱ͸਺஋͕ओ໾ͳͷͰࠓճऔΓѻ͍·ͤΜɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 23
  24. ಉ஋Ϋϥεςετ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 24

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

  26. ಉ஋Ϋϥεςετ ͨͱ͑͹࣍ͷΑ͏ͳ࢓༷͕͋ͬͨͱ͢Δɻ 0ࡀ ʙ 18ࡀ : ޏ༻͠ͳ͍ 19ࡀ ʙ 55ࡀ

    : ޏ༻͢Δ 56ࡀ ʙ : ޏ༻͠ͳ͍ 0, 1, 2, 3, ... ͷશͯͷ೥ྸʹ͓͍ͯςετ͢Δඞཁ͕͋Δ͔ʁ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 26
  27. ಉ஋Ϋϥεςετ • ௚ײతʹNOͱ౴͑Δਓ͕ଟ͍ • ಉ݁͡ՌΛฦ͢σʔλͷू߹ʮಉ஋Ϋϥεʯ ಉ஋ΫϥεͷதͰ͸ςετ͕ඞཁͳͷ͸Ұ͚ͭͩͰɺͲͷ஋Λબ ΜͰ΋ಉ͘͡Β͍༗ޮɻ ઌͷྫͩͱ {10ࡀ, 30ࡀ,

    80ࡀ} ΛબΜͰ΋ {15ࡀ, 40ࡀ, 60 ࡀ} ΛબΜͰ΋ಉ͡ɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 27
  28. ಉ஋Ϋϥεςετ ͱ͸͍͑ɺ࣍ͷΑ͏ʹ࣮૷͞Ε͍ͯͨ৔߹ʹ͸΋ͪΖΜແޮɻ 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
  29. ਺஋ͷ༗ޮ஋Ϋϥεɺແޮ஋Ϋϥε ༗ޮ஋Ϋϥε1ͭʹରͯ͠ແޮ஋Ϋϥε2ͭɻ๨Εͣʹςετ͢Δ ʢԼਤ͸ʮޏ༻͢ΔʯΛ༗ޮ஋ͱͨ͠ͱ͖ʣ 19歳 55歳 有効値クラス 無効値クラス 無効値クラス 2017-02-17 גࣜձࣾສ༿

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

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

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

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

  34. ڥք஋ςετ ͨͱ͑͹ɺ࢓༷ͷڥքʹฆΕΔόά… 0ࡀ ʙ 19ࡀ : ޏ༻͠ͳ͍ 19ࡀ ʙ 55ࡀ

    : ޏ༻͢Δ 56ࡀ ʙ : ޏ༻͠ͳ͍ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 34
  35. ڥք஋ςετ ·ͨɺίʔυʹજΉຌϛε… case age when 0...19 false when 19..56 #

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

  37. ڥք஋ςετ ͔ͩΒڥք஋ͱɺͦͷ্͙͢ɺ΋͘͠͸͙͢Լͷ஋ʹண໨͢Δɻ • ڥք஋͕19ࡀͷͱ͖ɺண໨͢΂͖͸ {18, 19, 20} • ڥք஋͕55ࡀͷͱ͖ɺண໨͢΂͖͸ {54,

    55, 56} ҰํͰಉ஋ΫϥεςετΛࢥ͍ग़ͤ͹ɺςετ͢΂͖஋͸ಉ஋Ϋ ϥε಺Ͱͻͱ͚ͭͩͰྑ͍ɻ ͭ·Γ {18, 19, 55, 56} Ͱྑ͍ɺͱͳΔɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 37
  38. ڥք஋ςετ 19 55 有効値クラス 無効値クラス 無効値クラス 18 56 ؆୯ͩͱࢥ͍ͬͯͯ΋ਤʹॻ͍ͯΈΔͱؾ෇͖͕ಘΒΕΔ͜ͱ͕ ͋ΔͷͰ͓͢͢Ίɻ

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

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

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

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

    ؼࣾ೔ 42
  43. ର৅ͷ஋ͷ୯Ґ͕େࣄ • ۈ຿࣌ؒͷڥք஋ 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
  44. ͪͳΈʹ: ظؒͷڥք͸΍΍͍͜͠ ΧϨϯμʔΞϓϦͰɺ࣍ͷ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
  45. 2࣠ͷڥք஋ςετ ݱ࣮ʹ͸ɺෳ਺ͷ࣠ͷڥքΛѻ͏έʔε͕΄ͱΜͲɻ ࣍ͷ࢓༷͸Ͳ͏ςετͨ͠Βྑ͍ͩΖ͏ʁ • ෦໳ίʔυ͸ ΞϧϑΝϕοτ[a-c] + ਺ࣈ[1-5] Ͱ͋Δ͜ͱ •

    ্هΛຬͨͨ͠Β trueɺຬͨ͞ͳ͔ͬͨΒ false Λฦ͢͜ͱ • ͨͱ͑͹ a1 ͸ trueɺd5 ͸ false 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 45
  46. 2࣠ͷڥք஋ςετ ڥք஋ͷ૊Έ߹Θͤ͸άϥϑʹϓϩοτ͢Δͱ෼͔Γ΍͍͢ 1 5 a c 0 6 ` d

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

    d code valid? a1 ⭕ c5 ⭕ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 47
  48. code valid? `1 ❌ d1 ❌ a0 ❌ a6 ❌

    2࣠ͷڥք஋ςετ ҟৗܥͷڥք஋͸ʁ → ਖ਼ৗܥ΄Ͳ͸·ͱΊͯςετͰ͖ͳ͍ 1 5 a c 0 6 ` d 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 48
  49. 2࣠ͷڥք஋ςετ ϙΠϯτ: ແޮ஋͸ଞͷແޮ஋ΛӅ͢ ྫʣ d6 ͱ͍͏ςετσʔλ false ʹͳΔͷ͸ d ͕ݪҼ͔

    6 ͔͕෼͔Βͳ͍ɻ ΞϧϑΝϕοτͷνΣοΫͱ਺ࣈͷνΣοΫͲͪΒ͕ઌʹߦΘΕ Δ͔͸࣮૷࣍ୈɻ ࣮૷ґଘͷյΕ΍͍͢ςετʹͳΔ͏͑ɺยํͷਖ਼͔͠͞͠อূ Ͱ͖ͳ͍ɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 49
  50. 2࣠ͷڥք஋ςετͷ·ͱΊ • ਖ਼ৗܥ͸ෳ਺ͷ༗ޮڥք஋Λಉ࣌ʹ֬ೝͰ͖Δ • ҟৗܥ͸༗ޮ஋ͱແޮ஋ͷ૊Έ߹ΘͤΛҰͭͣͭ֬ೝ͢Δ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 50

  51. ࣮૷ํ๏͕࣮֬ʹ૝ఆͰ͖Δ΋ͷ͸ྫ֎΋͋Γ RailsͷόϦσʔγϣϯ (ActiveModel::Varidations) ʹݶͬͯ ͸ errors ͔ΒݪҼ͕෼͔ΔͷͰແޮ஋͸ӅΕͳ͍ɻ ͨͩ͠ͻͱͭͷఆٛͰෳ਺ͷແޮ஋͕ݱΕΔ΋ͷ͸আ͘ɻ validates :code,

    format: { with: /[a-c][1-5]/ } # ਺஋ͱਅཧ஋ͷ૊Έ߹Θͤ validates :name, length: { maximum: 30 }, on: :create 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 51
  52. Ͱ΋ςετέʔεΛߜΓࠐΉࢦ਑͕ ΠϚΠνΘ͔ΒΜ ʢ͔͠΋͕࣠͞Βʹ૿͑ͨΒ΋͏ѻ͍͖Εͳ ͦ͞͏…ʣ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 52

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

  54. υϝΠϯ෼ੳςετ: ༻ޠͷ੔ཧ 10 7 in out 9 13 on off

    x >= 10 on: ڥք্ͷ஋ in: ڥք৚݅Λຬ͕ͨ͢ڥք্ʹͳ͍஋ off: ڥք৚݅Λຬͨ͞ͳ͍ɺڥքʹྡ઀͢Δ஋ out: ڥք৚݅Λຬͨ͞ͳ͍஋ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 54
  55. υϝΠϯ෼ੳςετ લड़ͷ෦໳ίʔυΛྫʹ෼ੳͯ͠ΈΔɻ • ෦໳ίʔυ͸ ΞϧϑΝϕοτ[a-c] + ਺ࣈ[1-5] Ͱ͋Δ͜ͱ • ্هΛຬͨͨ͠Β

    trueɺຬͨ͞ͳ͔ͬͨΒ false Λฦ͢͜ͱ ʮυϝΠϯςετϚτϦΫεʯͱ͍͏ͷΛॻ͍ͯ෼ੳ͢Δɻ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 55
  56. 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
  57. 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
  58. 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
  59. ͜͜·Ͱ͕਺஋Λѻ͏ςετٕ๏Ͱ ͨ͠ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 59

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

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

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

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

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

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

  66. ϖΞߏ੒ςετ • શͯͷ૊Έ߹ΘͤͰ͸ͳ͘ɺύϥϝʔλؒͷϖΞͰςετ • {Android + Chrome + DoCoMo} •

    {iOS + Chrome + SoftBank} • ͜ΕͰ6ͭͷϖΞΛςετͨ͜͠ͱʹͳΔ • ଟ͘ͷόά͸ɺൺֱతগ਺ͷύϥϝʔλؒͷ૬ޓ࡞༻ʹΑΓҾ ͖ى͜͞ΕΔɺͱ͍͏ܦݧଇ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 66
  67. ୅දతͳϖΞߏ੒ςετ • ௚ަද • ϖΞϫΠζ๏ ࠓճ͸͜ͷ2ͭΛ͞Βͬͱ঺հ 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 67

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

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

  70. 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
  71. ௚ަද͔ΒςετέʔεΛ࡞Δ 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
  72. ௚ަදͷಛ௃ • ۉߧੑͷ੍໿ • ΋͠ϖΞ͕ॏෳͯ͠ෳ਺ճݱΕΔͳΒɺͲͷϖΞ΋ಉ͡ճ਺ͩ ͚ݱΕΔ • 3ύϥϝʔλҎ্ͷؒͷ૊Έ߹Θͤ΋όϥϯεΑ͘ݱΕΔ 2017-02-17 גࣜձࣾສ༿

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

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

  75. ϖΞϫΠζ๏ 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
  76. ϖΞϫΠζ๏: 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
  77. $ 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
  78. ࠓճ͸3ύϥϝʔλ͕ͩͬͨɺ૯౰Γͱͷࠩ͸ύϥϝʔλ͕૿͑Δ ΄Ͳଟ͘ͳΔ5 5 h$ps:/ /msdn.microso1.com/en-us/library/cc150619.aspx 2017-02-17 גࣜձࣾສ༿ ؼࣾ೔ 78

  79. ϖΞϫΠζ๏ͷ೉఺ • 3ύϥϝʔλҎ্ͷؒͷ໢ཏ཰͸ߟྀ͞Εͳ͍ • πʔϧʹΑͬͯ໢ཏͰ͖Δ͕100%໢ཏɻςετέʔε͸૿͑ Δ • ܦݧతʹ10ʙ40%ͷόάΛݟಀͯ͠͠·͏ͱओு͢Δ࿦จ΋͋ Δ6 6

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

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

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

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

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

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

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

  87. 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