Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

ൃදࢿྉˠ http://bit.ly/bc20test ࣗݾ঺հ • ౬ଜ ཌྷ / @yumu19 • ࠃཱݚڀ։ൃ๏ਓ ৘ใ௨৴ݚڀػߏ ݚڀһ • ઐ໳ɿωοτϫʔΫɺϢϏΩλείϯϐϡʔςΟϯά etc. 2 ৘ใॲཧֶձࢽ ฤूҕһ ٕज़ॻయ7Ͱֶձࢽ൦෍ ͓͏ͪϋοΫಉ޷ձ Ϟϊͮ͘ΓܥϙουΩϟετ ඼ϞϊϥδΦ https://www.facebook.com/ groups/ouch.hack/ https://shinamonoradio.github.io/

Slide 3

Slide 3 text

ൃදࢿྉˠ http://bit.ly/bc20test NICT 3 w ਖ਼໊ࣜশɿࠃཱݚڀ։ൃ๏ਓ৘ใ௨৴ݚڀػߏ w /BUJPOBM*OTUJUVUFPG*OGPSNBUJPOBOE$PNNVOJDBUJPOT5FDIOPMPHZ w ʮʹ͘ͱʯͰ͸ͳ͘ʮ͑͵͍͋͠ʔͯ͌ʔʯΒ͍͠ʢผʹͲͬͪͰ΋͍͍͚Ͳɾɾɾʣ w ૯຿লॴ؅ͷࠃཱݚڀ։ൃ๏ਓ w ೔ຊશࠃՕॴ খۚҪɺେखொɺઋ୆ɺࣛౡɺԣਢլɺੴ઒ɺژ౎ɺେࡕɺਆށɺԭ ೄ ʹڌ఺ w ແઢɺޫ௨৴ɺࣗવݴޠॲཧɺ೴৘ใɺӉ஦ఱؾɺηΩϡϦςΟɺϏοάσʔλFUD w ೔ຊඪ४࣌ΛܾΊΔ࣌ܭ͕͋Δ w ͏Δ͏ඵͷͱ͖ʹχϡʔεʹͳΔ

Slide 4

Slide 4 text

ൃදࢿྉˠ http://bit.ly/bc20test StarBED • NICTͷηϯλʔ(ࣄۀॴ)ͷͻͱͭ • ੴ઒ݝೳඒࢢʹ͋Δੈք࠷େن໛ͷωοτϫʔΫςετϕου • ໿1000୆ͷ෺ཧϊʔυ͕Քಇ • ػߏ಺֎ͷݚڀऀɾ։ൃऀʹ࣮ݧ؀ڥΛఏڙ • ؅ཧɾ੍ޚπʔϧ܈Λಠࣗ։ൃ • We are hiring!!!! ݚڀ৬ & ٕज़৬ 4 ৄࡉ͸NICT΢ΣϒαΠτ>࠾༻৘ใ ͔Βʂ http://www.nict.go.jp/employment/201904.html

Slide 5

Slide 5 text

ൃදࢿྉˠ http://bit.ly/bc20test ͸͡Ίʹ (excuse) • ຊ৬͸ωοτϫʔΫɾϢϏΩλείϯϐϡʔςΟϯάͷݚڀऀͰ͢ • ιϑτ΢ΣΞςετͷઐ໳ՈͰ͸͋Γ·ͤΜ • ίʔυ͸ॻ͖·͕͢όϦόϦͷݱ৔։ൃ͔Β͸5೥΄Ͳԕ͔ͬͯ͟·͢ • πʔϧͷࣄྫ͕ݹ͍Մೳੑ͕͋Δ·͢ • ͥͻ࠷ۙͷΠέͯΔπʔϧ΍ࣄྫΛڭ͑ͯԼ͍͞ʂ • ࿩͢͜ͱ • 20೥ޙͷٕज़༧ଌ • (޿ٛͷ)ςετʹؔ͢Δπʔϧͷࣄྫ঺հ • Ծ૝ۭؒΛ༻͍ͨ(޿ٛͷ)ςετͷࣄྫ঺հͱऔ૊঺հ • ࿩͞ͳ͍͜ͱ • ιϑτ΢ΣΞςετͷମܥతͳ࿩ • ιϑτ΢ΣΞςετͷ໢ཏతͳ࿩ 5

Slide 6

Slide 6 text

ൃදࢿྉˠ 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

Slide 7

Slide 7 text

