見出し画像

転職のテンサゲから始まった自動化入門⑥〜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へ続く🙆‍♀️

いいなと思ったら応援しよう!