システム開発において品質保証の役割を持つ工程といえば、コードレビューとテストが考えられますね。
この2つ、同じような役割ですが、どちらを先にやるべきか順番に決まりはあるのでしょうか?
基本的には、コードレビューを終えてからテストをする流れが良いと言えるでしょう。
というわけで、今回はコードレビューとテストを行う順番についてお話ししていきます!
コードレビューとテストは両方やる必要があるのか
そもそも、コードレビューとテストは両方やる必要があるのでしょうか?
製品が正しく動くかの確認であれば、テストを丁寧に行えば問題無いようにも思えますね。
仕様通りに製品が動作するなら、品質保証としてはOKと言えそうです。
しかし、コードレビューには品質保証以外にも役割があります。
そのうちの1つが品質向上ですね。
製品の性能やコードのメンテナンスのしやすさを高めるというのは、テストではできないことです。
その他のコードレビューの目的については下記の記事をチェック!
では、「コードレビューをすればテストはいらないのか」というと、答えはNOですね。
ソースコード上は問題無さそうでも、実際に動作を確認したら仕様と違うということもあり得ます。
コードレビューをするのも人間ですから、精度100%とはなりません。
また、コード上では気付きにくいバグというのもあります。
そのため、コードレビューとテストは両方やった方が、品質の向上・保証を見込めるということですね。
コードレビューをしてからテストをした方が良い理由
コードレビューとテストは両方やるのが良いという話でしたね。
では、どちらからやるのが良いのか。
冒頭でも言いましたが、コードレビューを先に行うがおすすめです。
コードレビューによって実装方法が大きく変わる可能性がある
コードレビューは場合によっては実装方法に大きく影響を与える可能性があります。
ファイルの構成を変更したり、関数のロジックを変えたり。
特に新人が実装したものをレビューすると指摘箇所も多く、実装がガラリと変わることがよくあります。
影響範囲が大きくなる可能性が高いので、コードレビューは優先度が高くなるわけですね。
テスト後にコードレビューで修正が入ると、二度手間になる
仮にコードレビューが完了する前にテストをして動作がOKだったとして、その後にコードレビューで内部のロジックの変更などをした場合、改めてテストをしなければいけません。
そうなると、最初に行ったテストが無駄になってしまいますよね。
丁寧な仕事をするなら、if文の条件の書き方を変えるといったちょっとした修正でも、それで正しく動作するかを確認する必要があります。
場合によって、テストを全項目やり直しということもあるでしょう。
そのため、内部処理が変わる可能性があるうちにテストを進めるというのは非効率と言えますね。
コードレビュー後にテストで不具合が見つかった場合は?
では、コードレビュー後にテストで不具合が見つかった場合はどうなるでしょうか?
不具合箇所を修正して、再度コードレビュー、テストという流れになりますね。
この時、不具合の程度にもよりますが、一度コードレビューを終えているコードですから、大幅な変更はあまり発生しないでしょう。
そうなれば、テストのやり直し範囲も限られてくるので、テストをコードレビューよりも先に実施する場合と比較すれば効率が良いことが分かります。
まとめ
さて、今回はコードレビューとテストの順番についてお話ししてきました。
テストは結構単調な作業ですから、やり直しとなった時はモチベーションが下がってしまいがちです。
作業効率的にも、基本的にはコードレビューを先に行った方が無駄が少ないと言えそうですね。