Share
Embed
20年後のソフトウェアテストの話をしよう / Software Testing for 20 years later
2019/08/31(土)に東京電機大学で開催されたbuilderscon tokyo 2019のセッション「20年後のソフトウェアテストの話をしよう」の発表資料
blog: http://yumulog.hatenablog.com/entry/2019/08/31/235727
Togetter: https://togetter.com/li/1397692
概要ページ: https://builderscon.io/builderscon/tokyo/2019/session/783619e0-4c45-45cb-b29a-fbff39077f43
Tsubasa Yumura
August 31, 2019
Transcript
41 slides
-
20年後のソフトウェアテストの話をしよう 湯村 翼 @yumu19 国立研究開発法人 情報通信研究機構 湯村 翼 @yumu19 国立研究開発法人 情報通信研究機構 SOFTWARE
TESTING - What's the Right Thing to Do? ൃදࢿྉˠ http://bit.ly/bc20test 2019.08.31 14:10-15:10 ౦ژిػେֶ 100पϗʔϧB #bc100b #builderscon -
ൃදࢿྉˠ http://bit.ly/bc20test ࣗݾհ • ౬ଜ ཌྷ / @yumu19 • ࠃཱݚڀ։ൃ๏ਓ
ใ௨৴ݚڀػߏ ݚڀһ • ઐɿωοτϫʔΫɺϢϏΩλείϯϐϡʔςΟϯά etc. 2 ใॲཧֶձࢽ ฤूҕһ ٕज़ॻయ7Ͱֶձࢽ൦ ͓͏ͪϋοΫಉձ Ϟϊͮ͘ΓܥϙουΩϟετ ϞϊϥδΦ https://www.facebook.com/ groups/ouch.hack/ https://shinamonoradio.github.io/ -
ൃදࢿྉˠ http://bit.ly/bc20test NICT 3 w ਖ਼໊ࣜশɿࠃཱݚڀ։ൃ๏ਓใ௨৴ݚڀػߏ w /BUJPOBM*OTUJUVUFPG*OGPSNBUJPOBOE$PNNVOJDBUJPOT5FDIOPMPHZ w ʮʹ͘ͱʯͰͳ͘ʮ͑͵͍͋͠ʔͯ͌ʔʯΒ͍͠ʢผʹͲͬͪͰ͍͍͚Ͳɾɾɾʣ
w ૯লॴͷࠃཱݚڀ։ൃ๏ਓ w ຊશࠃՕॴ খۚҪɺେखொɺઋɺࣛౡɺԣਢլɺੴɺژɺେࡕɺਆށɺԭ ೄ ʹڌ w ແઢɺޫ௨৴ɺࣗવݴޠॲཧɺใɺӉఱؾɺηΩϡϦςΟɺϏοάσʔλFUD w ຊඪ४࣌ΛܾΊΔ࣌ܭ͕͋Δ w ͏Δ͏ඵͷͱ͖ʹχϡʔεʹͳΔ -
ൃදࢿྉˠ http://bit.ly/bc20test StarBED • NICTͷηϯλʔ(ࣄۀॴ)ͷͻͱͭ • ੴݝೳඒࢢʹ͋Δੈք࠷େنͷωοτϫʔΫςετϕου • 1000ͷཧϊʔυ͕Քಇ •
ػߏ֎ͷݚڀऀɾ։ൃऀʹ࣮ݧڥΛఏڙ • ཧɾ੍ޚπʔϧ܈Λಠࣗ։ൃ • We are hiring!!!! ݚڀ৬ & ٕज़৬ 4 ৄࡉNICTΣϒαΠτ>࠾༻ใ ͔Βʂ http://www.nict.go.jp/employment/201904.html -
ൃදࢿྉˠ http://bit.ly/bc20test ͡Ίʹ (excuse) • ຊ৬ωοτϫʔΫɾϢϏΩλείϯϐϡʔςΟϯάͷݚڀऀͰ͢ • ιϑτΣΞςετͷઐՈͰ͋Γ·ͤΜ • ίʔυॻ͖·͕͢όϦόϦͷݱ։ൃ͔Β5΄Ͳԕ͔ͬͯ͟·͢
• πʔϧͷࣄྫ͕ݹ͍Մೳੑ͕͋Δ·͢ • ͥͻ࠷ۙͷΠέͯΔπʔϧࣄྫΛڭ͑ͯԼ͍͞ʂ • ͢͜ͱ • 20ޙͷٕज़༧ଌ • (ٛͷ)ςετʹؔ͢Δπʔϧͷࣄྫհ • ԾۭؒΛ༻͍ͨ(ٛͷ)ςετͷࣄྫհͱऔհ • ͞ͳ͍͜ͱ • ιϑτΣΞςετͷମܥతͳ • ιϑτΣΞςετͷཏతͳ 5 -
ൃදࢿྉˠ http://bit.ly/bc20test 20લͷςΫϊϩδʔ (2000ࠒ) 6 CC BY-SA 2.5 Photo by
asamoto ϙέϕϧ Windows 2000 CC BY-SA 4.0 Photo by Mc681 iϞʔυܞଳ (1999ʙ) PHS (Pϝʔϧ: 1996ʙɺ PϝʔϧDX: 1999ʙ) https://www.toshiba.co.jp/about/press/1999_03/pr_j2301.htm -
ൃදࢿྉˠ http://bit.ly/bc20test ݱࡏͷςΫϊϩδʔ (2019) 7 Oculus Quest https://www.oculus.com/quest iPhone XS
https://www.apple.com • εϚϗશʹීٴ(10લʹొ) • ʮΣΞϥϒϧίϯϐϡʔςΟϯάʯʮϢϏΩλείϯϐϡʔςΟϯάʯ ͕࣮͞Ε͡Ίͨʢ͍ΘΏΔIoTʣ • όʔνϟϧϦΞϦςΟ (VR) • ػցֶश Fitbit Alta HR https://www.fitbit.com/jp/altahr Amazon Echo https://www.amazon.co.jp/dp/ B074B17MJ6 -
ൃදࢿྉˠ http://bit.ly/bc20test ϢϏΩλείϯϐϡʔςΟϯά • Mark Weiser, “The Computer for the
21st Century” (1991) • 21ੈلͷίϯϐϡʔςΟϯάʹ͍ͭͯॻ͔Εͨจॻ • ͍·ͷIoTɺεϚϗɺΣΞϥϒϧσόΠε 9 Mark Weiser, The Computer for the 21st Century (1991) -
ൃදࢿྉˠ http://bit.ly/bc20test ίϯςΩετΞΣΞ • Context-Aware (System / Application / etc.)
• ຊޠʹ͢ͱʮঢ়گΛߟྀͨ͠ (γεςϜ/ΞϓϦέʔγϣϯ)ʯ • “Context-Aware”ͱ͍͏୯ޠͷॳग़Schilit and Theimer(1994), "Disseminating active map information to mobile hosts” • Mark WeiserͷUbicompจ(1991)ͷ3ޙ • Xerox Palo Altoݚڀॴ • ࠷༗໊ͳจͷͻͱ͕ͭA.K.Dey(2001), “Understanding and Using Context” 10 Software Context -
ൃදࢿྉˠ http://bit.ly/bc20test ίϯςΩετͷཁૉͷྫ • Spatial contextɿॴɺݐͳͲ • Temporal contextɿ࣌ؒɺ༵ͳͲ •
Device contextɿը໘αΠζͳͲ • Network and communication contextɿωοτϫʔΫԆ ͳͲ • Environmental contextɿཧڥɻ૽Իɺޫͷڧ͞ͳͲɻ • Individuality and user profile contextɿϢʔβͷᅂɺؔ ৺ɺश׳ͳͲʹؔ͢ΔίϯςΩετ • Activity contextɿݱࡏͲͷλεΫʹؔΘ͍ͬͯΔͷ͔ɺ࣍ ʹԿΛ͢Δͷ͔ • Mental contextɿ৺ͷ෦ঢ়ଶʹؔ͢Δใɻײɺؾ ɺετϨε • Interaction contextɿϢʔβؒͷΠϯλϥΫγϣϯɺϢʔ βͱΞϓϦέʔγϣϯͷΠϯλϥΫγϣϯͳͲ 11 Knappmeyer et al., Survey of Context Provisioning Middleware (2013) -
ൃදࢿྉˠ http://bit.ly/bc20test 20ޙͷςΫϊϩδʔ (2040ࠒ) • ಁաܕϔουϚϯτσΟεϓϨΠ(MR) • ඇಁաܕϔουϚϯτσΟεϓϨΠ(VR) • ۭؒηϯγϯά
• / ࢢ / ಓ࿏ etc. • ࣗಈӡసं (Ϩϕϧ5ɿશࣗಈӡస) 12 ※ಠஅʹجͮ͘ໝͰ͢ -
ൃදࢿྉˠ http://bit.ly/bc20test ιϑτΣΞςετ • ιϑτΣΞςετ is େࣄ • ςετۦಈ։ൃ •
ςετࣗಈԽ • CI(ܧଓతΠϯςάϨʔγϣϯ): Jenkins, CircleCI etc. • αʔόڥςετ: Serverspec etc. • UIςετπʔϧ: Selenium, appium etc. 13 -
ൃදࢿྉˠ http://bit.ly/bc20test ϋʔυΣΞͷE2Eςετ • εϚʔτϩοΫςετͷࣗಈԽ 14 ϋʔυΣΞΛE2EςετͰ͖ͳ͍ͳΜͯ୭͕ݴͬͨʁ - IoTͷςετΛࣗಈԽ͢Δϝιου (Ishii
Taiki) - builderscon tokyo 2018 https://www.youtube.com/watch?v=m_HCUdWtQco -
ൃදࢿྉˠ http://bit.ly/bc20test εϚϗͷςετࣗಈԽ • ཧతʹλοϓͯࣗ͠ಈԽ 15 iOSͷςετࣗಈԽ - Quality Commander
7 https://www.youtube.com/watch?v=QlfWZOzM-ik -
ൃදࢿྉˠ http://bit.ly/bc20test Remotion • ϦϞʔτ͓ΑͼԾۭؒͷͱ࢟Λಉظ 16 Qian et al., Remotion:
A Motion-Based Capture and Replay Platform of Mobile Device Interaction for Remote Usability Testing (UBICOMP2018) -
ൃදࢿྉˠ http://bit.ly/bc20test ϞόΠϧΞϓϦέʔγϣϯ͚ίϯςΩετੜ • Androidͷ࣮ػ͓ΑͼΤϛϡϨʔλʹίϯςΩετใ Λೖ 17 Rege et al.,
Realistic Context Generation For Mobile App Testing and Performance Evaluation (PerCom2017) Luo et al., TestAWARE: A Laboratory-Oriented Testing Tool for Mobile Context-Aware Applications (UBICOMP2017) -
ൃදࢿྉˠ http://bit.ly/bc20test Kinect Doll 18 KINECT DOLL Ver3.0 https://www.youtube.com/watch?v=syY26n7ponM •
KinectΞϓϦέʔγϣϯσόοά༻ͷਓܗ • ҙͷϙʔζΛࢦఆՄೳ (ಈըͰਓؒͱಉ͡ಈ͖) -
ൃදࢿྉˠ http://bit.ly/bc20test ࣗಈӡసं • UberͷࣗಈӡసऀͷߦςετͷͨΊͷڊେίʔε 19 Our Road to Self-Driving
Vehicles | Uber ATG https://www.youtube.com/watch?v=27OuOCeZmwI -
ൃදࢿྉˠ http://bit.ly/bc20test EUDebug 20 • IFTTTͷΑ͏ʹΤϯυϢʔβ͕࡞͢ΔTrigger-ActionϧʔϧͷͨΊͷσόοάπʔϧ • Trigger-ActionϧʔϧͰى͜Γ͏Δ3छྨͷ • ʮϧʔϓ(loop)ʯʮໃ६(inconsistency)ʯʮੑ(redundancy)ʯ
• ͜ͷΛಛఆͯ͠Ϣʔβʹఏࣔ͢Δ • Semantic Colored Petri-Net(SCPN)ϞσϧΛར༻ͯ͠ϧʔϧΛղੳ Corno et al., Empowering End Users in Debugging Trigger-Action Rules (CHI2019) -
ൃදࢿྉˠ http://bit.ly/bc20test UBIWISE • άϥϑΟοΫΤϯδϯΛ༻͍ͨԾڥΛΞϓϦέʔ γϣϯςετͷίϯςΩετʹར༻ • ᝑମઃܭΞϓϦέʔγϣϯςετʹར༻ 22 Barton
and Vijayaraghavan, UBIWISE, A Ubiquitous Wireless Infrastructure Simulation Environment (2002) -
ൃදࢿྉˠ http://bit.ly/bc20test UbiREAL • εϚʔτεϖʔεͷͨΊͷγεςϜςετڥ • ϏδϡΞϥΠβɺωοτϫʔΫγϛϡϨʔλɺཧγϛϡϨʔλͷ ػೳΛࡌ 23 Nishikawa
et al., UbiREAL: Realistic Smartspace Simulator for Systematic Testing (UBICOMP 2006) -
ൃදࢿྉˠ http://bit.ly/bc20test AirSim (Microsoft Research) • ࣗಈӡసंɾυϩʔϯͷػցֶशͷͨΊͷγϛϡϨʔλ • Unreal Engine4
24 Shah et al., AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles (FSR 2017) -
ൃදࢿྉˠ http://bit.ly/bc20test AI2-THOR • ՈࣄϩϘοτͷֶशͷͨΊͷ3Dڥ • Unity 25 Kolve et
al., AI2-THOR: An Interactive 3D Environment for Visual AI (arXiv) -
ൃදࢿྉˠ http://bit.ly/bc20test House3D (Facebook AI Research) • ϩϘοτͷՈఉλεΫͷֶशͷͨΊͷ3Dڥ 26 Wu
et al., Building Generalizable Agents with a Realistic and Rich 3D Environment (ICLR 2018) -
ൃදࢿྉˠ http://bit.ly/bc20test ԾڥΛͬͨςετڥͷఏҊ • Bluetooth Low Energy (BLE) ʹؔ͢ΔݚڀࣄྫΛհ •
BluMoon: Linux༻BLEΤϛϡϨʔλ • AOBAKO: BLEϏʔίϯΞϓϦέʔγϣϯͷݕূγεςϜ • BLE: ػثؒଓ(εϚϗ-पลػث)ɺଌҐͳͲʹΘΕΔ 28 https://www.bluetooth.com/what-is-bluetooth-technology/how-it-works -
ൃදࢿྉˠ http://bit.ly/bc20test BluMoon֓ཁ • Bluetooth Low Energy (BLE)ͷϑϨʔϜΛUDP/IP/Ethernetʹࡌͤͯ௨৴͢Δ ΤϛϡϨʔλ •
PCΫϥελͰ௨৴࣮ݧՄೳ • ԾϚγϯͰ௨৴࣮ݧՄೳ • ԕִͰ௨৴࣮ݧՄೳ • Linux্ͰBluetoothΠϯλϑΣʔεͱͯ͠ݟ͑Δ • ిड৴ڧ(RSS)ʁ → ࠶ݱ͠·͢ • ిׯবʁ → ࠶ݱ͠·͢ 29 -
ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: HCIΛڥքͱͨ͠ίϯτϩʔϥΤϛϡϨʔγϣϯ • Application, Host, Controllerͱ͍͏֊ߏ • Host-ControllerؒHost-Controller
Interface(HCI)͕ఆٛ • ίϯτϩʔϥΛLinuxΞϓϦέʔγϣϯͱ࣮ͯ͠ 30 ͜͜ΛLinuxΞϓϦέʔγϣϯʹஔ͖͑Δ -
ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: ઃܭͱ࣮ • ΦʔϓϯιʔεLinux BluetoothελοΫBlueZΛݩʹ࣮ • ԾΠϯλϑΣʔε͔Β௨৴Ͱ͖ΔΑ͏վม •
ػثؒ௨৴UDPσʔλάϥϜʹωοτϫʔΫԾԽϑΥʔϚοτΛ แ • ΤϛϡϨʔγϣϯʹඞཁͳใ(ch,TxPower,Location)Λϔομʹ֨ೲ 32 -
ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: ड৴ిڧͷ฿ • ϊʔυͷҐஔΛܾΊͯڑʹԠͯ͡ݮਰ • ࣮ࡍͷൖɾݮਰෳࡶ(ਤ)͕ͩɺ͜͜Ͱ୯७ͳϞσϧ • ࣗ༝ۭؒిଛࣦ
+ Ճࢉੑന৭ΨεࡶԻ(AWGN) 33 • AWGN(δ)ҎԼͷ֬ີ͔ؔΒཚ Neburka et al., Study of the Performance of RSSI based Bluetooth Smart Indoor Positioning (2016) -
ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: ిׯবͷ฿ • BLEͰ2.400GHz-2.480GHzΛ0.002GHzͣͭ40chʹׂ • ಉνϟϯωϧͷผϑϨʔϜΛಉ࣌(Ұఆ࣌ؒ)ʹड৴ͨ͠Βׯব ͱΈͳ͢ →
ϑϨʔϜΛഁغ 34 Faragher and Harle, Location FingerprintingWith Bluetooth Low Energy Beacons -
ൃදࢿྉˠ http://bit.ly/bc20test AOBAKO: ݕূڥ • ෦ʹϏʔίϯൃ৴ػͱͯ͠Raspberry Pi͕ຒΊࠐ·Ε͍ͯΔ • 4ͷRaspberry PiͰϩʔςʔγϣϯͰϏʔίϯൃ৴
• ҐஔΛ࠶ݱ͢ΔͨΊʹϏʔίϯͷϔομͷૹ৴ిྗΛॻ͖͑ • ࣮ࡍ͔ۙ͘ΒͷϏʔίϯ͕ͩɺԕ͔͘ΒඈΜͰ͖ͨΑ͏ʹݟ ͔͚ͤΔ 37 -
ൃදࢿྉˠ http://bit.ly/bc20test AOBAKO: ׆༻ • BLEϏʔίϯड৴ిڧ(RSSI)ʹΑͬͯεϚʔτϑΥϯͰͷଌҐ(ۙఆ)ʹ ༻͍ΒΕΔ • ళฮࣗಈൢചػͷདྷళݕ •
തؗφϏήʔγϣϯΞϓϦ 40 ౦ژࠃཱതؗ - ΞϓϦʮτʔϋΫͳͼʯ • ݕূ͕େม • ϏʔίϯઃஔޙͷҐஔมߋ͕ࠔ • ΞϓϦέʔγϣϯΛ࣋ͬͯา͖ճΔ • → ص্ݕূΛՄೳʹ -
ൃදࢿྉˠ http://bit.ly/bc20test ·ͱΊ 41 https://sigpx.org • ιϑτΣΞ͕Ͱ͖Δ͜ͱ͕૿͑ΔʢߴػೳԽɺѻ͏ରͷൣғԽʣ • ։ൃςετͲΜͲΜෳࡶʹͳΔɿࣗવͷઁཧ •
ΤϯδχΞ͜ͷྲྀΕʹ͍ͬͯ͘ඞཁ͕͋Δ • ٕज़ͷൃలΛ૾͢Δͷָ͍͠͠ɺൃలٕͨ͠ज़ΛͲ͏ͬͯςετ ͢Δ͔ߟ͑Δͷָ͍͠ πʔϧࣄྫͷհɺ࣭ɺײɺίϝϯτͳͲ͓ͪͯ͠·͢ (TwitterͳͲͰ) @yumu19