こんにちは、小俣です。
コールコネクトでは、常に既存機能の改善や新機能の追加が検討されています。軽微な改善も含めると、2,3週間に1回、リリースが行われることもあります。
リリースまでの流れとしては、大まかに「機能/仕様検討→実装→テストケース作成→製品テスト→リリース」となっています。
今回は、製品の品質を保つ上でとても重要な「製品テスト」について、普段意識していることを書きます。
製品テストで意識していること
・期待値を確認する
機能の実装が終わると、エンジニアがテストケースを作成します。私をはじめとしたエンジニア以外のメンバーも、そのテストケースを元にリリース前の製品テストを始めていきます。
その際、テストケースの文章が複数の意味で読み取れて、期待値の変わりそうなケースがある場合は、必ずテスト実行前に詳細を確認しています。 当たり前といえば当たり前ですが、ついつい「きっとこうだろう」という思い込みで進めてしまいがちです。特に事前の環境設定が複雑なケースでは、この確認作業を怠ると、本来テストすべき点がテストできていなかったなんてことも起きてしまいます。
・バグを見つけにいく
製品の仕様を理解し、長く使えば使うほど、慣れが生まれ、テスト実行のスピードも上がります。 また、「いつもとボタンの色が違う」といったような違和感を持てます。
しかし一方で、操作の癖のようなものができてしまいます。結果としてイレギュラーケースが後回しになったり、いつもとは違う使い方に意識が向かなくなったりします。 もちろん、可能な限り網羅性のあるテストケースを作成しますが、それでも網羅しきれない部分は出てきてしまいます。
そこで、テスト実行時には、“テストケースに書いていないものも試す”、“あえて意地悪になってバグを見つけにいく”ようにし、いつもとは違う使い方をしています。
簡単な例でいえば、いつもは半角で入力するところを全角で入力したり、MacではなくWindowsで操作してみたりといったことです。 「以前にこんなバグを見つけたことがあった」という経験値を元に試してみることもあります。
“完璧なテストケース”は存在しないという前提に立って、様々なシチュエーションを想像しながらテストすることを大切にしています。
・全員でやる
テスト実行は、特定のメンバーだけで行うわけではなく、全メンバーで実施しています。 これにより、全員が製品の仕様を理解できるため、誰でも顧客からの質問に答えられる体制が作れます。
また、メンバーごとに操作の癖や着眼点も異なるため、より様々なシチュエーションでのテストが可能です。自分以外の誰かがバグを見つけたときには、自分も今後そういう視点でテストしてみようと、新たな視点を取り入れる機会としています。
・再現手順を明確にした上でバグを共有する
テストケースを実行する中では、仕様通りに動作していないものや、想定外のバグを見つけることも多々あります。
そんな時に、単に「こんなことがありました」と事象を報告するだけでは、検証手順がわからず、それが問題なのかどうかの確認がしづらくなります。 また、共有時に認識のズレが起きたり、事象の説明がうまくできなかったりすれば、コミュニケーションに余計な時間がかかってしまいます。
何か気になる事象を見つけた際は、自分の環境で再現できるかを複数回テストし、可能な限り手順を明確にした上でSlackで報告しています。 ただ、全てがすぐに再現できるわけではなく、そのときのシステムの状態などに起因していることもあります。そのため、しばらく試しても再現できない場合は、その旨を報告し、他メンバーの協力を仰ぐ運用になっています。
すぐに修正対応できない内容であれば、Trelloにチケットを作成し、チェック漏れが起きないよう心がけています。
おわりに
このような意識で製品テストを続けてきた結果として、リリース後に大きな不具合が発生せずに、安定してサービスを提供できている点は良かったと思います。
今後も、単にテストケースに書いてあることを実施するだけでなく、“なぜそういう仕様になっているのか”、“本当にこの仕様でユーザーさんに提供していいのか”と、一人ひとりが考える姿勢を持ち続けます。 そして、メンバー全員でテストを行うことで、全員がしっかりと仕様を理解している状態を作り、カスタマーサポートの品質もさらに高めたいと思います。
私たちは、より良い製品を提供し続けるためには、製品と真摯に向き合うことが重要だと考えています。 丁寧なテストの積み重ねが、一貫性のある製品、安定した品質を作り、結果的にユーザーさんへの提供価値を高めることに繋がると信じています。
これからも、製品・ユーザーさんと真摯に向き合い、より良いサービスを提供していきます。