yoshitake_1201’s diary

テストのこととか、ペンギンのこととか書きます。

2020/10/3 JaSST Online Bergamot に参加した感想 #JaSSTOnline

■ この記事

2020/10/4に行われたJaSST Online Bergamot に参加したときのメモ & 感想です。
うろ覚えなので、何か間違ったことが書かれているかもしれません。
その時はごめんなさい。

jasst.jp

■ S1: 「探索的テストセッション」の内容

  • セッションの流れ
    • 「LIFULLさんの新人研修用システム(SNSっぽいサービス)」をnemorineさんが1時間探索的テストをした動画を流す
    • その動画をみんなで見る
    • 実行委員 & 質問者(3人)が気になったタイミングで動画を止めて質問をする
      • 動画の止めた方は早押しボタンを押す
    • nemorineさんが回答する
    • セッションの時間は2時間(前半1時間、休憩5分、後半1時間)
      → 動画が30分ぐらいたったところでちょうど1時間ぐらい
      → 残り30分も後半1時間(プラスちょっと)で終わった
  • nemorineさんがテストしたときのメタ情報
    • チャーターは用意していない
    • 仕様書は読み込んでいない(3分ぐらい読んだ状態)
      ※ 仕様書に引っ張られず初見の状態でやりたかった(と言われてた気がする)
    • テスト始める前の予定は「学習30分、探索30分」
    • 実際には学習に40~45分ぐらいかかってた
      ※ここでいう学習を「システムの全体像を知る、出来具合を感じる」という意味合いに感じた(よしたけの感想)
    • nemorineさんはこの動画では操作や感想を喋りながらテストをしていたが、普段はここまでの発話はしていない

■ セッション中のうろおぼえメモ(カッコ内敬称略)

・ 個人的にナイスと思った質問

  • 「20分ぐらい触ったときどんな気持ちになってましたか?」
    • 「1時間で動画を取り終わらないといけないけど、意外と時間がかかって焦ってきてました」
  • 「既存のサービスにすごくにてるシステムと思うですけど、他のサービスと比較しながらテストしてますか?」
    • 「そうですね。比較できるサービスは比較しながらテストしてます」
  • 「探索的テストしているときにビジネスとして成功するかも見てますか?」
    • 「普段は見ないです」
    • nemorineさんのお仕事的にはその観点は難しいらしい
  • 「削除したときの動作で『まぁ良いか』って言ってましたが、なんで『良いか』と思ったんですか?」
    • 「気になったけどスルーしちゃってた、削除はずっと気になってたけど…」
    • 触った感じ結構バグが出てたから、動画の時間を考えて少し浅めにテストしようとしてた(OSTでnemorineさんが教えてくれました)

・ 良いなぁと思ったフレーズ

  • 「最初に動かすときは普通のユーザーが動かす形で通したい」(nemorine)
  • 「なるべく初見の状態でシステムと対話しながらやっていきたい」(nemorine)
    • 今回探索的テストしたときに話されていたときの発言(だったと思う)
    • チャーターがあれば探索的テストというわけではなくて、システムの動きを見ながらやっていくのが探索的テストと考えている(nemorine)
  • 「仕様書が怪しくなってくる」(nemorine)
    • 数字の境界値?が仕様書と実装で違ったときに言われていた
    • 「ただの独立したバグ」と捉えずに「このレベルで、仕様書と実装で齟齬がある」という事象(?)として捉えた印象を受けた(←よしたけの感想)
  • 「操作を間違えた現象は大事」(miwa)
  • 「その瞬間しか再現しないバグもある(時間が経ったら再現しなくなるバグもある)」(miwa)
    • バグが起きたとき(& 再現方法がわからないとき)にどうする?っていう質問の流れだったと思う
    • だからそんなときはすぐに開発者(プログラマー)を呼んでログを見てもらっている(miwa)
  • 「探索的迷子」
    • nemorineさんが学習し終わってぐらいのタイミングでどこを(なにを?)テストしているかわからなくなったときにmiwaさんが言った発言(だったはず)
    • miwaさんが言ったわけではなくて、miwaさんの「迷子」というフレーズを拾ったコメントだったかもしれない
    • 「nemorineさんの頭の中にはシステム(or テスト)の全体像みたいなものができあがって、終わったところがわかっている状態なのかな?」っていった感じの質問も印象的だった
  • 「仕様書を見ると仕様にひっぱられる」&「仕様書も疑って良いんだよ」
    • nemorineさんが仕様書を見ないようにしてたのに対するのmiwaさんの発言
  • 「自分も信じられないんだよ」
    • 仕様書も疑って良いんだよ〜のくだりでmiwaさんが言っていた発言

・ 探索的テストをやるタイミングについてのメモ

けっこうバグが出ていたので、この状態で探索的テストするのか?といったコメントやちょっとしたディスカッションがあったのでそのメモ

  • 対応について
    • この状態なら先に「スクリプトテストを通す」(nemorine)
    • ここでいう「スクリプトテスト」は「テストケース/テスト項目所/チェックリスト」といった仕様書と照らし合わせる意味合いのものと思う
    • もし複数人でテストできるなら1人はスクリプトテスト、もう1人は探索的テストといったアプローチをする(nemorine/OTSでの回答)
    • 開発者に差し戻す(講演中に流れたコメント)
  • バグが多い状態での探索的テスト
    • バグが出すぎると探索まで行きつかないので、まだ早い
    • 探索的テストは思考(対話)を継続させるのが大事なので、バグが出すぎるとそっちに気を取られてなかなか難しい

■ 自分たちのチームだったらどうするか?

