転職のテンサゲから始まった自動化入門⑥〜AI伴走で7日間、自動化を動かしてみる Day2〜
※ これまでの自動化入門シリーズはこちら 🙆♀️
転職のテンサゲから始まった自動化入門 ~自動化できないQAの民から脱却~
https://note.com/miyu1928/n/n735526e3df96?sub_rt=share_sb
転職のテンサゲから始まった自動化入門② ~結局、全部“期待値”の話だった~
https://note.com/miyu1928/n/ne619b4b45401?sub_rt=share_sb
転職のテンサゲから始まった自動化入門③~自動化テストで見えてきた「人間が無意識にやっている確認」~
https://note.com/miyu1928/n/n71654b61e655?sub_rt=share_sb
転職のテンサゲから始まった自動化入門④~15分の復習~
https://note.com/miyu1928/n/nb044de60aaad?sub_rt=share_sb
転職のテンサゲから始まった自動化入門⑤
〜AI伴走で7日間、自動化を動かしてみる Day1〜
https://note.com/miyu1928/n/n6f2e4788a3c1?sub_rt=share_sb
昨日は、
ブラウザを自動で動かす
を体験した。
そして今日はそこから進んで、
「期待値をどう機械判定するか」
を学習した。
今回はかなり、
「QAと自動化が繋がった日」
だった気がする。
VSCodeで実際のコードを見る
今日はまず、
VSCodeで automation-practice フォルダを開いた。
そして、
tests/example.spec.js を確認。
昨日は、
「ブラウザが勝手に動いた!」
という体験がメインだったけど、
今日は実際にコードを見ながら、
「何を確認しているのか」
を理解していくフェーズ。
test() は「テストケース」
まず最初に確認したコードはこちら。
test('has title'
ここで理解したのは、
test() = テストケース定義
ということ。
つまり、
「何を確認するテストなのか」
を定義している。
今まで“実行されているもの”として見ていたコードが、
少しずつ意味を持って見え始めた。
page.goto() はURLアクセス
次に確認したコード。
await page.goto('https://playwright.dev/');
これは:
指定URLへアクセス
をしている。
今まで何となく見ていた
goto
も、
「あ、ちゃんと人間の操作をコード化してるんだな」
と少しずつ繋がってきた。
expect が今日の核心だった
今日いちばん理解が進んだのがこれ。
await expect(page).toHaveTitle(/Playwright/);
最初は正直、
呪文みたいだった。
でも整理していくと、
これは:
「ページタイトルに Playwright が含まれていること」
を確認している。
つまり、
期待値をコード化
している状態。
「動かす」と「保証する」は違う
ここ、
かなり大きかった。
最初は、
自動化 = 人の代わりに操作するもの
だと思っていた。
でも実際は違う。
重要なのは:
押した後、
正しい状態になったか
を確認すること。
つまり自動化テストは、
「品質確認内容のコード化」
なんだなと思った。
実際に期待値を壊してみた
今回は、
実際に期待値を壊してみた。
変更前:
/Playwright/
変更後:
/Praywright/
わざと typo(誤字)へ変更。
ここ、
かなり面白かった。
「本当に失敗するのか?」
を実際に確認できるから。
テストが失敗した
実行したコマンドはこちら。
npx playwright test --headed
すると:
Expected: Praywright
Received: Playwright
となり、
期待値不一致
で失敗。
ここでかなり、
「差分検知」
という感覚が繋がった。
エラーログで場所まで分かる
さらに、
example.spec.js:8
と表示され、
どのファイルの何行目で失敗したか
まで分かった。
今までエラーログって、
「怖い赤文字」くらいの印象だったけど、
「どこで何が起きたかを教えてくれるもの」
なんだなと理解し始めた。
壊した期待値だけ落ちる
今回面白かったのがここ。
chromium
firefox
webkit
全ブラウザで has title は失敗。
でも、
get started link
のテストは成功していた。
つまり:
壊した期待値だけ落ちる
ということ。
これ、
かなりQAっぽい。
必要な箇所だけ検知している。
修正したら復旧した
最後に:
/Praywright/
↓
/Playwright/
へ修正。
再実行すると、
6 passed
へ復旧。
ここでかなり、
「期待値との差分を検知している」
感覚が掴めた気がする。
今日理解したこと
今日いちばん大きかった理解は、
自動化 = 期待値との差分検知
ということ。
つまり、
「正しい状態」を
機械判定可能にする
ための仕組み。
単なる操作自動化ではなく、
品質確認内容のコード化
なんだなと思った。
Day2終了時点の感想
昨日は、
「ブラウザが動いてすごい!」
だった。
でも今日は、
「何を確認しているのか」
がかなり見えた。
特に、
expect
が、
「QAが普段やっている確認」
とかなり近い。
だから少しずつ、
「自動化は全然別世界」
ではなく、
「今やっている品質確認を
コードで表現している」
感覚に変わってきた。
次のテーマは:
異常系
予定内容は:
必須未入力
不正入力
エラーメッセージ確認
「正常系だけでは足りない」を理解
Day3へ続く🙆♀️
