こんにちは。 おすしです。
JaSST’22 Shikokuにオンライン参加してきました。
今回は学生の参加が多いこともあり、各講演内容は基本的な説明からはじまり、具体例も専門用語をあまり使わずにわかりやすく説明していました。
以下では、私が個人的に「なるほど!」と思ったところをピックアップしてレポートしていきます。
JaSSTとは
JaSSTとは、NPO法人ASTER (ソフトウェアテスト技術振興協会)が運営する日本最大級のソフトウェアテストシンポジウムです。
公式ページhttps://www.jasst.jp/
各地で頻繁に開催されており、多くのイベントがオンライン参加可能です。
興味のある講演がないかチェックしてみることをおすすめします。
講演①「テストを学び成長する 2022 年度版 ~テストの全体観を持ち、テストに強みをもった技術者になるための学びと成長について~」
講師:山﨑 崇 さん(ベリサーブ)
ソフトウェアテストの本質とは、テストに取り組むにあたって何が重要なのかといった基礎を理解するのに役立つ内容でした。
資料の自己紹介スライドには金髪アフロ(かつら)を被った山﨑さんのお写真が…お茶目な方ですね!
ソフトウェアテストの本質とは何か
このセクションではテストの必要性、テストとは何か、テストの目的についてお話されていました。
特に印象に残ったのは「本質的にテストの価値は情報収集と提供」と定義し、「テストの価値」について以下の指標を説明していた箇所です。
- 早い:テストから得られる情報のタイミングが早いほど価値が高い
- 安い:情報の取得コストが安いほど価値が高い
- 旨い:情報が要求に合致しており正確でわかりやすい
「早い」「安い」を満たしているかは比較的容易に判断できますが、「旨い」かどうかはテスト依頼者の考えているテストの目的やテスト対象によるため、汎用的で明確な判断基準を出すことは難しいと思いました。
山﨑さんは、上記について「テストだけではなくテストに関係することを含めて考え、それらの本質を知ることが必要である」と説明していました。
そして、本質を知る一つの手段として関係者間の合意形成に言及し、「○○テスト」という似たような言葉が多いソフトウェアテスト界隈では「常に相手が異なる意味で使っていないかを疑って適宜認識を合わせていく」ことが必要と話していました。
講演では共通言語を形成するためにJSTQB FL 取得を勧めていました。
確かに取得者同士では認識の齟齬はほぼなくなると思います。
とはいえ、取得者がまだ少なく、また相手が必ずしもJSTQB基準で言葉を使用しているとは限らないため(取得者でも似たような用語が多すぎるので間違うことがあります…)、コミュニケーションの基本として語意の確認は適宜していく必要がありそうです。
ソフトウェアテストについての全体像を俯瞰して整理できる軸を持つ
このセクションでは前述の「本質を知る」ための手法を紹介していました。
「分かることは分けられること」(「思考・論理・分析―「正しく考え、正しく分かること」の理論と実践―」波頭亮(著))の言葉を紹介し、分けるための「軸」の形成例として「テストレベル」「テストタイプ」「テストプロセス」の3つを軸とした例を説明されていました。
これはソフトウェアテストについて考える際に、上記3つの軸で考えるとどのあたりに位置づけられるのか、で対象を分けていく方法でした。
テストに強みを持ったエンジニアになってもらうために
このセクションでは、どうやってテストに興味を持ってもらい、成長してもらうかについてお話していました。
興味がない人に働きかけるのは難しいため、山﨑さんは「興味がある人が近づいて来やすいように普段からテストの楽しさや面白さを醸し出し、またテストに詳しいことをアピールしておく」ようにしているそうです。
そして、質問がある人(=興味がある人)が近づいてきたら「食虫植物のように捕らえて説明する」…そうです。
例えが物騒ですが、効果的な方法だと思います。
また、社内だけで研究・開発をしていると、得られる知識の幅はどうしても狭くなりがちであること、ソフトウェアのテストにはテスト以外の知識も必要であることから、社外で知見を広めることの大切さについてもお話していました。
講演②「今までのテストとAI を含んだプロダクトのテストの違い」
講師:松谷 峰生 さん(rinna)
AIについての基礎知識の説明と、従来のテストとAIを使用した製品のテストの違い、具体的なAIテスト手法についての講演でした。
松谷さんは「マンガでわかるソフトウェアテスト入門 テスターちゃん」の作者です。
ソフトウェアテストに関わる人は必ずAIプロダクトと接する日が来る
「AIが組み込まれたプロダクトが増加していくことは間違いないため、ソフトウェアテストに関わる人は必ずAIプロダクトと接する日が来ます」との導入から、今後の対策のためにベースを固めておく必要性をお話されていました。
基本知識の説明から始まり、AIを含んだプロダクトの「テストオラクル問題」「帰納的な開発」などの特徴から従来のテスト技法が適用できないこと、その他AIの問題点(過学習、再学習の影響、誤認識とロバスト性の担保範囲…)などAIの基礎知識が詰め込まれていました。
メタモルフィックテスティングだけでAIのテストができるわけではない
AIのテストと言えば「メタモルフィックテスティング」が有名ですが、このテストだけでAIテストはできないことをお話されていました。
その理由として、メタモルフィックテスティングは「オリジナルの入力と加工された入力に一定の関係がある時、出力の関係にも一定の関係が成立するという関係性(メタモルフィック関係)を確認しようという手法」であり、すなわち「関係性の確認」をするテストであって「AIの判定結果が正しい」ことは判定できない点を挙げていました。
<問題を発見する単純な具体例>
・テスト対象:音楽のオススメ機能で「履歴の大半を占めるタグ=オススメ曲のタグ」という関係性が成り立つ
・入力データ:全て「癒し系」タグの履歴データ
・出力結果:「デスメタル」タグの曲がオススメされた
→関係性に問題が発生している
<AIの判定が間違っているが、メタモルフィックテスティングは問題ない場合の例>
・テスト対象:入力した動物の写真を判定して名前を出力するソフトウェア
・入力データA:鹿の画像
・出力結果A:サル
・入力データB:15度傾けた鹿の画像
・出力結果B:サル
→出力結果は間違っているが、「鹿の画像→サル」の関係性は問題ない
また、「必ず成り立つ(必ず成り立つべき)関係性」を見つけることが難しい場合は使用できない点も挙げていました。
<関係性を見つけることが難しい場合の具体例>
「キャラる」https://www.chararu.jp/:会話の自由度が高いAIチャットアプリ
AIのテスト=なんかすごい手法を使っている!ではない
松谷さんの会社で提供しているアプリ「キャラる」https://www.chararu.jp/では、
- 「会話がおもしろいか」などをクラウドワーカーを利用して評価してもらう
- 毎日、自動テストで会話を入力し、返答内容を目視で確認する
などのテストを利用しているそうです。
また、不適切な発言を学習してしまう場合もあえて不具合とはせずに、不適切な発言をしないようにする機能(アイテム)を追加し、ユーザー毎に使用するか判断ができるようにしているそうです。
おわりに
今回は講演が二つだけの小規模なイベントだったため、気軽に視聴できました。
山﨑さんの講演でもお話されていましたが、社外で知見を広めることは大切です。
色々な情報を取り入れると、過去に学んだことの理解が深まったり、新たなひらめきを得たりする可能性があります。
ぜひ皆さんもイベントに参加してみてください!