What do you want to test with UI Test

What do you want to test with UI Test

I considered about what a UI test is.

Db5cf21a75ebe2484b95ea9dec5f573b?s=128

Shingo Tamaki

March 31, 2019
Tweet

Transcript

  1. ͋ͳ͕ͨUIςετͰධՁ͍ͨ͠ͷ͸ ɹ ԿͰ͔͢ʁ

  2. ࣗݾ঺հ ! ۄ৓৴ޛ iOS Engineer Testing/CIɾCD/HomeKit/IoT Organized try!Swift Tokyo 2019

    Hosting Roppongi.swift
  3. PEAKS͞Μ͔ΒʮiOSςετશॻʯΛग़͢͜ͱʹͳΓ·ͨ͠

  4. Ͱ͸ɺ࢝Ί·͢

  5. ఆٛʹϒϨΛײͨ͡ࣄ͸ͳ͍Ͱ͔͢ʁ

  6. *ςετ

  7. *ςετ γεςϜςετ/౷߹ςετ/݁߹ςετ/࿈݁ςετ/֎෦݁߹ς ετ/಺෦݁߹ςετ/ΠϯςάϨʔγϣϯςετ/֎෦ςετ/಺ ෦ςετ/ػೳςετ/E2Eςετ/Ϣχοτςετ/୯ମςετ/ε τϨεςετ/ಈతςετ/੩తςετ/ϗϫΠτϘοΫεςετ/ ϒϥοΫϘοΫεςετ/Ϣʔβʔςετ/डೖςετ/UIςετ/ ୳ࡧతςετ/ಉ஋Ϋϥεςετ/ڥք஋ςετ/σγδϣϯςʔ ϒϧςετ/૊Έ߹Θͤςετ/ঢ়ଶભҠςετ/σʔλϑϩʔς ετ/ΞυϗοΫςετ/ABςετ/ϦάϨογϣϯςετ/ճؼς

  8. ςετʹؔΘΔ༻ޠ ςετٕ๏/ςετܭը/ςετ߲໨/ςετΞΠςϜ/ςετγφ ϦΦ/ςετεΟʔτ/ςετϨϕϧ/ςετϓϩηε/ςετ؍఺/ ςετઃܭ/ςετ෼ੳ/ςετ޻ఔ/ςετΧόϨοδ/ςετ ϕʔε/ελϒ/ϞοΫ/ςετμϒϧ/SUT/όά/ෆ۩߹/ܽؕ/ނ ো/ϑΥʔϧτ/ςεςΟϯά/νΣοΩϯά/ඇػೳςετ/ςετ λΠϓ/ςετۦಈ։ൃ/TDD/ςετϋʔωε/.....

  9. None
  10. ༨ஊ: JSTQBͱ͔΍ͬͯΈΔͱָ͍͠Α http://jstqb.jp

  11. ؓ࿩ٳ୊

  12. ςετϐϥϛου • UI • Service • Unit

  13. UIςετ΍Γ͍ͨਓ

  14. UIςετͱ͸ͳΜͩΖ ͏ʁ • XCUITestΛ࢖༻ͯ͠ߦ͏ςετ͸શ ͯUIςετʁ • UIʹϑΥʔΧεͨ͠ςετΛߦ͏ς ετʁ

  15. UIςετͱ͸ͳΜͩΖ ͏ʁ • UIʹϑΥʔΧεͨ͠ςετΛߦ͏ς ετʁ

  16. UIςετͱ͸ͳΜͩΖ ͏ʁ • UIʹϑΥʔΧεͨ͠ςετΛߦ͏ς ετʁ • ධՁ͍ͨ͠ͷ͕ը໘ɾUIίϯϙʔ ωϯτͳͲʹͷΈͰ͋Ε͹ϓϨθ ϯςʔγϣϯ૚ʹର͢Δ୯ମɾ݁ ߹ςετ

  17. UIςετͱ͸ͳΜͩΖ ͏ʁ • ্ͷ૚ʹߦ͘΄Ͳෳࡶ౓ɾ݁߹౓͕ ૿Ճ

  18. UIʹର͢Δςετͱ͍͏ΑΓ UIΛ൐ͬͨςετ

  19. UIΛ൐͏ςετͱ͸ • E2Eςετ • ϒϩʔυελοΫςετ • γεςϜςετ • ૯߹ςετ

  20. ͜͜·ͰUIςετͷೝࣝ߹Θͤ

  21. ԿΛςετ͍ͨ͠ͷ͔࠶ͼࢥ͍ग़ͯ͠ΈΔ

  22. ԿΛςετ͍ͨ͠ͷ͔࠶ͼࢥ͍ग़ͯ͠ΈΔ 1. UIʹରͯ͠ςετΛ͍ͨ͠ 2. UIΛ൐͏ςετΛ͍ͨ͠

  23. ▶︎1. UIʹରͯ͠ςετΛ ͍ͨ͠

  24. XCUITestͰͳ͚Ε͹ग़དྷͳ͍ࣄ͔ʁ • ViewͷαΠζ΍ͦͷ্ʹࡌͬͯΔίϯϙʔωϯτͷҐஔͳͲ ͸ϢχοτςετͰ΋ςετՄೳ • εΫϦʔϯγϣοτͳͲʹΑΔը૾ͰͷධՁ • iOSSnapshotTestcase https://github.com/uber/ios-snapshot-test-case

  25. ▶︎2. UIΛ൐͏ςετΛ͠ ͍ͨ

  26. ༷ʑͳཁҼ͕ςετΛͮ͠Β͘͢Δ • ΞϓϦ಺෦ͷঢ়ଶมԽ • ֎෦γεςϜͱͷ࿈ܞ

  27. ΞϓϦ಺෦ͷঢ়ଶมԽΛ੍ޚ͢Δ launchArguments΍launchEnvironmentΛ࢖ͬͯىಈ࣌ʹঢ়ଶ ͷ੍ޚΛߦ͏ let app = XCUIApplication() app.launchArguments.append("loggedIn") app.launchArguments.append(contentsOf: ["-key",

    "abc111222333"]) app.launchArguments.append(contentsOf: ["-skipLogin", "YES"]) app.launchEnvironment["TestMode"] = "UITest"
  28. ֎෦γεςϜͱͷ࿈ܞ ֎෦γεςϜͷ෦෼ΛϞοΫ·ͨ͸ελϒͯ͠ಈ࡞ͤ͞Δ • Embassy • SBTUITestTunnel • Wiremock

  29. ⚠ ɹ ͜ΕΒͷํ๏ΛऔΔࣄͰϢʔβͷૢ࡞͔Β͸ԕ͔͟Γ·͢

  30. ༻๏༰ྔΛकͬͯਖ਼͘͠ޮՌతͰ͋ΔςετΛ໨ࢦ͠·͠ΐ͏ɻ

  31. UIςετ͍ͭ΍Δͷʁ • جຊతʹϢχοτςετͳͲͷςετϐϥϛουͷԼ૚͔Β ੵΈ্͛ͯߦ͘ͷ͕͍͍ • ↑Λཧղ্ͨ͠ͰUIςετͰΧόʔ͢Δͷ΋ѱͰ͸ͳ͍ • ϨΨγʔίʔυͷ৔߹ɺϢχοτςετͷͨΊʹϦϑΝΫ λϦϯά͕ඞਢʹͳΔ͕UIςετ͸Կͱ͔͔͚Δ৔߹΋͋ Δ

  32. ·ͱΊ • UIςετͳͲͷݴ༿͸ఆ͕ٛϒϨ͕ͪͳͷͰ࣠Λ࡞Ζ͏ • ఆٛʹଊΘΕΔඞཁ͸ͳ͍ɺجຊΛԡ্͑ͨ͞ͰͷΞϨϯδ ͸΍ͬͯ΋͍͍ͱࢥ͏Αʁ • ޮՌతͩͱࢥ͑͹ࢼͯ͠ΈΕ͹͍͍͠ɺτϥΠΞϯυΤϥʔ ͯ͠վળ͍͖ͯ͠·͠ΐ͏

  33. Ҏ্