nemorineさんの今回のアプローチは、「1つの機能を深く」よりも「多くの機能を広く浅く」といった視点だなぁ感じました(もちろんシステムのメイン機能を優先されていました)。 おそらく「動画時間(1時間)という制約」「けっこうバグが多かった」というのを気にされていたんだろうなぁと思いました。 講演中も「この状態なら一旦スクリプトテストにかける」って言われていましたし。自分も「探索的テストにはまだ早い」という印象でした。

コメントでも「この状態なら開発に差し戻す」というのが流れていました。 そのアプローチができるのははとても素敵だなぁと思うんですが、自分たちのチームで考えてみると、この状態でテストを継続することが多々あるなぁと思いました(理由はこのブログでは割愛)。 せっかくなので自分たちのアプローチを少し書きます。

こういった状態でのアプローチは「目についたバグはすべてIssue登録(チケット登録/バグ票登録)してしまう」といった方針が多いです。 ですがこのアプローチは1人でやるととても大変です。 大変なポイントはいくつかありますが、自分が考える1番大変なことは「テスト実行の思考」と「Issue登録」で頭の切り替えが発生することだと思います。 バグバグしている状態でテストをすると切り替えが頻発するので、なかなかに大変なことだと思います。

なので、自分たちが今回のような状態のシステムを探索的テストをするときは、チームメンバーのsaeさんとペアテストという方法をとります。 役割分担はsaeさんが「テスト実行」自分が「バグを登録する」という感じです。 こうするとsaeさんは思考を継続した状態で深くテスト実行に向かいやすくなるし、見つけたバグも同時にIssue登録できるので、2人で別々にテストするよりも格段に良いと自分は感じています。 ペアテストをするときは、隣りあって話しながらテストするので、情報共有も楽ですし。

↑だけ読むと「自分はバグ登録だけしている」と思う方もいるかもしれませんが、そんなことはないです。 自分はバグ登録に集中しているわけではなくて「Issueを登録しつつ、少し離れた視点でシステムを学習している」状態になっています。 なので、saeさんの情報や出ているバグから気になることがあると「あ、〇〇も試してほしい」とか「こうしたらどうなる?」といった感じで自分が気になるテストをsaeさんにやってもらいます(「それ今やってる」って返ってくるときもよくあります)。 また、何かよくわからない現象(例えば、nemorineさんのセッションだと一覧がループ表示になったとき)とかは、自分もバグ登録の手を止めて、そのバグの原因を探すべく2人で深くテストをします。 バグ登録する側も学習しつつ状況に応じてテスト実行に加勢するという感じです。

こうすることで、先にあげた「思考の切り替え」が1人でやるときよりも小規模になり、また思考の手助けがほしいときはすぐに増員できるので、1人よりもだいぶ楽にそしてたくさんの学習をしながらテストをすることができているなぁと思いました(とはいえ、全く疲れないなんてことはなくて、ペアテストが終わった後はお互いに疲弊しています) 。 探索的テストは本当に頭を使うので、今回のnemorineさんは1人でしかも発話もしながらと本当にすごいかったです。

余談ですが、今回↑の文章を書いているときに「深い視点で考える」saeさんと「浅い視点で考える」自分とで、2つのアプローチを同時に行えていることに、改めて気づきました。 良い機会となりました。

※ (参考)以前ペアテストについて書いたブログ
ペアテストを1ヶ月間やり続けてみてよかったこと - yoshitake_1201’s diary

■ 質問者として参加した感想

  • 早押しボタンのおかげで動画を止めやすかった
    • はい!って声を出すよりも動画を止めやすかった(音のせいにできる)
  • ボタンの音が配信に載っているのが良かった
    • ボタンを押したことが全体に伝わる
    • ボタンに不具合があったら質問者にもそのことが伝わる
  • 他の方の質問にのっかりやすいのも良かった
  • 質問のあとに実行委員長が補足質問をしてくれることが多かった
    • おかげで質問しやすかった
    • 変なこと言っても救ってくれる安心感がありました
    • ありがとうございました
  • メントスクリーンで質問が流れるので、その質問を選択することもできる
    • 別画面に質問があっても、それを見るのは難しいだろうなぁと思ったので、この機能はとても良かった

■ 全体の感想

  • nemorineさんが何を気にしているのか(視線/視野?)が、録画越しでもなんとなくわかった
    • ここにバグがあるけど、nemorineさん今は気づいてないかも、っていうのをなんとなく感じた
    • 自分もこう言う感じなんだろうなぁと思った
  • 以下を同時にやっているnemorineさんとてもすごい
    • 収録中: 思考を維持しつつ、バグのメモとりつつ、気になったことを発話
    • 講演中: 当時を思い出しながらの質疑応答
  • 探索的テストはとても頭を使う(ものだと思う)ので、本当にすごいなぁと思った
    その上わかりやすいし…すごかった。講演中の動画がもう1回みたい
  • メントスクリーンが良かった
    • 参加者のコメントがコメントスクリーンで配信映像に乗るのでおもしろかった
    • コメントに書かれている観点についても、色々考えることができたので良かった
  • 質問が良い感じの休憩になっていた
    • ずっと見続けてしまうと自分は本当に疲れてしまうのでありがたかった

「実験的な試み」と会の始めに言われていたけど、コメントスクリーンや質問者オプションはとても考えられていて素敵だなぁと思いました。質問者も三者三様の質問だったので面白かったです。miwaさん、かみむらさんの質問の観点素敵でした。勉強になりました。

人がテストしているのに対して何も言わずに見るという経験がなかったので、とても新鮮でした。人がテストしていたらその場で話しちゃうし。考えてみたら「自分がテストしている」のを見ることもないですね。今度やってみようと思いました。1時間は大変なので30分ぐらい。

参加できてよかったです。ありがとうございました。