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
Frontend Quality Assurance at Cybozu, Inc #RakusMeetup Masashi Hirano / @shisama_
Slide 2
Slide 2 text
ฏ ণ࢜ / Masashi Hirano @shisama_ shisama Node.js Core Collaborator
Slide 3
Slide 3 text
What is this presentation for? • ϑϩϯτΤϯυͷ࣭อূʹ͍ͭͯ • αΠϘζ͕ߦ͍ͬͯΔऔΓΈʹ͍ͭͯհ͠·͢ʂ
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
ݕূϑϩʔͱ୲ ୯ମςετ && 2"ςετ ηΩϡϦςΟ ύϑΥʔϚϯε ϓϩμΫτ։ൃνʔϜ ։ൃࢧԉνʔϜ ։ൃத ɾPull Request୯Ґ ɾϚʔδޙ ϦϦʔεલޙ ϦάϨογϣϯςετ
Slide 6
Slide 6 text
ιϑτΣΞ࣭ͱʁ https://www.ipa.go.jp/files/000065855.pdf
Slide 7
Slide 7 text
ιϑτΣΞ࣭ͱʁ https://www.ipa.go.jp/files/000065855.pdf ࠓʮػೳʯʮੑೳʯʮηΩϡϦςΟʯ ʹ͍ͭͯ؆୯ʹ͠·͢
Slide 8
Slide 8 text
Function
Slide 9
Slide 9 text
αΠϘζͷػೳʹର͢Δ࣭อূ • ୯ମςετɺE2EɺUIςετΛಋೖ͍ͯ͠Δ • ςετΛॻ͘จԽਁಁ͍ͯ͠Δ • kintone ։ൃνʔϜʮಡΈ͘͢ςετՄೳͳίʔυΛॻ͘ʯΛϛο γϣϯͷ̍ͭʹ͍ͯ͠Δ • ςετ࣭อূͷઐνʔϜ(QAνʔϜ)͕͍Δ • ϓϩμΫτ։ൃνʔϜͰݟ͚ͭΒΕͳ͍ෆ۩߹ͳͲΛݟ͚ͭͯใࠂͯ͠ ͘ΕΔ
Slide 10
Slide 10 text
Performance
Slide 11
Slide 11 text
αΠϘζͷύϑΥʔϚϯεʹର͢Δ࣭อূ • SpeedCurve ͰఆظతʹϓϩμΫτίʔϙϨʔταΠτΛܭଌ • ϑϩϯτΤϯυΤΩεύʔτ͕ܭଌ݁ՌΛ֬ೝ • ύϑΥʔϚϯε͕Լ͕ͬͨ߹ݪҼٻ • ϓϩμΫτνʔϜͳͲଞνʔϜʹใࠂ
Slide 12
Slide 12 text
SpeedCurve
Slide 13
Slide 13 text
Lighthouse 13 • Google • OSS • Chrome devTools ʹඪ४ࡌ • Chrome ExtensionɺCLIɺCI (GitHub Actions, CircleCI, etc) ༷ʑͳܗࣜͰ͞Ε͍ͯΔ
Slide 14
Slide 14 text
Security
Slide 15
Slide 15 text
ϑϩϯτΤϯυʹؔ͢Δ੬ऑੑ https://blog.cybozu.io/entry/npm-vulnerabilities-and-postinstall https://blog.cybozu.io/entry/2020/05/07/110331
Slide 16
Slide 16 text
αΠϘζͷηΩϡϦςΟʹର͢Δ׆ಈ • ηΩϡϦςΟεϖγϟϦετνʔϜ(PSIRT)͕͍Δ • ੬ऑੑใ੍ۚ • ߏཧ • ֤Ͱར༻͍ͯ͠Δ 3rd Party Λཧ • package-lock.jsonɺyarn.lock ͔Β͍ͬͯΔ 3rd Party ͷϥΠϒϥϦʹ੬ऑੑ͕ͳ͍͔ PSIRTνʔϜ͕֬ೝͯ͘͠ΕΔ • npm ύοέʔδͷ੬ऑੑஅπʔϧ ( Snyk ) • ΜͳηΩϡϦςΟʹؔ͢Δࣾใڞ༗ͳͲ
Slide 17
Slide 17 text
https://blog.cybozu.io/entry/2020/04/28/080000
Slide 18
Slide 18 text
Snyk 18 • 3rd PartyϥΠϒϥϦͷ੬ऑੑΛ νΣοΫ͢ΔαʔϏε • CVEͷσʔλΛ͍ͬͯΔ • ༷ʑͳݴޠʹରԠ͍ͯ͠Δ • ੬ऑੑΛमਖ਼͢ΔPull Request Λࣗಈੜ • OSSແྉͰ͑Δ
Slide 19
Slide 19 text
https://speakerdeck.com/masashi ϑϩϯτΤϯυͷηΩϡϦςΟʹؔ͢ΔաڈൃදࢿྉࢀߟʹͲ͏ͧ
Slide 20
Slide 20 text
Conclusion • ઐతͳΛ࣋ͭ։ൃࢧԉνʔϜ • ϓϩμΫτνʔϜ͕҆৺ͯ͠ػೳ։ൃͰ͖Δ • ϓϩμΫτνʔϜ͕ڠಇ࣭ͯ͠ΛߴΊΔ͜ͱ͕ग़དྷΔ • πʔϧΛಋೖ͢Δ • ൺֱత؆୯ʹͰ͖Δ
Slide 21
Slide 21 text
https://blog.cybozu.io/entry/2019/08/05/190000 ͦͷଞͷϑϩϯτΤϯυͷऔΓΈͳͲϒϩάʹهࡌ͍ͯ͠·͢ʂ