2023年3月9日(木)~10日(金) に開催されたJaSST'23 Tokyoの参加レポをお送りいたします。
JaSST について
JaSSTとは、NPO法人ASTER (ソフトウエアテスト技術振興協会)が運営している、ソフトウエア業界全体のテスト技術力の向上と普及を目指したソフトウエアテストシンポジウムです。
セッションの概要と感想
sekkey
EC事業部でQAを担当しておりますsekkeyです。
QA業務の改善提案をする事が多く、それに役立つようなセッションを選択しましたので、その中からひとつご紹介します。
「D6_AIテスト自動化ツールの向かう先」
こちらは、国内シェアの高い代表的なAIを利用したE2Eテスト自動化ツールである、Autify、mabl、MagicPodの提供元を招いたトークセッションです。ツールの紹介から入ることで、現在実現できていることやQA事情といった、ツールを取り巻く状況が語られました。
ツールの主要な機能は以下です。
- webサイトのレコードアンドプレイバックによる、ローコード・ノーコードのE2Eテスト作成
- 画面変更によるテスト失敗時にAIが修正するオートヒーリング機能
- 開発パイプラインへの組み込み
第2世代において代表的なツールであるSelenium、それらを経て今は第3世代に入っています。第3世代は第2世代の依然として高い保守コストを改善しました。しかしながら、E2Eテストのケースが増大、実行時間も長大化している課題があります。
また、今回のJaSSTの他の講義を鑑みても、現在は開発プロセスのどの段階でどのような品質管理を行うかに注目が集まっており、テストのシフトレフトが進んでいます。
その中でテスト自動化は大きな役割を担い、さまざまな技術者が長い時間をかけて改善を試みてきましたが、今年は生成AIが注目されたことにより、さらなる飛躍が期待されています。
では、第4世代のテストツールはどのようなものになるのでしょうか?各社は次のような未来を描いているようです。
- ロケーターのオートヒーリングだけでなく、コマンドの自動修復もできるように
- ChatGPTなどによるテスト自動化支援
- 製品ドキュメント、仕様書、コードなどからドメイン知識を学習させる
- AIに人間が自然言語で指示を行い、必要なテストシナリオ、テストケースを作成できるようになるのでは
- 画像認識によるUI認識
- チェックボックスなど(テストコードを書く必要が出てくる要素)のアサーションを画像認識で、人と同じように見た目で判断できるようになる
- 非機能要件のテスト
- mablにはアクセシビリティテスト機能がある
- 負荷テストも対応する
- テストが落ちた時、画面判定だけでなくソースコードも読みに行って原因を特定し修正する
- モニタリング領域との融合
特に気になったのは、AIに大量にテストを作らせたら、そのレビューはどのようにやるのか?という話題です。
現状はツール利用者がツール上で確認している場合が多いと思います。そうなるとE2Eテストをプロダクトコードとは別の場所で管理することになるので、Github上で管理することに重点を置き、Playwrightを選択する場合も見受けられます。
また、大量のテストを人間がAIと同じ速度でレビューすることは困難であり、今後はレビューができるAIが出てくる可能性もあります。必ず壁となる課題であるので、引き続き今後の動向に注目したいと思います。
このように、未だ課題は多くありつつも、明るい未来を共有することができてモチベーションも上がりましたし、とても有意義なセッションでした。
saori
私は主に、開発とQAの連携といったテスト活動の向上に関わるセッションを聴講しました。
その中で特に興味深かったのは、「A7_自動テストの変遷(分断からコラボレーションの時代へ)」です。
私たちも自動テストに取り組んでおり、自動テストの概念や役割の変遷、成功と失敗それぞれの事例を交えた講演は大変勉強になりました。
特に、自動テストの取り組みに失敗してしまう要因として、QAと開発者はもちろん、チーム内外の関係者とのコラボレーションがうまくできていないという指摘が印象的でした。コラボレーションとは協働関係を意味し、お互いを尊重し、意見を対等に交換しながら共通の目的に向かって取り組むことを指すそうです。
そして、自動テストが共通の目的であること、成果が見えるようにすること、関係者全員で目的と成果を共有していること、小さな成功を積み重ねることが重要であるとも述べられていました。
聴講したお話を参考に、チーム連携などより良い取り組み方について考えていきたいと思います。
nyanyami
EC事業部エンジニアリングリードのnyanyamiです。
私は、エンジニアとして品質向上に寄与するために必要な情報が学べるセッションを主に選択していきました。
特に印象に残った2つのセッションについて感想などを書いていこうと思います。
B3-1 カオスエンジニアリングの裏話
翻訳者のお二人による翻訳裏話と翻訳の中で注目したワードについて深掘り解説ということで、
複雑性を受け入れるとはどういうことなのかをより具体的にイメージできる発表内容でした。
本番環境で実験するのはチャレンジングなことであると考えていたのですが、
本解説を通じて、カオスエンジニアリングの原則は、ブラックボックステストと似通っている部分があるなと感じています。
仮説を立てて検証することが重要とのことなので、弊社でも部分的に取り入れる事ができないか検討したいと考えています。
D7-2 テスティングからクオリティエンジニアリングへの変革の必要性
品質は国や時代によって変わるものであり、これといった正解があるものではないということを改めて感じました。
また、早い段階から品質を作り込むことがとても大切で、受け入れテストのタイミングで品質を改善する機会は非常に限られます。
クオリティエンジニアになるには、開発のライフサイクル全体において品質保証と品質改善を実践していくことが大切とのこと。
シフトレフトによるコスト改善にも寄与できることから、今後は重要なポストとなると感じています。
資料8P目に記載のクオリティエンジニアリングでやるべきことの詳細を確認し、私たちがまだ実践できていない事柄に挑戦していきたいと思います。
まとめ
sekkey
以前と比べて、ソフトウエアテストに関する情報は膨大な量になりましたが、JaSSTほど集中して質の高いインプットができる場は多くありません。
開発プロセスの改善を目指すようになってから、自身の業務のアウトプットやチームとのコミュニケーションの難しさを感じ、まさに模索している最中です。ですが、テスト自動化もテストのシフトレフトも、開発チームにおいて喫緊の課題です。
ここで得た知識をきちんと自分のものとして身につけることができれば、課題と向き合うことを恐れる必要もなくなります。今後も実際に開発・運営していく中で、できることから実践していきます。
saori
今回もオンラインにて参加し、ソフトウエアテスト業界の著名な方々から、さまざまな手法やコミュニケーションの工夫など貴重なお話をたくさん聞くことができました。
シンポジウムのテーマが「相互理解で広がる世界」と題されていたように、取り組みの成功には相互理解を深めることが大切であることを再確認しました。
今後のテスト活動にいかしていきたいと思います。
nyanyami
今回諸事情でリアルタイム視聴がかなわなかったのですが、アーカイブ配信のおかげで見たかったセッションを全て閲覧出来ました。
昨年はテスト自動化と膨大になったテストの最適化に関する話が多かった印象ですが、今年はテスト項目そのものを減らす効果が高いとされる、設計段階から品質を組み込む話が数多くあり時代の流れを感じています。
弊社でもまさにこの取り組みを始めたところで、既によい効果を実感しています。もう少し実例がたまったらこのテックブログで紹介したいと考えています。
エンジニアとしてもまだまだ出来る事が数多くあるという学びを得たので、開発サイクルに組み込んでいきたいと思います。