Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Summary of Diagnose unreliable code with test repetitions

Summary of Diagnose unreliable code with test repetitions

shunsuke sato

June 25, 2021
Tweet

More Decks by shunsuke sato

Other Decks in Programming

Transcript

  1. Summary of


    “Diagnose unreliable code


    with test repetitions”


    at WWDC 2021
    !ू·Ε4XJGU޷͖ʂ4XJGUѪ޷ձεϐϯΦϑ88%$ηογϣϯཁ໿ձ

    View Slide

  2. ࣗݾ঺հ

    View Slide

  3. ໊લࠤ౻ढ़ี
    ৬ۀϞόΠϧΞϓϦΤϯδχΞʢJ04ΛϝΠϯʹ"OESPJE΋ͪΐͬͱʣ
    ॴଐגࣜձࣾΞϯυύου
    ʮݐங%9ʯΛ΍͍ͬͯΔձࣾ
    ࠓ೥ͷJ04%$ͷϓϥνφεϙϯαʔ
    5XJUUFS!VTIJTBOUPBTPCV
    झຯίʔώʔɺαοΧʔɾϑοταϧ

    View Slide

  4. Diagnose unreliable code with test repetitions

    View Slide

  5. ҰݴͰ·ͱΊΔͱ
    ʮෆ҆ఆͳςετʢ࣌ʑίέΔςετʣʯΛ௚ͨ͢Ίʹ
    ʮςετͷ܁Γฦ࣮͠ߦʯػೳ͕௥Ճ͞Εͨ

    View Slide

  6. ηογϣϯͷߏ੒
    ʮςετͷ܁Γฦ࣮͠ߦʯػೳͷ֓ཁ
    ʮςετͷ܁Γฦ࣮͠ߦʯػೳΛ༻͍ͨσϞ
    5JQTʢYDPEFCVJMEίϚϯυ·ΘΓʣ

    View Slide

  7. ηογϣϯͷߏ੒
    ʮςετͷ܁Γฦ࣮͠ߦʯػೳͷ֓ཁ
    ʮςετͷ܁Γฦ࣮͠ߦʯػೳΛ༻͍ͨσϞ
    5JQTʢYDPEFCVJMEίϚϯυ·ΘΓʣ

    View Slide

  8. ʮςετͷ܁Γฦ࣮͠ߦʯػೳͷ֓ཁ

    View Slide

  9. ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ

    View Slide

  10. ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ
    ڝ߹ঢ়ଶ؀ڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ

    View Slide

  11. ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ
    ڝ߹ঢ়ଶ؀ڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ
    ෆ҆ఆͳςετΛ௚͢ͷ͕೉͍͠ཧ༝

    View Slide

  12. ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ
    ڝ߹ঢ়ଶ؀ڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ
    ෆ҆ఆͳςετΛ௚͢ͷ͕೉͍͠ཧ༝
    ࠶ݱ͢ΔʢίέΔʣͷ͕೉͍͠

    View Slide

  13. ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ
    ڝ߹ঢ়ଶ؀ڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ
    ෆ҆ఆͳςετΛ௚͢ͷ͕೉͍͠ཧ༝
    ࠶ݱ͢ΔʢίέΔʣͷ͕೉͍͠
    ͦͷղܾํ๏ͷखஈͷ͕̍ͭʮςετΛ܁Γฦ͢ʯ͜ͱ

    View Slide

  14. ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ
    ڝ߹ঢ়ଶ؀ڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ
    ෆ҆ఆͳςετΛ௚͢ͷ͕೉͍͠ཧ༝
    ࠶ݱ͢ΔʢίέΔʣͷ͕೉͍͠
    ͦͷղܾํ๏ͷखஈͷ͕̍ͭʮςετΛ܁Γฦ͢ʯ͜ͱ
    ৽͘͠௥Ճ͞ΕΔʮςετͷ܁Γฦ࣮͠ߦʯػೳʹ͸̏ͭͷϞʔυ͕͋Δ

    View Slide

  15. ෆ҆ఆͳςετ͕ੜ·ΕΔݪҼ
    ڝ߹ঢ়ଶ؀ڥґଘάϩʔόϧεςʔτ֎෦αʔϏεͱͷ࿈ܞ
    ෆ҆ఆͳςετΛ௚͢ͷ͕೉͍͠ཧ༝
    ࠶ݱ͢ΔʢίέΔʣͷ͕೉͍͠
    ͦͷղܾํ๏ͷखஈͷ͕̍ͭʮςετΛ܁Γฦ͢ʯ͜ͱ
    ৽͘͠௥Ճ͞ΕΔʮςετͷ܁Γฦ࣮͠ߦʯػೳʹ͸̏ͭͷϞʔυ͕͋Δ
    ͦΕͧΕͲ͏͍ͬͨಈ͖Λ͢Δͷ͔ɾ༻్͸Կ͔ɺ͕͜ͷηογϣϯͷ
    Ұ൪େࣄͳͱ͜Ζ

    View Slide

  16. 'JYFEJUFSBUJPOT

    View Slide

  17. ੒ޭࣦഊ໰Θͣɺࢦఆͨ͠ճ਺෼ςετΛ࣮ߦ͢Δ
    ༻్ʮςετʹෆ҆ఆ͕͞ͳ͍͔ʯΛ֬ೝ͢ΔͨΊ
    'JYFEJUFSBUJPOT

    View Slide

  18. 6OUJMGBJMVSF

    View Slide

  19. ࢦఆͨ͠ճ਺෼ςετΛ࣮ߦ͢Δ͕ɺࣦഊ࣌఺Ͱऴྃ͢Δ
    ༻్ʮෆ҆ఆͳςετΛ௚͢ʢσόοά͢Δʣʯͱ͖ʹར༻͢Δ
    6OUJMGBJMVSF

    View Slide

  20. 3FUSZPOGBJMVSF

    View Slide

  21. ࢦఆͨ͠ճ਺෼ςετΛ࣮ߦ͢Δ͕ɺ੒ޭͨ࣌͠఺Ͱऴྃ͢Δ
    ༻్ʮ͸͡Ί͸ࣦഊ͢Δ͕͍ͣΕ੒ޭ͢ΔΑ͏ͳςετʯΛಛఆ͢ΔͨΊ
    3FUSZPOGBJMVSF

    View Slide

  22. ʮςετͷ܁Γฦ࣮͠ߦʯػೳΛ༻͍ͨσϞ

    View Slide

  23. ࠷ۙ$*Ͱςετ͕࣌ʑίέΔ͜ͱʹؾͮ͘

    View Slide

  24. ʮςετͷ܁Γฦ࣮͠ߦʯػೳΛҰ࣌తʹΦϯʹͯ͠࠶౓$*ͰςετΛ࣮ߦͯ͠ΈΔ

    View Slide

  25. ΍ͬͺΓϥϯμϜͰίέΔΑ͏ͩ

    View Slide

  26. ϩʔΧϧͰ΋࠶ݱ͢Δ͔ࢼͯ͠ΈΑ͏ʢz3VOUFTU4PNF
    3FQFBUFEMZzΛબ୒ʣ

    View Slide

  27. l'JYFEJUFSBUJPOTzϞʔυʢճ਺͸ʹࢦఆʣͰ࣮ߦ

    View Slide

  28. ϩʔΧϧͰ΋ϥϯμϜͰίέΔ͜ͱ͕࠶ݱͰ͖ͨʂʢճίέͨʣ

    View Slide

  29. ϥϯμϜͰίέΔݪҼΛಛఆ͠Α͏ʢl6OUJMGBJMVSFzϞʔυͰ࣮ߦʣ

    View Slide

  30. ςετ͕ίέͨͱ͖ʹσόοΨ͕ىಈ͞ΕΔʂ

    View Slide

  31. मਖ਼Ͱ͖ͨΒ࠶౓z'JYFEJUFSBUJPOTzϞʔυͰ࣮ߦͯ͠ΈΔ

    View Slide

  32. ճςετ͕੒ޭͨ͠🎉ʢ͜ͷςετ͔Βෆ҆ఆ͕͓ͦ͞Β͘ফ͑ͨʣ

    View Slide

  33. ·ͱΊ

    View Slide

  34. ෆ҆ఆͳςετʢ࣌ʑίέΔʣͱ͍͏΋ͷ͕͋Δ
    ͦͷ໰୊ಛఆͷͨΊͷखஈͷ͕̍ͭʮςετͷ܁Γฦ࣮͠ߦʯ
    ৽͘͠ʮςετͷ܁Γฦ࣮͠ߦʯͷػೳ͕௥Ճ͞ΕͨͷͰɺෆ҆ఆͳςετ
    ͕ݟ͔ͭͬͨΒɺ͜ͷػೳͰ໰୊ಛఆɾमਖ਼Ͱ͖ͳ͍͔ࢼͯ͠ΈΑ͏

    View Slide

  35. ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠😊

    View Slide