見出し画像

転職のテンサゲから始まった自動化入門② ~結局、全部“期待値”の話だった~

※ これまでの自動化入門シリーズはこちら 🙆‍♀️

転職のテンサゲから始まった自動化入門 ~自動化できないQAの民から脱却~
https://note.com/miyu1928/n/n735526e3df96?sub_rt=share_sb


前回の記事で、私は「テスト自動化」という世界に足を踏み入れた。

Playwright、CI/CD、E2E……。

転職活動をきっかけに飛び込んだその世界は、最初かなり「コードを書くすごい人たちの世界」に見えていた。

でも調べていくうちに、

自動化って、品質を継続的に確認するための仕組みなんだな

という感覚が少しずつ見えてきた。

そして今回。
社内研修で実際にSelenium IDEを触り始めたのだが――

正直に言う。

最初は完全に呪文だった。


assert?verify?xpath??

知らない単語が次々に出てくる。

  • assert

  • verify

  • xpath

  • locator

  • isolation

何を言っているのか全然分からない。

特にxpath。

最初に見た時は、

「誰????」

ってなった。


Selenium IDEを触ってみたら、意外と“人間の操作”だった

ただ、実際にSelenium IDEを触ってみると、少し印象が変わった。

Selenium IDEは、ざっくり言うと「ブラウザ操作を記録する」ツール。

  • ボタンを押す

  • 入力する

  • 画面遷移する

といった人間の操作を、そのまま記録して再生できる。

最初は「自動化=難しいコードを書く世界」だと思っていたけれど、実際には、

人間がやっている確認作業を、順番に分解している

だけだった。

これ、意外と理解しやすかった。

Excelの「マクロ記録」に少し近い感覚かもしれない。


「assert」と「verify」の違いが、思った以上にQAだった

今回、一番「なるほど」と思ったのがここ。

assert は、NGだったらそこで停止する。

verify は、NGでも続行する。

最初は単なるコマンドの違いに見えた。

でも考えていくうちに、

「その期待値が、後続確認の前提を壊すか?」

の違いなんだと気づいた。

例えば、

  • ログインできない
    → その後の確認に意味がない
    → assert

一方、

  • ラジオボタン初期表示

  • 文言

  • レイアウト

などは、1箇所NGでも他もまとめて確認したい。

→ verify

つまり、

「期待値によるね」

という話だった。

これ、かなりQAっぽい。


isolationも、結局は「前提条件」の話だった

さらに面白かったのが isolation。

最初は「テスト独立性?何それ?」という感じだった。

でも整理していくと、

毎回同じ前提条件で期待値を確認するための考え方

だった。

例えば、

  • 前回のログイン状態が残っている

  • データが残っている

  • セッションが切れていない

そんな状態だと、

「今回のテスト結果」なのか分からなくなる。

つまり isolation は、

“期待値を純粋に確認するための環境づくり”

だった。

これ、手動テストでも普通にやっていた。


xpathは「道順」だった

そして、最大の呪文だった xpath。

でも話を聞いていくうちに、

HTMLの中を辿る「道順」

だと分かってきた。

例えば、

  • div = 箱

  • button = ボタン

  • input = 入力欄

それらがHTMLの中で階層構造になっていて、

「どこの部品を触るのか」

を指定するためのものだった。

最初は意味不明だったのに、

「道順か」

と思った瞬間、急に理解できた。


ラジオボタンの話まで、結局“品質”だった

途中で、

ラジオボタンって複数選択できるバグ起こるの?

という話になった。

標準のラジオボタンなら、ブラウザ側で排他制御してくれる。

でも最近のWeb画面は、divやCSSで「ラジオボタンっぽく見せている」ことも多いらしい。

その場合、排他制御を自前実装していることがある。

つまり、

  • 見た目はラジオボタン

  • 中身はただのdiv

みたいなことも普通にある。

そして、そういう「独自実装」ほど壊れやすい。

ここでも結局、

「何を保証したいのか」

という品質の話に戻ってきた。


自動化を学んでいるはずなのに、ずっと品質の話をしていた

最初は、

自動化 = コードを書く世界

だと思っていた。

でも実際には、

  • 何を保証したい?

  • どこまで確認したい?

  • どこで止める?

  • 人間が見るべき?

  • 機械が繰り返すべき?

……そんな話ばかりしていた。

気づけば、ずっと“品質”の話をしていた。

自動化は目的ではなく、

品質を継続的に守るための手段

だったのかもしれない。

……とはいえ。

しかし研修はまだ半分も終わっていない。

どうやら、自動化への道のりは思った以上に険しいらしい。

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