テスターとML、テスターとエンジニア
(※本記事の写真はコロナ前に撮影したものです)
アーニーMLGのデータチーム所属テスター、門脇と申します。
2020年6月、コロナ禍の真っ只中にご縁がありこの博多のベンチャーに転がり込んでまいりました。
現在は音声認識のテストを中心に、アーニーが開発中のWebサービスのQAテストにも携わらせていただいております。
実を言うともともと音声認識のための音声書き起こし(アノテーション)の求人を目にして「よくわからんけど仕事も会社も面白そうやな」くらいの軽い気持ちで応募をしたのですが、
前職で某ソフトウェアテスト会社に在籍していたことから弊社の引きこもり人事こと松永氏にテスターとしての採用を提案いただき、今に至ります。
そもそもテスター(QA)とは?
QA=Quality Assuranceの略です。
直訳すると『品質保証』であり、ソフトウェアやサービスの品質テストを行う仕事です。と、一言でいってもなんのこっちゃ?だと思います。
例えば今このページ、ChromeやFirefoxのようなブラウザを使って閲覧いただいてるかと思います。多くのブラウザに搭載されている「再読み込み」「戻る」「ブックマーク」、そんなおなじみの機能がもしも……「再読み込み」を押したはずが前のページに戻されたり、「戻る」のアイコンがなぜか更新ボタンのアイコンだったり、ブックマークが突然開かなくなったりしたら……困りますよね?
そうした不具合(バグ)が起こらないよう、サービスや製品が世に出る前にチェックを行うのがQAテスターの主なお仕事です。
単純に設計書通りに正しく動作するかテストするのは当然のことですが、それらが本当にユーザーの望むものなのか、使いやすさなどの部分を担保するのも実はテスターの役目だったりします。
このITの時代、ビジネスツールからソシャゲまで、あらゆる製品の価値を守るために地味ながら責任重大なお仕事なのです。
音声認識のテスターは、テスターとは違うの?
というわけで、テスターの仕事についてはなんとなくイメージしていただけたかと思います。が、お察しのとおり、音声認識のテストにおいて100%正しい結果が得られる、ということはありません。
扱うのが生の音声データで、かつ機械学習である以上、出力される結果には様々なブレが生じます。人間もそうですが、聞き間違いや勘違いを完全に避けることは不可能ですし、いきなり知らない企業の名前や馴染みのない業界の専門用語を使われても分かりませんよね。
結果的に、一般的なテストにおける基準である『正解(仕様)』が存在せず
ソフトウェアテスト(QA)の分野で確立されているセオリーが通用しない
という問題に直面します。
ではML=MachineLearning、つまり機械学習を用いた音声認識におけるテスターの目的とは何でしょうか?
一言で言うと、音声認識における品質=精度の向上に必要な仮説構築を行い、エンジニアに提示することがMLテスターとしての実際の任務となります。
ここに特化した部隊、データチームの存在こそがアーニーの強みの一つです。
以前の職場でのテスターの仕事というのは、毎日目の前のテストケースを消化することに追われるばかりでスキルアップを感じられる瞬間も少なく、それを味気なく感じてしまうことも少なからずありました。
が、アーニーに入ってからは「何がどうしてこうなってるんだ~!?わからん!!」そんな瞬間が毎日のようにやってきます。
そういった難題にデータチームの仲間やエンジニアと手を組んで挑んでいくのは、とにかく痛快で刺激的です!
普段の業務が目に見える数値や成果として示されるわけではありませんが、だからこそやりがいのあるクリエイティブな仕事です。
まとめると
QAテスター⇒仕様をもとに不具合やユーザビリティをチェックする
MLテスター⇒結果をもとに効果的な精度改善の仮設構築を行う
つまりQAは仕様、MLは結果をもとに仕事をしています。
ある意味真逆のことをやっているとも言えますね!
音声認識のモデルにはどうやって貢献しているの?
弊社が開発している音声認識の教師データ作成支援ツール『DoiSurfer』
一例を挙げると、既存の辞書にない固有名詞や専門用語など(=未知語と呼ばれるもの)に対応するため、データチームではこういった単語を抽出して書き起こしを行い、学習データに反映させる作業を行っています。
これらが期待通り出力結果に反映されることについてテストを行うことで
モデルの精度に貢献できることを具体的なデータとして示すと同時に、エラーの傾向を精査してさらなる課題発見の手がかりとしています!
MLテスターとエンジニアの関係
エンジニアから直接テスト依頼を受けることもあれば、テスターが日々データに触れる中で課題発見を行い、独立してテスト設計~実施までを行うこともあります。これにより
・エンジニアが実装に集中できる
・それぞれの観点で、仮説のブラッシュアップができる
・ワークツールでバトンを渡す文化で、タスクのハンドリングが安定する
などエンジニアにとっても多くのメリットが生まれます。
普段から横並びで仕事をしているので、密にコミュニケーションが取ることが可能です。常にシームレスにMTGを行えますし、ワークツールも活用してディスカッションを重ね、共同でテスト設計までを行っていくのが主なスタイルです。
これによって観点のズレをなくすことはもちろん、テストの重要度や必要となる知識、スケジュール感の共有まで円滑に行うことができます。
アーニーには学生エンジニアも多く在籍していますが、彼らと組んで仕事をすることも珍しくありません。
頭の中にやりたい実験やアイディアはあるのに、さまざまなタスクが走る中でリソースが足りずにやれずじまい……
そんなジレンマも、データチームという実行部隊によって解消できるかもしれません。