testautomationresearch.connpass.com
本日も節操なくオンラインカンファレンスを聴きます。初めてでしたが、ソフトウェアテスト自動化カンファレンス2020を聴かせていただきました。
まとめ (いきなり)
- 知らないこと・知らないツールなどがたくさんあり、非常に勉強になった
- テスター視点よりの内容が多く、開発者側からテストを考える参考になった
- 自動化の悩みはやはり皆似ていて、それに対する考え方やノウハウは重要だと再認識できた
的な。個人的に、他のカンファレンスや勉強会とはまた一味違う感じがして、学びがありました。
品質を確認する上で、テスターと開発者の連携はかかせないわけで(区別が無い組織も多いかもしれませんが)、その両方に刺さるカンファレンスじゃないかあなと感じましたね。
テストチームと開発チームで一緒に参加したいカンファレンスですなあ。非常にためになりました。ありがとうございました。#stac2020
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
次カンパ枠残ってたら是非払わせていただきたい!
個々の発表振り返り
例のごとくTwitterをそのまま貼っつけていくよ
自動システムテストのテストケース見直しの観点とその自動化について
スライド: 自動システムテストのテストケース見直しの観点とその自動化について
テスト自動化8原則https://t.co/3HDPDMDmQo
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
5. 自動テストシステムの開発は継続的におこなうものである
にフォーカスしたお話#stac2020 #stac2020a
自動テストの見直し方針について。
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
- サービスにとって重要なページ
- バグが起きやすいページ
- 改修が多いページ
非常に理路整然としてて、上役にも説明しやすい構成だった、参考にしたい。#stac2020 #a #stac2020a
上記の通り。ものすごく論理的に分かりやすかったのが印象的です。どんなIT音痴でも説得できそうな気がしました。こういう観点を持って、ちゃんと資料を作れるようになりたいっす。
システムテスト自動化はじめの0.5歩 〜あつまれテスト自動化レイトマジョリティさんの森〜
「いやUIレイヤーのテストが大きくたっていい!!」「まずやってみよう!」
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
ノリ突っ込まないテスト自動化。#stac2020 #stac2020a #a
ぺこぱネタが印象的だった。そう、はじめの一歩まではやってみて失敗して、ちゃんと改善することが重要だよなあと。原則論でやる前からグダグダ言って実現が遅れるよりはやってみた結果を見て判断した方が良い。大体はケースバイケースになるしさ。
ただ、それを改善するリソースがなくなりがちで風化する例は割と見てきたから、そのあたりをいかに組織的にやっていくかが鍵だろうなあとは思います。
全部乗せ" フレームワーク CodeceptJS でE2Eテストを楽にしよう
スライド: 全部乗せフレームワーク CodeceptJS でE2Eテストを楽にしよう - Speaker Deck
全部のせフレームワーク CodeceptJShttps://t.co/KKMpJ6XDHf
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
なんか、このテスト書くの楽しそうだな… lambdaとかから直接呼べたら便利そう。#stac2020 #a #stac2020a
全部のせって言われると、正直使いこなすの大変そう、という気しかしてこないのですが、今日お話を聴いている限り、すごく使いやすそうに見えました。英文法っぽく書けるので楽しく書けそうな(本当か ちょっとどこかで軽く使ってみたいです。初めから良い全部のせフレームワークを選んでおけば、後から変更するコスト無いよね、っていうのはそのとおりだと思いましたねー。CodeceptJSはプラグインも書きやすいらしいので。
余談ですが、このセッション中にZoom SPAMが発生…
zoomにSPAMユーザが乱入してくる様を初めて見て驚愕している。。。 パスワード付きでもあるんやな…
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
登壇者の人は流れてきた爆音楽に乗って踊るという心の強さを見せていて凄いwww#stac2020 #stac2020a #a
なるほど、パスワードのURLパラメータ付きURLをTwitterに貼っちゃった可能性があるのか。それならしょうがない感。#stac2020 https://t.co/DWFPrmdeAW
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
どこから来たかは分からんけど、パスワード付きURLから直で来た可能性がありそう。自分も、さらっとコピペしないよう気をつけようと思いました。しかし、いたずらくんは英語圏の人だったと思いますが、海外の会議に入ってきてこれやってもリアクションよう分からんだろうし、何が楽しいんやろか…とは思いました。
E2E自動テストの前に、手動テストを効率化するための自動化を行った話
余談
テストラジオ 聴いてみよう...https://t.co/QnB1PURqsM#stac2020 #a #stac2020a
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
チームメンバーはプログラミング経験なくは無いけど、さほど凝ったことは難しいためテスト自動化をするのではなく、手動テストの効率化をブックマークレットで行ったお話。確かに、必ず自動化する必要があるわけでもないし、自動化したことによるコストも結構バカにならないですからね…
このブックマークレットを頑張って作れるのしゅごい。
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
おじさんテスターに、それはハッキングだぞ!って言われそうw#stac2020 #a #stac2020a
「ブックマークレット書いてたらDOMの知識がついてきたので」
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
この時点で大分レベルが高い気が、、、#stac2020 #a #stac2020a
でも、話聴いてると、なんか十分自動化できそうな気配を感じる内容でしたね。。。つよい。このあたり、効率化のために何を選択するかで、将来コストは結構左右されそうで難しいですね。こういう選択肢もあるんだよ、という良い事例でした。
EMTEを使って自動化の費用対効果をわかりやすく表現する
スライド: EMTEを使って自動化の費用対効果をわかりやすく表現する
このブログのおかただったと
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
RT: 自動テストの効果測定に使われるEMTEとは? - LIFULL Creators Blog https://t.co/HiSs4iNECb #stac2020 #a #stac2020a
- Equivalent Manual Test Effort: 120分
- テストを手動で実行する工数: 30分
手動実行と相対的に表せる -> 0.25 EMTE -> 直感的に1/4だと分かる
という感じで使える指標。最初の発表もそうですが、テストを効率化するためのリソースを確保するには、こういう数値が示せないといけなくて、そのための手法の一つとして、EMTEがあるよ、ということだけでも覚えて帰っていただければ(誰目線やねん
FindElementできない画面のElementをFindした方法、そこから発展していくテスト自動化
色々知れてよいですね。
便利なツールがたくさんありすぎていくつ知ってたっていい!
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
MOTION BOARDhttps://t.co/ky0F7OW8gQ#stac2020 #a #stac2020a
このあたりのことはちょっとイメージできなかったりも。
フロントの知識が浅くてイメージできてねえ… Canvasに複数の id=viewが入れられる?んだっけ?
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
座標情報で対応するというのもまた凄い…#stac2020 #a #stac2020a https://t.co/YUUkWlqmnI
あるあるも。
ストップウォッチで速度計測… うっ…頭が…
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
Web描画じゃないけど、テスターさんが同じことやってたからJavaScriptで時間出すシンプルツール作ったことあったなw どうしたってブレるからね時間…#stac2020 #a #stac2020a
なんか色々学んだ(雑
ローコード開発テストガイドライン
お声に癒されましたw
ローコードで開発コストは下がっても、結合テストでかかる工数は同じ。言われてみればそうだな… なんかあっという間にできます評判だけ聞くけど、そこはあるよね。テスト設計とかちゃんとできない組織でいきなりウェーイとはならんよね。
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
と改めて思うなど#stac2020 #a #stac2020a
このあたり、たしかにあまり考えたことが無かったので、参考になりました。ローコード開発やったことないので、一回やってみないと分からんことも多いんだなと改めて感じました。
APIテスト、どうやってますか?
APIテストの定義って?みたいなコメントが出てたので、
REST APIならこれでもシンプルなAPIテストやろ?
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
```
#!/bin/bash
set -o errexit
curl https://t.co/1V4ZGp0WdQ -o /dev/null -w '%{http_code}\n' -s | grep 200
200
```
戻りのjsonをjqでassertしていくようになると辛くなってくる(シェルでやるな#stac2020 #b #stac2020b
Webサーバとか立ち上げるスクリプトの最後にこれくらいは書いたりします。これもAPIテストですよね?え?違う?
入力のテストケースを決めるところの苦労なのか。その辺はAPI仕様書がどれだけちゃんと定義されてるか次第な気がするな…#stac2020 #b #stac2020b
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
内容については抽象的な部分が多くてイメージできてないですが、API仕様がある程度作られてることが重要だとは思いましたね…
Swagger知らんかった。テストケースをJSONやYAMLで書いたことないけど、メンテナビリティとか可読性どうなんだろうなあ。#stac2020 #b #stac2020b
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
このへんはやってみないと(以下略
E2Eのリトライを少し賢くして、落ちにくくしてみた
対象ブラウザとしてIEは消えましたw#stac2020 #b #stac2020b
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
いいぞwと思いました。
リトライはなかなか難しいところではあるけどな。たまに落ちるエラーケースは潰さなければいけないものの可能性もあるから、それを見逃す諸刃の剣になる可能性もあり… とりあえず実行は回して、エラーは後で時間があるときに調査できるようにするのがいいかと(しないけど#stac2020 #b #stac2020b
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
この辺はわりと実体験もあり、むやみにリトライしてOKにしてしまうと、本番で問題になる現象を見落としてたりするので… 難しいよね、自動テスト…
reg-suitとQA Wolfを活用したVisual Regression Test
「テストNGのとき、自動テストの不備をまず疑う必要がある」
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
うっ、いきなり刃が刺さってきた…#stac2020 #b #stac2020b
汚いテストケースを書いた結果発生する 自滅の刃(とりあえず1スベリとしておく)。
reg-suit で手軽にVisual Regression Test
— 聖(ひじり)@re:Invent参加してる風おじさん (@hijili2) 2020年12月5日
画像をDIFFで確認できるとは… なかなかすごそう#stac2020 #b #stac2020b
便利そうでした。このツールも、Visual Regression Testという考え方も覚えておこう。。。
おわりに
ということで、本当に色々ためになりました。スタッフの皆様、ありがとうございました!!
これで、「テスト自動化むずかしいよ~、できないよ~」という子供みたいな人でテスト自動化できますね!!
いや、児童か!(2スベリ)
しかし自動化の知識がたくさん聞けすぎて、もうお腹いっぱいですわ、食べきれないや。
二郎か!?(3スベリ)
明日からしっかりテストを自動化するタイ!!
次藤か!!(分かる人しか分からん4スベリ)
僕のスベリに対するQAは対象外でお願いいたします。