はじめに
どうもwebアプリケーション開発でQAエンジニアをしている学生です。
最近は、AIにコードを書かせる機会が多くなり、以下にAIに自身の考えを上手く伝えられるかやアプリケーションの情報を機密性は維持しながら渡せるかが重要になってきたと感じました。
その為、Qiitaで自身が考えたことを議事録としてデータに残していくことは、今後のAIを活用する上で非常に重要になると思います。
その為、日々の開発で思ったことを議事録として記載できればと思います。
背景知識
今日は、playwright test agentを用いてドキュメント作成を行いました。
playwright agent testについて知りたい方はこちらのドキュメントを参考にしてください
https://playwright.dev/docs/test-agents
playwright agent testのplannerモードを用いると、agentが自動でブラウザ操作をして、テストシナリオケースをドキュメントに纏めてくれます。
作成してくれるドキュメントのフォーマットは、4つレビューした上では基本的に以下の項目で内容が作成されるイメージです。ここで、プロンプトには特にドキュメントのフォーマット指定はしていないため、これがデフォルトなのかもしれません。
## アプリケーション概要
## テストシナリオ
## 仕様の補足
## 成功基準
## テストの独立性
## 既知の制約事項
直面した課題
コードから想定される仕様を考慮しない
Playwright Agentは、コードベースから推測できる仕様やビジネスロジックを十分に考慮せずにブラウザ操作を行います。
具体例
既存システムにはWeb広告を作成する機能があり、以下の仕様が実装されています。
- 新規広告作成時、既存広告と期間が重複する場合は作成不可
playwright test agentがブラウザ操作をした時点では既存広告があまりないためブラウザ操作時は広告を作成できたのですが、手動で新規広告を作成した際に期間が重複してしまい作成できないことがありました。しかし、このような仕様をplaywright test agentは知るはずがないため、ブラウザ操作時に動くことができればそれが当たり前としてテストケースを作成してしまいました。
現状の対応策
先ほどの問題に対しての対応策としては、agentが作成したドキュメントをレビューしながら、実際に手動テストを実施して挙動を確認し、仕様に反する箇所を見つけたらCopilotに伝えて修正するのが現状です。
本来は、仕様書のドキュメントを整備してそれをagentに確認させてからブラウザ操作をさせるのが一番いいのですが、 仕様書の整備ができていないためそれは厳しそうです。
e2eテストを作成していく中で、このような仕様書を同時並行で作っていくのが丸いのかなと思いました。