Introduction to
Visual Regression Testing
#nodefest ‘17
Slide 2
Slide 2 text
ࠓͷ͓
Slide 3
Slide 3 text
ࣗࣾϑϩϯτΤϯυ։ൃʹ
ը૾ճؼςετΛಋೖͨ͠
Slide 4
Slide 4 text
ͳͥը૾ճؼςετͳͷ͔ʁ
Slide 5
Slide 5 text
1. Ͳ͜·ͰDOMͷassert͢Δ͔
w type: Bͷͱ͖ʹɺԿΛνΣοΫ͠·͔͢ʁ
nodeName, textContent, classList શ෦֬ೝ͢Δʁ
Good evening, {{name}}.
Bon soir, {{name}}.
Other...
Slide 6
Slide 6 text
1. Ͳ͜·ͰDOMͷassert͢Δ͔
w BTTFSUॻ͖͗͢Δͱɺϝϯςͣ͠Β͍ʜ
ͰBTTFSU͕গͳ͗͢Δͷෆ҆ʜ
w ͦ͏ͩɺεφοϓγϣοτςετ͠Α͏
ƭ
The latest snapshot (DOM String)
ƭ
The actual snapshot (DOM String)
Update if snapshot is accepted
Assertion
reg-suitͷಛ
ը૾εφοϓγϣοτςετʹ͓͚Δ
w ࠩݕ
w ൺֱ݁Ռͷදࣔ
w εφοϓγϣοτͷߋ৽
Λ౷߹
Slide 22
Slide 22 text
ʮࠩൃੜ = ࣦഊʯͱݶΒͳ͍
͜ͷϑϩʔΛ؆୯ʹ࣮ݱ͢ΔͨΊͷπʔϧ
Slide 23
Slide 23 text
αϯϓϧͰݟͯΈΑ͏
Slide 24
Slide 24 text
Demo 1. Push ~ ࠩݕ
Slide 25
Slide 25 text
Demo 2. ϨϏϡΞ௨ୡ
Slide 26
Slide 26 text
Demo 3. ࠩͷ֬ೝ
Slide 27
Slide 27 text
GitHubϑϩʔͱͷ౷߹
Slide 28
Slide 28 text
(΄΅)
JavaScriptͰͰ͖͍ͯΔ
w $-* /PEFKT
w ը૾ࠩͷݕग़QOHKTQJYFMNBUDI
w ը૾ͷอଘ"844%,
w (JU)VC"QQ "84-BNCEB
w "QPMMP(SBQI2-$MJFOU
w ൺֱϨϙʔτ 8FC#SPXTFS
w ϑϩϯτΤϯυ7VFKT
w ࠩใϚʔΩϯά0QFO$7 8FC"TTFNCMZ
Slide 29
Slide 29 text
·ͱΊ
Slide 30
Slide 30 text
·ͱΊ
w ͬͯͯྑ͔ͬͨը૾ςετ
w ςετΛॻ͘Ϟνϕʔγϣϯ্
w ϨϏϡʔෛՙͷܰݮ
w SFHTVJU·ͩ·ͩվྑͷ༨͋Γʜ
w ϑΟʔυόοΫ13ͳͲ͓͓ͪͯ͠Γ·͢