Article

ブログ

2017/02/28

selfree の大切にする全員テスト文化

こんにちは、本間です。

弊社サービス CallConnect の品質を高いものにし続けるために、全員がテストをする文化を持っています。本記事では、そこで得られた知見や方法に関してシェアします。

selfree でのテスト手法

ここでいう全員がテストをするというのは、開発フェーズ毎に変更になった機能をリリース前に手動テストするということです。Chibinekoというマニュアルテスト専用サービスを利用し、テストケースを開発フェーズ毎に細かく定義しています。 Trello で定義したタスクをベースに大枠を定義し、そのタスク毎にチェックしなければならない項目を列挙するようにしています。

エンジニアがテストコードとして担保する部分はあくまで単体テストまでに留め、機能/統合テストは全て手動で行うようにしています。そのため、Fat なテストコードではなく、重要な単体テスト部分に絞ったシンプルなテストコードが常に保たれるようになっています。そうすることで、大規模な変更にも柔軟に変えられるようなシステムになっていると考えています。

CallConnect 自体がフロントエンド JavaScript のコード量が多いシステムとなっており、フロントエンドのテストはコードで担保するよりも実際に動かした方がバグの発見や仕様の変更に気付きやすいと考えています。

“全員がテストする”メリット

当然手間のかかることですが、全員が手動テストをすることで品質を保つ以上の効果があります。それは、メンバー間で最新版の仕様の認識を合わせられるということです。例えば電話サポートをしている時に、現状の機能がどのような仕様になっているのかを答える時に特に有効です。全員が手動テストに参加することで、仕様に関しては誰もが取次なしで自信を持って答えることができるようになっています。

また、テストケースを実施する上で、より細かな仕様について話すきっかけにもなります。「この機能はこういう実装になっているけど、こうした方がわかりやすいんじゃないか。」これは当然設計段階で話し合うべきことではありますが、その設計で見落としていた部分を発見する大事なきっかけとなります。より細かな仕様を明確にするためには、多少リリースが遅れても十分に話し合うように心がけています。エンジニアとしては追加で開発が入るのはなかなか辛い気持ちになることもありますが、そこはユーザーのため。最近では以前に比べてそのような変更も受け入れられるようになって来たと思います。

サポート担当者がプレスリリースに出す程度の機能の理解では非常に危険です。誤った情報を顧客に伝える恐れがありますし、何より自信を持って顧客をサポートすることができなくなってしまいます。現状のシステムがどうなっているのかを全て知っているレベルにまで落とし込むことで、最高のサポートを提供できると考えています。

営業もマーケターも、役員も同様のことが言えるのではないでしょうか。全員がそのプロダクトの全てを知っている状態に保つためには、このマニュアルテストを大切に文化が大切だと考えています。

終わりに

マニュアルテストは当然コストのかかることですし、単純作業で辛いことも多いです。とりわけコールコネクトの場合は通話テストをするたびに通話料を支払わなければなりません。

それでも、私たちは顧客全員が満足して使い続けられる安心したサービスにするために、これからもマニュアルテストを大切にする文化を守り続けていきたいと考えています。