ൃදࢿྉˠ 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

Slide 8

Slide 8 text

ൃදࢿྉˠ http://bit.ly/bc20test 20೥ޙͷςΫϊϩδʔ (2040೥ࠒ) 8 ʁ

Slide 9

Slide 9 text

ൃදࢿྉˠ 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)

Slide 10

Slide 10 text

ൃදࢿྉˠ 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

Slide 11

Slide 11 text

ൃදࢿྉˠ 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)

Slide 12

Slide 12 text

ൃදࢿྉˠ http://bit.ly/bc20test 20೥ޙͷςΫϊϩδʔ (2040೥ࠒ) • ಁաܕϔουϚ΢ϯτσΟεϓϨΠ(MR) • ඇಁաܕϔουϚ΢ϯτσΟεϓϨΠ(VR) • ۭؒηϯγϯά • ೶৔ / ౎ࢢ / ಓ࿏ etc. • ࣗಈӡసं (Ϩϕϧ5ɿ׬શࣗಈӡస) 12 ※ಠஅʹجͮ͘ໝ૝Ͱ͢

Slide 13

Slide 13 text

ൃදࢿྉˠ http://bit.ly/bc20test ιϑτ΢ΣΞςετ • ιϑτ΢ΣΞςετ is େࣄ • ςετۦಈ։ൃ • ςετࣗಈԽ • CI(ܧଓతΠϯςάϨʔγϣϯ): Jenkins, CircleCI etc. • αʔό؀ڥςετ: Serverspec etc. • UIςετπʔϧ: Selenium, appium etc. 13

Slide 14

Slide 14 text

ൃදࢿྉˠ http://bit.ly/bc20test ϋʔυ΢ΣΞͷE2Eςετ • εϚʔτϩοΫςετͷࣗಈԽ 14 ϋʔυ΢ΣΞΛE2EςετͰ͖ͳ͍ͳΜͯ୭͕ݴͬͨʁ - IoTͷςετΛࣗಈԽ͢Δϝιου (Ishii Taiki) - builderscon tokyo 2018 https://www.youtube.com/watch?v=m_HCUdWtQco

Slide 15

Slide 15 text

ൃදࢿྉˠ http://bit.ly/bc20test εϚϗͷςετࣗಈԽ • ෺ཧతʹλοϓͯࣗ͠ಈԽ 15 iOS୺຤ͷςετࣗಈԽ - Quality Commander 7 https://www.youtube.com/watch?v=QlfWZOzM-ik

Slide 16

Slide 16 text

ൃදࢿྉˠ 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)

Slide 17

Slide 17 text

ൃදࢿྉˠ 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)

Slide 18

Slide 18 text

ൃදࢿྉˠ http://bit.ly/bc20test Kinect Doll 18 KINECT DOLL Ver3.0 https://www.youtube.com/watch?v=syY26n7ponM • KinectΞϓϦέʔγϣϯσόοά༻ͷਓܗ • ೚ҙͷϙʔζΛࢦఆՄೳ (ಈըͰ͸ਓؒͱಉ͡ಈ͖)

Slide 19

Slide 19 text

ൃදࢿྉˠ http://bit.ly/bc20test ࣗಈӡసं • Uberͷࣗಈӡసऀͷ૸ߦςετͷͨΊͷڊେίʔε 19 Our Road to Self-Driving Vehicles | Uber ATG https://www.youtube.com/watch?v=27OuOCeZmwI

Slide 20

Slide 20 text

ൃදࢿྉˠ 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)

Slide 21

Slide 21 text

ൃදࢿྉˠ http://bit.ly/bc20test Ծ૝؀ڥͷ׆༻ • ୺຤֎ͷ৘ใ (෺ཧత৘ใ) ͷऔಘ͕伴 • Ծ૝؀ڥɾγϛϡϨʔγϣϯΛςετʹ׆༻ 21

Slide 22

Slide 22 text

ൃදࢿྉˠ http://bit.ly/bc20test UBIWISE • άϥϑΟοΫΤϯδϯΛ༻͍ͨԾ૝؀ڥΛΞϓϦέʔ γϣϯςετͷίϯςΩετʹར༻ • ᝑମઃܭ΍ΞϓϦέʔγϣϯςετʹར༻ 22 Barton and Vijayaraghavan, UBIWISE, A Ubiquitous Wireless Infrastructure Simulation Environment (2002)

Slide 23

Slide 23 text

