大胆な変更も安心できる
一連のシナリオを実行するテストを書けば、何度でも使えるので、そのシナリオ中に関連するコードを変更する際にリグレッションテストとして機能します。 問診のフローはかなり複雑に関連しあっているので、これまでは変更にかなり慎重に取り組まなければなりませんでしたが、テストが増えていくにつれて大胆な変更が可能になりました。
ユーザーに届く前に品質を担保されている状態とはなにかを考えるとリリース前に客観的に「これは品質が高い!」といえる状態だと考えた。客観的に品質が高いと言えれば開発者は安心してリリースすることが出来る。
最近気づいたことであるが、自動テストには「開発者に安心感を与える」という効果があるらしい。
前職ではAPIテストを書いていたが、ここでも「早めにバグを検出できると安心できる」といった声を聞いたし、「何かを変更するときにあらかじめ自動テストが用意されていると安心して開発できる」といった声を聞いたこともある。
自動テストといえば、
といった目的が挙げられがちだが、こういった側面もあるのか、と目から鱗が落ちた。
たとえば、機能Aの改修を行うことがわかっている場合に、予め機能Aに対してAPIテストなりE2Eテストなりを整備しておくことで、開発者は十分な安心感を持って改修に臨めるようになるのではないか、と思った。
このとき、「開発者に与えた安心感」「安心感を得られたことにより向上した生産性」を定量的に測定するのは少々難しいのかもしれないが(ググってもそれらしい情報は出てこなかった)、しかしやってみる価値はあるかもしれない。もし知っている方がいれば@hideshis_qaまで連絡していただけると嬉しい。