Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

自動テストvs手動テスト

 自動テストvs手動テスト

自動化されたテスト VS 手動テスト
http://www.slideshare.net/directi/automated-testing-vs-manual-testing-391121
の日本語訳。 ライセンスはオリジナルに準じる

Ryutaro YOSHIBA

April 14, 2012
Tweet

More Decks by Ryutaro YOSHIBA

Other Decks in Technology

Transcript

  1. Intelligent People. Uncommon Ideas. ⾃自ಈςετvs ⼿手ಈςετ By Bhavin Turakhia CEO,

    Directi (shared under Creative Commons Attribution Share-alike License incorporated herein by reference) (http://creativecommons.org/licenses/by-sa/3.0/) ⽇日ຊޠ൛຋༁  !3ZV[FF ޡ༁౳͕͋Ε͹࿈བྷ͍ͩ͘͞ɻ ϥΠηϯε͸ΦϦδφϧʹ४ͯ͡$$#:4"Ͱ͢
  2. ⼿手ಈςετ •  ⼿手ಈςετͰͷίʔσΟϯάϓϩηε §  ίʔυΛॻ͘ §  Ͳ͔͜ʹίʔυΛΞοϓϩʔυ͢Δ §  Ϗϧυ͢Δ § 

    ⼿手ͰίʔυΛಈ͔͢ (ଟ͘ͷ৔߹ɺॱ൪ʹϑΥʔϜʹ⼊入⼒力力ͨ͠Γ͢ Δ) §  ϩάϑΝΠϧ΍σʔλϕʔε΍֎෦αʔϏε΍ม਺ͷ஋΍ը⾯面ग़ ⼒力力಺༰ͳͲΛνΣοΫ͢Δ §  ΋͠͏·͘ಈ࡞͠ͳ͔ͬͨΒɺ্هΛ࠷ॳ͔Β܁Γฦ͢ 2 Creative Commons Attribution Share-alike
  3. ⾃自ಈԽ͞Εͨςετ •  ⾃自ಈԽͨ͠ϢχοτςετΛ⽤用͍ͨίʔσΟϯάϓϩηε §  ̍ͭ·ͨ͸਺ݸͷςετέʔεΛॻ͘ §  ⾃自ಈͰίϯύΠϧ͠ςετ͕ࣦഊ͢Δ͜ͱΛ֬ೝ͢Δ §  ςετ͕௨ΔΑ͏ͳίʔυΛॻ͘ § 

    ⾃自ಈͰίϯύΠϧ͠࠶౓ςετΛ࣮⾏行行͢Δ §  ΋͠ςετʹࣦഊͨ͠Βద੾ͳมߋΛ⾏行行͏ §  ΋͠ςετ͕੒ޭͨ͠Β࣍ͷϝιου΋ಉ͡Α͏ʹίʔσΟϯά ͢Δ •  ⾃自ಈԽͨ͠ػೳςετΛ⽤用͍ͨίʔσΟϯάϓϩηε §  Ϣχοτςετʹશͯύε͢ΔΑ͏ͳίʔυΛॻ͘ §  πʔϧͳͲ౳Λ࢖ͬͯػೳςετΛॻ͘ §  ⾃自ಈͰίϯύΠϧͯ͠ςετΛ࣮⾏行行͢Δ §  ΋͠ςετʹࣦഊͨ͠Βద੾ͳมߋΛ⾏行行͏ §  ΋͠ςετʹ੒ޭͨ͠Β࣍ʹਐΉ 3 Creative Commons Attribution Share-alike
  4. ⾃自ಈԽ͞Εͨςετ vs ⼿手ಈςετ •  ࡞ۀྔͱίετ §  6ͭͷςετέʔε͕͋Δ৔߹Λߟ͑Δ §  શͯͷςετΛ⼿手ಈͰ࣮⾏行行͢Δ৔߹ =>

    10෼ §  શͯͷϢχοτςετΛॻ͘৔߹ => 10෼ §  શͯͷϢχοτςετΛ࣮⾏行行͢Δ => < 1෼ະຬ §  ςετͷ܁Γฦ࣮͠⾏行行ճ਺ => 5ճ §  ⼿手ಈςετͰͷ૯ςετ࣌ؒ => 50෼ §  Ϣχοτςετͷ૯ςετ࣌ؒ=> 10෼ Release   Manual  Test   Auto  Test   Manual  Test   Cumula0ve   1   10   10   10   2   10   0   20   3   10   0   30   4   10   0   40   5   10   0   50   4 Creative Commons Attribution Share-alike
  5. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ࡞ۀྔͱίετ §  ΠϯΫϦϝϯλϧʹϢχοτςετͷέʔεΛ௥Ճ͍ͯ͘͠ͷ͸ɺ ΠϯΫϦϝϯλϧʹ⼿手ಈͷςετέʔεΛ௥Ճ͍ͯ͘͠ΑΓඅ⽤用 ͸͍҆ •  ྫʣυϝΠϯͷొ࿥

    §  Case 1: .comυϝΠϯΛશͯͷϑΟʔϧυʹਖ਼͍͠஋Λ⼊入Εͯొ ࿥͢Δ §  Case 2: .comυϝΠϯͷొ࿥ͷࡍʹແޮͳDNSαʔό໊Λ⼊入ΕΔ 5 Creative Commons Attribution Share-alike
  6. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ⼿手ಈͰͷςετ͸ୀ۶ §  ಉ͡ϑΥʔϜʹ஋Λ⼊入Εଓ͚Δ͜ͱΛ๬Ή⼈人ͳΜͯ୭΋͍ͳ͍ §  ςετΛ⼿手ಈͰ࣮⾏行行͢Δ͜ͱ͔Βֶ΂Δ͜ͱ͸ͳ͍ §  ⼿手ಈͷςετ͸͓Ζ͔ͦʹ͞Ε΍͍͢

    §  ⼿手ಈςετͷ⼀一ཡ͸୭΋ϝϯςφϯε͠ͳ͍ •  ⼀一⽅方Ͱ⾃自ಈԽ͞Εͨςετ͸ίʔυͰ͋ΔͨΊ… §  ςετΛॻ͘͜ͱ͸ָͯ͘͠νϟϨϯδϯάͩ §  ࠶ར⽤用ੑͱΧόϨʔδΛ஫ҙਂ͘ߟ͑ͳ͚Ε͹ͳΒͳ͍ §  ෼ੳͷεΩϧ͕ඞཁͩ §  কདྷʹ౉ͬͯ༗⽤用Ͱ͋Δ 6 Creative Commons Attribution Share-alike
  7. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ⼿手ಈͷςετ͸࠶ར⽤用Ͱ͖ͳ͍ §  ຖճಉ͡࿑⼒力力͕ཁٻ͞ΕΔ §  ⼿手ಈςετ͸࠶ར⽤用Ͱ͖ͳ͍ •  ⾃自ಈԽ͞Εͨςετ͸׬શʹ࠶ར⽤用Մೳ

    §  ॏཁ: ܧଓతΠϯςάϨʔγϣϯαʔόͱڞ௨ͷίʔυϨϙδτϦ ͱ૊৫ߏ଄͕ඞཁ §  ⾃自ಈԽ͞Εͨςετ͸ͻͱͨͼॻ͔ΕΔͱίʔυϕʔεͷ⼀一෦ͱ ͳΔ §  ༨ܭͳ࿑⼒力力Λ͔͚Δ͜ͱͳ͘࠶ར⽤用Ͱ͖Δ 7 Creative Commons Attribution Share-alike
  8. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ⼿手ಈςετ͸⼀一෦ͷՄࢹੑ͔͠ఏڙͤͣɺશͯͷεςʔΫ ϗϧμʔ͕܁Γฦ࣮͠⾏行行͠ͳ͚Ε͹ͳΒͳ͍͜ͱ͕͋Δ §  ։ൃऀʹΑΔίʔυͷςετͰ͔݁͠ՌΛ⾒見見Δ͜ͱ͕Ͱ͖ͳ͍ §  શͯͷεςʔΫϗϧμʔ͕ಉ͡ςετΛ܁Γฦ࣮͠⾏行行͠ͳ͚Ε͹ ͳΒͳ͍͜ͱ͕͋Δ

    •  ྫ  ։ൃऀɺςΫχΧϧϦʔυɺGMɺ؅ཧ৬ •  ⾃自ಈԽ͞Εͨςετ͸શମʹରͯ͠ՄࢹੑΛఏڙ͢Δ §  ։ൃऀɺςΫχΧϧϦʔυɺ؅ཧ৬͸γεςϜʹϩάΠϯͯ͠ς ετ݁ՌΛΈΔ͜ͱ͕Ͱ͖Δ §  ൴Βʹ͓͍ͯ͸ಛஈͷ࿑⼒力力͸ඞཁͱ͠ͳ͍ Release   Manual     Tes+ng  by  Dev   Manual     Tes+ng  by   Team  Leads   Manual     Tes+ng  by   Mgmt   Total  Manual   Tes+ng   Auto  Test   Dev  Manual   Test   Cumula+ve   Total  Manual   Test   Cumula+ve   1   10   5   3   18   10   10   18   2   10   5   3   18   0   20   36   3   10   5   3   18   0   30   54   4   10   5   3   18   0   40   72   5   10   5   3   18   0   50   90   8 Creative Commons Attribution Share-alike
  9. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ⼿手ಈͷςετ͸݁ہ݁߹ςετʹͳͬͯ͠·͏ §  యܕతͳ⼿手ಈςετʹ͓͍ͯ͸ɺϢχοτ୯ମͰςετΛ͢Δ͜ ͱ͸೉͍͠ §  ଟ͘ͷ؀ڥʹ͓͍ͯ͸ɺόοΫΤϯυͷαʔϏεͱ݁߹ͨ͠ঢ়ଶ ͰνΣοΫ͢Δ͜ͱʹͳͬͯ͠·͏

    §  յΕ΍͍͢ςετ– ΋ؔ͠܎͢ΔԿ͔͕յΕ͍ͯΔͱ⼿手ಈͷςε τ΋ࣦഊͯ͠͠·͏ •  ⾃自ಈԽ͞Εͨςετ͸είʔϓΛม͑Δ͜ͱ͕Ͱ͖Δ §  Ϣχοτ (Ϋϥε΍ϝιου)΋ςετͰ͖Δ͠,Ϟδϡʔϧ΍γε ςϜ⾃自ମ౳΋ςετͰ͖Δ 9 Creative Commons Attribution Share-alike
  10. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ⼿手ಈͷςετ͸ෳࡶͳςετ४උͱऴྃ࡞ۀ͕ඞཁʹͳΔ §  DBʹΫΤϦʔΛසൟʹྲྀ͢Α͏ͳ࡞ۀ΋ؚ·ΕΔͩΖ͏ §  όοΫΤϯυͷαʔόʹมߋΛՃ͑ΔΑ͏ͳ࡞ۀ΋ؚ·ΕΔͩΖ ͏ § 

    ෳ਺ͷґଘੑͷ͋Δςετέʔεͷ৔߹ɺςετ४උ͸ΑΓෳࡶ ʹͳΔ •  ⾃自ಈԽ͞Εͨςετ͸είʔϓΛม͑ɺෳࡶͳςετ४උ ΍ऴྃ⼿手ॱ͸ඞཁͱ͞Εͳ͍ §  ϢχοτςετͰ͸֎෦ͷґଘੑ͸ϞοΫΛ࢖ͬͯղܾ͢ΔͷͰ setup΍teardown͸ඞཁͱ͞Εͳ͍ §  ػೳςετʹ͓͍ͯ͸ςετ४උͱऴྃ⼿手ॱ͸ϑϨʔϜϫʔΫΛ ࢖͏͜ͱͰ⾃自ಈԽ͞Ε͍ͯΔ 10 Creative Commons Attribution Share-alike
  11. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ⼿手ಈςετ͸Կ͔Λ⾒見見ಀͯ͠͠·͏ͱ͍͏⾼高͍ϦεΫ͕͋ Δ §  ຖճ։ൃऀ͕⼿手ಈͰ࣮⾏行行͍ͯ͠ΔͱॏཁͳςετέʔεΛ⾒見見ಀ͠ ͯ͠·͍͕ͪͩ §  ৽͘͠ՃΘͬͨ։ൃऀʹ͸ςετ࣮⾏行行ͷͨΊͷ⼿手͕͔Γ͕ͳ͍

    •  ⾃自ಈԽ͞ΕͨςετͰ͸͋Β͔͡ΊܾΊͨςετΛ⾶飛͹͠ ͯ͠·͏ϦεΫ͸⼀一੾ͳ͍ §  ςετ͕ͻͱͨͼܧଓతΠϯςάϨʔγϣϯͷର৅ʹͳΕ͹୭΋ ͍֮͑ͯͳͯ͘΋ຖճ࣮⾏行行͞ΕΔ 11 Creative Commons Attribution Share-alike
  12. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ⼿手ಈςετΛઃܭͷॿ͚ʹͳΒͳ͍ §  ⼿手ಈςετ͸Ϟδϡʔϧ͕࡞ΒΕͨޙʹ࣮⾏行行͞ΕɺͦΕނόά΁ ͷύον͋ͯʹ͔͠ͳΒͳ͍ •  ⾃自ಈԽ͞Εͨςετ΍TDD(ςετϑΝʔετ։ൃ)͸ઃܭ Λॿ͚Δ

    §  ϢχοτςετΛ࠷ॳʹॻ͘͜ͱ͸ཁٻࣄ߲΍ઃܭ΁ͷӨڹΛ໌ Β͔ʹ͢Δ §  ϞοΫΦϒδΣΫτ౳Λ࢖ͬͯϢχοτςετΛॻ͘͜ͱͰڧ੍ తʹ͖Ε͍ͳઃܭʹͳΓɺந৅ɾΠϯλʔϑΣΠεɾϙϦϞʔ ϑΟζϜ౳ͷ෼཭͕ਐΉ 12 Creative Commons Attribution Share-alike
  13. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ⼿手ಈςετ͸τϨʔχϯάʹ͸࢖͑ͳ͍ •  ⾃自ಈԽ͞Εͨςετ͸υΩϡϝϯτͱͯ͠΋ػೳ͢Δ §  ϢχοτςετΛಡΉ͜ͱͰίʔυϕʔεͷ⽬目త͕͸͖ͬΓ͢Δ §  ⾃自ಈԽ͞ΕͨςετʹΑͬͯཁٻࣄ߲͕͸͖ͬΓ͢Δ

    §  ⾃自ಈԽ͞ΕͨςετʹΑͬͯଞͷϢʔεέʔεͱظ଴͢Δ݁Ռ͕ Θ͔Γ΍͘͢ͳΔ §  ৽͍͠։ൃऀ͸ίʔυΛಡΉΑΓ΋ϢχοτςετΛಡΉ͜ͱͰ ΑΓίʔυ͕ཧղͰ͖ΔΑ͏ʹͳΔ §  Ϣχοτςετ͸ίʔυͷظ଴͞ΕΔৼΔ෣͍ΛఆΊ͍ͯΔ 14 Creative Commons Attribution Share-alike
  14. ⾃自ಈԽ͞Εͨςετvs ⼿手ಈςετ •  ⼿手ಈςετ͸ΩνΨΠ͡ΈͨΨϥΫλίʔυΛ⽣生Έग़͢ §  ଟ͘ͷ⼿手ಈςετʹ͓͍ͯ– •  ม਺ͷ֬ೝͷͨΊʹSystem.out͕ଟ⽤用͞ΕΔ •  ໾ʹ⽴立立ͨͳ͍ϩά͕ΞϓϦέʔγϣϯαʔό΍DBαʔόͦͷଞʹग़

    ⼒力力͞ΕΔ •  ίʔυ΍ϩά΍ग़⼒力力͕ΨϥΫλʹͳΔ §  IF⽂文Ͱ෼ذ͞ΕͨϑϥάϕʔεͰͷϩάग़⼒力力΍ΠϕϯτϕʔεͰͷϩάग़⼒力力౳ •  ΞϓϦέʔγϣϯ͕஗͘ͳΔ •  ⾃自ಈԽ͞Εͨςετ͸ΨϥΫλίʔυΛ0ʹݮΒ͢ §  ϩάϑΝΠϧग़⼒力力΍System.outͰͷग़⼒力力͸ςετίʔυͰͷΞ αʔγϣϯʹஔ͖׵͑ΒΕΔ §  ΋͠ಛఆͷίϯιʔϧग़⼒力力΍ϩάग़⼒力力͕ඞཁͳ৔߹Ͱ΋ɺͦΕ͸ ςετʹهड़͠ϓϩμΫγϣϯίʔυʹ͸⼿手ΛՃ͑ͳ͍ͰࡁΉ §  ΞϓϦέʔγϣϯ΍ϩά΍ίϯιʔϧʹ͸ΨϥΫλ͕ग़⼒力力͞Εͣɺ ΞϓϦέʔγϣϯ͸⾼高଎ʹอͨΕΔ 15 Creative Commons Attribution Share-alike
  15. ·ͱΊ 1.  ⼿手ಈςετ͸⾃自ಈԽ͞ΕͨςετΑΓଟ͘ͷ࿑⼒力力ͱίε τ͕͔͔Δ 2.  ⼿手ಈςετ͸ୀ۶ 3.  ⾃自ಈԽ͞Εͨςετ͸࠶ར⽤用Մೳ 4.  ⼿手ಈͷςετ͸ݶΒΕͨՄࢹੑ͔͠ఏڙͤͣɺશͯͷε

    ςʔΫϗϧμʔʹΑͬͯ܁Γฦ࣮͠⾏行行͞ΕΔϜμ͕͋Δ 5.  ⾃自ಈԽ͞ΕͨςετͰ͸είʔϓΛม͑ɺґଘ෦෼ʹ ϞοΫΛ࢖͏͜ͱͰϢχοτ୯ମͰͷςετ΋ՄೳͰ͋ Δ 6.  ⾃自ಈԽ͞ΕͨςετͰ͸ෳࡶͳ४උ⼿手ॱ΍ऴྃ⼿手ॱ͸ඞ ཁͱ͞Εͳ͍ 16 Creative Commons Attribution Share-alike
  16. ·ͱΊ 7.  ⾃自ಈԽ͞Εͨςετ͸ςετΛ⾶飛͹ͯ͠͠·͏Α͏ͳ͜ ͱ͕ͳ͍͜ͱΛอূͯ͘͠ΕΔ 8.  ⾃自ಈԽ͞Εͨςετ͸࣮ࡍʹ៉ྷͳઃܭʹͳΔΑ͏ʹڧ ੍ͯ͘͠ΕΔ 9.  ⾃自ಈԽ͞Εͨςετ͸ϦϑΝΫλϦϯάͷࡍͷηʔϑ ςΟωοτΛఏڙͯ͘͠ΕΔ

    10. ⾃自ಈԽ͞Εͨςετ͸τϨʔχϯάʹ໾⽴立立ͭ 11. ⾃自ಈԽ͞Εͨςετ͸ίʔυ΍ίϯιʔϧ΍ϩάͷதʹ ΨϥΫλΛ࡞Βͳ͍ 17 Creative Commons Attribution Share-alike
  17. Կނ⾃自ಈςετΛॻ͔ͳ͍ͷ͔ʁ •  ॳظͷֶशۂઢʢ͕⾼高͍ͱߟ͑ͯ͠·͏ʣ §  ϢχοτςετͷϑϨʔϜϫʔΫ΍ػೳςετͷϑϨʔϜϫʔΫ ͷཧղ §  ܧଓతΠϯςάϨʔγϣϯ΍ͦͷޮՌతͳ࢖͍⽅方ͷཧղ §  ίʔυΧόϨοδπʔϧͷཧղ

    §  Ͳ͏΍ͬͯςετΛߏ੒͢Δͷ͔ʹؔ͢Δཧղ §  ϞοΫΦϒδΣΫτͷ࡞Γ⽅方 §  ຖճͷςετͷ⾃自ಈ࣮⾏行行ͷ΍Γ⽅方 §  ςετΛͲ͜ʹίϛοτ͢Δ͔ •  ຊ౰ʹ΋͏⼀一ճ͜ͷϞδϡʔϧͷ࡞ۀΛ͢Δͷ͔ʁ(ͱ͍ ͏ݒ೦) •  ⾃自෼ͷςετ͸࠶ར⽤用͞ΕΔͷ͔ʁ΋͠࠶ར⽤用͞Εͳ͔ͬ ͨΒͳΜͷҙຯ͕͋Δͷ͔ʁ(ͱ͍͏ڪΕ) 18 Creative Commons Attribution Share-alike
  18. Կނ⾃自ಈςετΛॻ͔ͳ͍ͷ͔ʁ •  ղܾ⽅方๏ §  ࠷ॳͷϦϦʔε·Ͱͷ࣌ؒΛ࢖ͬͯҎԼΛ⾏行行͏- •  ϢχοτςετͱػೳςετΛؚΉίʔυϨϙδτϦͷߏ଄Λ࡞Δ •  ϦϦʔεʹ౷߹͞ΕͨCIαʔόΛߏங͢Δ • 

    xUnitͷΑ͏ͳϢχοτςετϑϨʔϜϫʔΫΛಋ⼊入͢Δ •  Sahi / Watir / Selenium / QTPͷΑ͏ͳػೳςετͷϑϨʔϜϫʔΫΛ ಋ⼊入͢Δ •  CloverͷΑ͏ͳίʔυΧόϨοδπʔϧΛಋ⼊入͢Δ •  ςετͷΨΠυϥΠϯ΍ݪଇΛ࡞Δ §  ੹೚Λ༩͑Δ •  ֤ʑͷ։ൃऀ͸֤Ϣχοτʹ͍ͭͯෳ਺ͷϢχοτςετΛهड़͢Δ ͜ͱΛϧʔϧʹ͢Δ •  ಛఆͷ։ൃऀ͸ػೳςετΛॻ͘੹೚Λ༩͑Δ •  ςετΛॻ͘։ൃऀ͸ɺςετͷߏ੒Λߟ͑ίϛοτ͠CIʹؔ࿈͚ͮ Δ੹೚΋΋ͨͤΔ 19 Creative Commons Attribution Share-alike
  19. Կނ⾃自ಈςετΛॻ͔ͳ͍ͷ͔ʁ •  ఘΊͯ͸͍͚ͳ͍ §  ΋͠ϋʔυϧʹͿͪ౰ͨͬͨΒ, ϖΞͰ⽴立立ͪ޲͔͏͜ͱ §  ͋ͳͨ͸ςετʹ͍ͭͯͷ੹೚Λશ͏͠ͳ͚Ε͹ͳΒͳ͍͜ͱΛ ؊ʹ໏͡Δ͜ͱ • 

    ίʔυΧόϨοδΛνΣοΫ͢Δ §  ίʔσΟϯάத΍ίʔσΟϯάޙʹίʔυ͕ςετʹΑͬͯΧ όʔ͞Ε͍ͯΔ͜ͱΛ֬ೝ͢ΔͨΊʹɺܧଓతʹίʔυΧόϨο δπʔϧΛ࢖͏͜ͱ 20 Creative Commons Attribution Share-alike
  20. ԿΛςετ͢Δͷ͔ʁ •  Ϣχοτςετ §  ཧ૝తʹ͸ΫϥεΛ·͙ͨ͜ͱ͸ͳ͍ §  ౰વϓϩηεڥքΛ·͙ͨ͜ͱ͸ͳ͍ §  ෳ਺ͷέʔεΛ΋ͭϢχοτςετΛهड़͢Δ • 

    ػೳςετ §  Watir / Selenium / QTP / WhiteͳͲΛ࢖ͬͨUIͷςετ §  ΋͘͠͸UIͷ̍֊૚ԼͷϨΠϠʔΛςετ͢Δ (ྫ͑͹ APIΛར ⽤用) 21 Creative Commons Attribution Share-alike