みんなの「作ってみた」

KURURU - テスト管理ツールを作った

2018/12/17

hackpopo
hackpopo

テスト管理ツールというのを知ってますか??

一般的にテスト管理ツールというのは、膨大なテストを管理し実行する手助けをするツールのことを指します。OSSとして提供されているものとしては、TestLinkが有名ですね。

メルカリさんでも過去の記事で色々とテスト管理ツールを比較したかなり良い記事があります。
モダンなテスト管理プロセスのためにテスト管理ツール3つを比較検討したはなし

ただ、Web企業の多くの現場ではExcelやスプレッドシートで管理していてあまり馴染みのないツールでもあります。とくに最近では手動でのテストよりもTDD・BDD影響もあってテストコードの話題が多くなり、手動テストの手法自体があまり日の目を見なくなってきていますね。
ただあまり話題にならなくなっても手動テスト自体は今後も有用であり、テストコードと対立する手法でもありません。
まず、私のサービスを紹介する前に少しだけテストに関しての私の個人の見解を書かせてください。

Excel・スプレッドシートで管理する問題点

先程書いたようにExcelやスプレッドシートで管理している現場は多いと思います。
そういう現場では昔から使い慣れたフォーマットがあり、それを流用して管理していることもあると思います。

Excel・スプレッドシートのメリットとして以下が挙げられます。

  1. 学習コストが低い
  2. フォーマットが自由に作成できる
  3. 直感的なため、誰でも説明を受ければテストを実行できる

ただし、以下のようにデメリットもあります。

  1. フォーマットが自由なため、あれこれ追加してしまい段々使いにくくなる
  2. ケース数が膨大になるとどこのシートにどのテストをしたのかわからなくなる。(網羅性は強いが管理が難しい)
  3. テストを失敗していても開発者に通知されないため、開発者はいちいち確認しないといけない
  4. テストが蓄積されず、その場限りとなってしまう

私はとくにテストケースが蓄積されずその場限りとなってしまうことが一番問題だと感じていました。
理由として、テストケースが十分にあればそのサービスの仕様として活かせると感じるからです。ただ、このあたりについて書くとかなり長くなってしまうので今回はそこまで書きません。

今回作ったサービスの話

今回作ったサービスはKURURUというサービスになります。
まだ、トップに表示されている機能が十分に完成していないので心苦しいのですが。。

注目点としてテスト実行後に作成したテストケースを将来再利用出来るように設計しました。その場限りのテストケースを使うのではなく、将来的にも流用できる資産として活用出来ます。

今後は特徴にあるPull Requestに紐づけることでよりコードとテスト実行の統合を目指します。
ちなみに今回のサービスで利用した技術はElixir/Phoenixで個人サービスを作ったことの振り返り・本番環境運用に説明されています。
関数型言語を使ったきっかけはテストコードを書くのが楽だというのが動機です。

最後に何で作ったのか

ここまで読んで不思議と思うかもしれませんが、私自身はそんなにテストが実は好きではないですw
そのため、好きじゃないテストを効率良く実装したいというモチベーションで作りました!

最後にテストに興味を持ったきっかけとして、かつて一緒に働いていた仲が良くテストに強かった同僚が「7年間でバグを混入したことが1回しかない」かつ「開発期間を伸ばしたこともない」という驚異的なエンジニアに憧れたのがきっかけです。その同僚も今回ツールを作ったことで草葉の陰で喜んでいると思います。

明日は、skycat_meさんの記事になります!