ൃදࢿྉˠ http://bit.ly/bc20test UbiREAL • εϚʔτεϖʔεͷͨΊͷγεςϜςετ؀ڥ • ϏδϡΞϥΠβɺωοτϫʔΫγϛϡϨʔλɺ෺ཧγϛϡϨʔλͷ ػೳΛ౥ࡌ 23 Nishikawa et al., UbiREAL: Realistic Smartspace Simulator for Systematic Testing (UBICOMP 2006)

Slide 24

Slide 24 text

ൃදࢿྉˠ 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)

Slide 25

Slide 25 text

ൃදࢿྉˠ http://bit.ly/bc20test AI2-THOR • ՈࣄϩϘοτͷֶशͷͨΊͷ3D؀ڥ • Unity 25 Kolve et al., AI2-THOR: An Interactive 3D Environment for Visual AI (arXiv)

Slide 26

Slide 26 text

ൃදࢿྉˠ 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)

Slide 27

Slide 27 text

ൃදࢿྉˠ http://bit.ly/bc20test ֶश޲͚Ծ૝؀ڥ • ͨ͘͞Μ͋Δ 27 AI2-THOR http://ai2thor.allenai.org/ ΑΓ

Slide 28

Slide 28 text

ൃදࢿྉˠ 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

Slide 29

Slide 29 text

ൃදࢿྉˠ http://bit.ly/bc20test BluMoon֓ཁ • Bluetooth Low Energy (BLE)ͷϑϨʔϜΛUDP/IP/Ethernetʹࡌͤͯ௨৴͢Δ ΤϛϡϨʔλ • PCΫϥελͰ௨৴࣮ݧՄೳ • Ծ૝ϚγϯͰ௨৴࣮ݧՄೳ • ԕִ஍Ͱ௨৴࣮ݧՄೳ • Linux্ͰBluetoothΠϯλϑΣʔεͱͯ͠ݟ͑Δ • ి೾ड৴ڧ౓(RSS)͸ʁ → ࠶ݱ͠·͢ • ి೾ׯব͸ʁ → ࠶ݱ͠·͢ 29

Slide 30

Slide 30 text

ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: HCIΛڥքͱͨ͠ίϯτϩʔϥΤϛϡϨʔγϣϯ • Application, Host, Controllerͱ͍͏֊૚ߏ଄ • Host-Controllerؒ͸Host-Controller Interface(HCI)͕ఆٛ • ίϯτϩʔϥΛLinuxΞϓϦέʔγϣϯͱ࣮ͯ͠૷ 30 ͜͜ΛLinuxΞϓϦέʔγϣϯʹஔ͖׵͑Δ

Slide 31

Slide 31 text

ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: ಈ࡞σϞ • ϩʔΧϧϗετ(BluetoothΠϯλϑΣʔεແ͠)ʹ Bluetoothύέοτ(ΞυόλΠζ)Λ஫ೖ 31

Slide 32

Slide 32 text

ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: ઃܭͱ࣮૷ • ΦʔϓϯιʔεLinux BluetoothελοΫBlueZΛݩʹ࣮૷ • Ծ૝ΠϯλϑΣʔε͔Β௨৴Ͱ͖ΔΑ͏վม • ػثؒ௨৴͸UDPσʔλάϥϜʹωοτϫʔΫԾ૝ԽϑΥʔϚοτΛ ಺แ • ΤϛϡϨʔγϣϯʹඞཁͳ৘ใ(ch,TxPower,Location)Λϔομʹ֨ೲ 32

Slide 33

Slide 33 text

ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: ड৴ి೾ڧ౓ͷ໛฿ • ϊʔυͷҐஔΛܾΊͯڑ཭ʹԠͯ͡ݮਰ • ࣮ࡍͷ఻ൖɾݮਰ͸ෳࡶ(ਤ)͕ͩɺ͜͜Ͱ͸୯७ͳϞσϧ • ࣗ༝ۭؒి೾఻೻ଛࣦ + Ճࢉੑന৭Ψ΢εࡶԻ(AWGN) 33 • AWGN(δ)͸ҎԼͷ֬཰ີ౓ؔ਺͔Βཚ୒ Neburka et al., Study of the Performance of RSSI based Bluetooth Smart Indoor Positioning (2016)

Slide 34

