SDK開発にUIテストを導入してみた
by
Victor Lee
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
4%,։ൃʹ6*ςετΛಋೖͯ͠Έͨ "OESPJE5FTU/JHIU !LPOZBWJD
Slide 2
Slide 2 text
αʔϏεͷ͝հ
Slide 3
Slide 3 text
‣ ΞϓϦϚʔέςΟϯάࢧԉ ‣ ࢪࡦ ‣ ϓογϡ௨ ‣ ΞϓϦϝοηʔδ ‣ ੳ ‣ ఆྔੳ ‣ Ϣʔβʔૢ࡞ͷը
Slide 4
Slide 4 text
‣ ϓογϡ௨ ‣ ηάϝϯτ ‣ Ϧον௨ ‣ σΟʔϓϦϯΫ ‣ ֆจࣈ ‣ "#ςετ ‣ ίϯόʔδϣϯܭଌ ‣ ɾɾɾ
Slide 5
Slide 5 text
‣ ΞϓϦϝοηʔδ ‣ Ϣʔβʔૢ࡞ͰτϦΨʔ ‣ μΠΞϩάɾ ΦʔόʔϨΠɾόφʔ ‣ ηάϝϯτ ‣ "#ςετ ‣ ίϯόʔδϣϯܭଌ ‣ ɾɾɾ
Slide 6
Slide 6 text
ըͱϢʔβʔૢ࡞هͷ࠶ੜ
Slide 7
Slide 7 text
!LPOZBWJD ཥঝӹʢΓͪ͐Μ͍ʣɾग़ɾຊ ࡶ৯ܥΤϯδχΞ dࠐΈ04ݚڀ⾣dήʔϜ։ൃ⾣d4%,։ൃ
Slide 8
Slide 8 text
6*ςετಋೖͷഎܠ
Slide 9
Slide 9 text
ΞϓϦ։ൃऀ͔Β͢Δͱɺ Α͘Θ͔ΒΜ4%,ݏΘΕऀʹͳΓ͕ͪ
Slide 10
Slide 10 text
͓٬͞Μ͕҆৺ͯ͠ɺ ؆୯ʹ4%,ΛಋೖͰ͖ͯ΄͍͠ʂ
Slide 11
Slide 11 text
4%,ͷߏ ‣ ωΠςΟϒ4%,ʢJ04"OESPJEʣ ‣ 0CKFDUJWF$+BWB ‣ +BWB͚ͩݟΔͱϑΝΠϧɾ,ߦͷنײ ‣ ֎෦ϥΠϒϥϦʔҰΘͳ͍ ‣ NJO4EL7FSTJPO ‣ ֤ϑϨʔϜϫʔΫͷϓϥάΠϯ ‣ 6OJUZ$PDPTEY$PSEPWB.POBDB ‣ جຊతʹϒϦοδίʔυ͚ͩ ‣ ͲΜͲΜ૿͑Δʂ
Slide 12
Slide 12 text
4%,νʔϜ ‣ ਓͰ࡞ۀ୲ ‣ ϓϩμΫτ҆ఆظʹೖ͚ͬͨͲɺͦΕͰѹతਓखෆ ‣ ෆ۩߹ͷௐࠪˍमਖ਼ɺ༷มߋɺ04ΞοϓάϨʔυରԠɺ ςΫχΧϧαϙʔτɾɾɾ ‣ ͔ͳΓେ͖͍ΫϥΠΞϯτ͍Δ͔Β৻ॏʹΒͳ͍ͱ͍͚ͳ͍ ‣ ͪΌΜͱ͔͚࣌ؒͯϨϏϡʔɾςετ͢Δ ‣ ҆ఆظʹೖ͔ͬͨΒͦ͜Γ͍ͨ͜ͱ͕૿͑Δ ‣ ςΫχΧϧɾσοτͷฦࡁ ‣ ςετͷࣗಈԽ
Slide 13
Slide 13 text
4%,։ൃͰ࣮ࢪ͍ͯ͠Δςετ ‣ ୯ମςετ ‣ 3PCPMFDUSJDϕʔεͷ6OJU5FTU ‣ $*Ͱճ͍ͯ͠Δ ‣ ͔ͬ͠ΓͰ͖͍ͯΔ ‣ ։ൃऀʹΑΔखಈςετ ‣ ཏੑෆे ‣ 2"νʔϜʹΑΔखಈςετ ‣ ఆৗతʹΔ͜ͱ͍͠ ‣ BEIPDͳࣗಈςετ ‣ ͍ࣺͯ
Slide 14
Slide 14 text
4%,ςετͷ͠Έ
Slide 15
Slide 15 text
͠ΈͦͷҰ ‣ 4%,ʹ։ൃऀ͕৮Δͷ ‣ ςετͷ࠶ݱखॱʹɺίʔυΛॻ͘͜ͱؚ͕·Εͯ͠·͏ ‣ جຊతʹɺඇΤϯδχΞʹςετΛͤΒΕͳ͍ ‣ ςετΞϓϦΛ࡞Δ͜ͱͰ͖Δɺ͕
Slide 16
Slide 16 text
͠Έͦͷೋ ‣ ͓٬͞ΜͷΞϓϦߏ͞·͟· ‣ UBSHFU4EL7FSTJPO ‣ 4VQQPSU-JCSBSZͷόʔδϣϯ ‣ ςετΞϓϦͰ͍ΖΜͳঢ়گΛΧόʔ͖͠Εͳ͍
Slide 17
Slide 17 text
͠Έͦͷࡾ ‣ ରԠ͕͍ ‣ "OESPJEd ‣ ϥΠϑαΠΫϧ͕͍ ‣ աڈόʔδϣϯͷ4%,͕ੜ͖Ԇͼଓ͚Δ
Slide 18
Slide 18 text
6OJU5FTU͔ͬ͠Γ͍ͯ͠Δɺ͕ ‣ ີ݁߹ ‣ େྔͷ4IBEPXΦϒδΣΫτͱϦϑϨΫγϣϯ ‣ ϦϑΝΫλʔ͢ΔͨͼʹյΕΔ ‣ ͕ᐫʹͳΔ
Slide 19
Slide 19 text
ࣗಈςετͷϝϯςίετΛԼ͍͛ͨʜ खಈςετΛ؆୯ʹ৭ΜͳͰ࠶ݱ͍ͨ͠ʜ BEIPDͳςετΛҰͭʹ·ͱΊ͍ͨʜ
Slide 20
Slide 20 text
ͦ͏ͩɺ6*ςετΛಋೖ͠Α͏ʂ
Slide 21
Slide 21 text
6*ςετʹର͢Δظ ‣ *OTUSVNFOUFE5FTU ‣ ϒϥοΫϘοΫε ‣ ϦϑΝΫλϦϯάͰΫϥε໊͕มΘͬͯमਖ਼͕ཁΒͳ͍ ‣ ࣗಈԽ ‣ αʔόΛ༻ҙ͢Δඞཁ͕ͳ͍ʢ௨৴पΓΛϞοΫԽʣ
Slide 22
Slide 22 text
ςετέʔεͷྫ ‣ ΞϓϦىಈ ‣ ΞϓϦϝοηʔδͷը૾ϩʔυ͕࢝·Δ ‣ Πϯδέʔλ͕දࣔ͞ΕΔ ‣ λΠϜΞτ·Ͱʹը૾ϩʔυ͕ྃ͢Εɺ ͦΕΛදࣔ͢Δ
Slide 23
Slide 23 text
6*ςετͷઃܭ ‣ 3FQSP4%,ΛΈࠐΜͩɺԿ͠ͳ͍ςετΞϓϦ ‣ ೖྗ ‣ ௨৴ϞοΫͰαʔόϨεϙϯεΛࠐΉ ‣ 4%,"1*ͷݺͼग़͠ςετέʔεͰͦͷ··ॻ͚Δ ‣ ΞϓϦͷϥΠϑαΠΫϧมԽ͍ΖΜͳखஈͰ؆୯ʹͰ͖Δ ‣ ग़ྗ ‣ ௨৴ϞοΫͰαʔόϦΫΤετΛݕূ ‣ 6*FTQSFTTPͰݕূ ‣ ϑΝΠϧॻ͖ग़͠
Slide 24
Slide 24 text
ϋϚͬͨͱ͜Ζ
Slide 25
Slide 25 text
ϋϚͬͨͱ͜ΖͦͷҰ ‣ ௨৴ͷϞοΫԽ ‣ ϞοΫϥΠϒϥϦʔ ‣ QPXFSNPDLNPDLJUP ‣ ϏϧυΤϥʔ ‣ 63-TFU63-4USFBN)BOEMFS'BDUPSZ ‣ શ෦ͷίωΫγϣϯΛϋϯυϦϯά͠ͳ͍ͱ͍͚ͳ͍ ‣ Ұճ͔͠Ͱ͖ͳ͍
Slide 26
Slide 26 text
ϋϚͬͨͱ͜Ζͦͷೋ ‣ "OESPJE5FTU0SDIFTUSBUPS ‣ ςετέʔεؒͪΌΜͱϓϩηεΛ࠶্ཱͪ͛ͯ͘ΕΔ ‣ ΩϟογϡͷΫϦʔϯΞοϓͳͲઃఆͰ͖Δ ‣ "OESPJE5FTU0SDIFTUSBUPS͕ͳ͍ͱ ‣ λΠϛϯά͕ͣΕͯɺλΠϛϯάґଘͷςετ͕ۃʹෆ҆ఆ
Slide 27
Slide 27 text
ςετέʔεͷྫ @Test public void test_whenDownloadCompletedWithinTimeout_showMessageAfterAppLaunch() throws Throwable { setup(new JSONArray(Arrays.asList(createDialogMessage("")))); mConnectionMockFactory.setTimeout(2900); mActivityRule.launchActivity(new Intent()); sleep(4000); check_messageIsShown(); } @Test public void test_whenDownloadExceededTimeout_dismissMessageAfterAppLaunch() throws Throwable { setup(new JSONArray(Arrays.asList(createDialogMessage("")))); mConnectionMockFactory.setTimeout(3100); mActivityRule.launchActivity(new Intent()); sleep(4000); check_messageIsDismissed(); } ‣
Slide 28
Slide 28 text
6*ςετಋೖޙ ‣ ߦͷϦϑΝΫλϦϯάͰ׆༂ʂ ‣ ϦϑΝΫλʔ͠ͳ͍ͱͭΒ͍αϒγεςϜ͕͋ͬͨ ‣ ৽نػೳͷ࣮ͱಉ࣌ʹϦϑΝΫλϦϯά͢Δͷϋʔυϧ͕ߴ ͔ͬͨ ‣ ෦*'Λม͑ͣʹಥ؏ࣄ ‣ 6*ςετͰڍಈΛอূ͢Δ ‣ ෦*'ΛϦϑΝΫλϦϯά
Slide 29
Slide 29 text
͜Ε͔Βͷలͱ՝ ‣ ల ‣ ৽نͷػೳՃɾվमͷ͍ͭͰʹςετέʔεΛՃ͍ͯ͘͠ ‣ ͍ΖΜͳύϥϝʔλͰࣗಈεΫϦʔϯγϣοτ ‣ ՝ ‣ ςετϓϩδΣΫτͷߏ͕େԽͦ͠͏ ‣ ͔͔࣌ؒΔͷͰ·ͩ$*Ͱճͤͳ͍