Slide 34 text

ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: ి೾ׯবͷ໛฿ • BLEͰ͸2.400GHz-2.480GHzΛ0.002GHzͣͭ40chʹ෼ׂ • ಉνϟϯωϧͷผϑϨʔϜΛಉ࣌(Ұఆ࣌ؒ಺)ʹड৴ͨ͠Βׯব ͱΈͳ͢ → ϑϨʔϜΛഁغ 34 Faragher and Harle, Location FingerprintingWith Bluetooth Low Energy Beacons

Slide 35

Slide 35 text

ൃදࢿྉˠ http://bit.ly/bc20test BluMoon: ൺֱ࣮ݧ • ࣮؀ڥͱΤϛϡϨʔγϣϯͷൺֱ 35

Slide 36

Slide 36 text

ൃදࢿྉˠ http://bit.ly/bc20test AOBAKO֓ཁ • BLEϏʔίϯར༻ΞϓϦέʔγϣϯͷݕূγεςϜ • ശͷ্ʹ୺຤Λஔ͚ͩ͘ͰBLEΞϓϦέʔγϣϯΛ ༷ʑͳ৚݅Ͱݕূ͢Δ͜ͱ͕Ͱ͖Δ 36

Slide 37

Slide 37 text

ൃදࢿྉˠ http://bit.ly/bc20test AOBAKO: ݕূ؀ڥ • ಺෦ʹ͸Ϗʔίϯൃ৴ػͱͯ͠Raspberry Pi͕ຒΊࠐ·Ε͍ͯΔ • 4୆ͷRaspberry PiͰϩʔςʔγϣϯͰϏʔίϯൃ৴ • ҐஔΛ࠶ݱ͢ΔͨΊʹϏʔίϯͷϔομͷૹ৴ిྗ஋Λॻ͖׵͑ • ࣮ࡍ͸͔ۙ͘ΒͷϏʔίϯ͕ͩɺԕ͔͘ΒඈΜͰ͖ͨΑ͏ʹݟ ͔͚ͤΔ 37

Slide 38

Slide 38 text

ൃදࢿྉˠ http://bit.ly/bc20test AOBAKO: ৚݅ઃఆΠϯλϑΣʔε • Ϗʔίϯૹ৴ػͱड৴ػͷҐஔΛࢦఆ • ্෦ͷWebΧϝϥͷө૾͔Β਺ࣈΛೝࣝ 38

Slide 39

Slide 39 text

ൃදࢿྉˠ http://bit.ly/bc20test AOBAKO: Ϗϡʔϫ • Ϗʔίϯૹ৴ͷ༷ࢠΛՄࢹԽ 39

Slide 40

Slide 40 text

ൃදࢿྉˠ http://bit.ly/bc20test AOBAKO: ׆༻ • BLEϏʔίϯ͸ड৴ి೾ڧ౓(RSSI)ʹΑͬͯεϚʔτϑΥϯ౳Ͱͷ԰಺ଌҐ(ۙ઀൑ఆ)ʹ ༻͍ΒΕΔ • ళฮ΍ࣗಈൢചػͷདྷళݕ஌ • ത෺ؗφϏήʔγϣϯΞϓϦ 40 ౦ژࠃཱത෺ؗ - ΞϓϦʮτʔϋΫͳͼʯ • ݕূ͕େม • ϏʔίϯઃஔޙͷҐஔมߋ͕ࠔ೉ • ΞϓϦέʔγϣϯ୺຤Λ࣋ͬͯา͖ճΔ • → ص্ݕূΛՄೳʹ

Slide 41

Slide 41 text

ൃදࢿྉˠ http://bit.ly/bc20test ·ͱΊ 41 https://sigpx.org • ιϑτ΢ΣΞ͕Ͱ͖Δ͜ͱ͕૿͑ΔʢߴػೳԽɺѻ͏ର৅ͷ޿ൣғԽʣ • ։ൃ΋ςετ΋ͲΜͲΜෳࡶʹͳΔɿࣗવͷઁཧ • ΤϯδχΞ͸͜ͷྲྀΕʹ৐͍ͬͯ͘ඞཁ͕͋Δ • ٕज़ͷൃలΛ૝૾͢Δͷ΋ָ͍͠͠ɺൃలٕͨ͠ज़ΛͲ͏΍ͬͯςετ ͢Δ͔ߟ͑Δͷ΋ָ͍͠ πʔϧ΍ࣄྫͷ঺հɺ࣭໰ɺײ૝ɺίϝϯτͳͲ͓଴ͪͯ͠·͢ (TwitterͳͲͰ) @yumu19