こんにちは。ブランディング担当の森田です!
私は今エンジニアのみなさんの仲間入りをするために日々勉強をさせてもらってます。
今回も坂東さんにいろいろ聞きたいと思います。
≫森田 よろしくお願いします。
≫坂東 よろしくお願いします。
≫森田 今日は‘‘単体テスト‘‘について聞きたいと思っています。 単体テストってどういうものを指すんですか?
≫坂東 単体テストとは、プログラムを小さな単位に分けて、それぞれの機能が正しく動作するかを検証するテストのことです。 単体テストはプログラムの作成後に早い段階で実施されることが多く、不具合の原因の特定や修正が容易になります。
≫森田 単体テストは大事なことですか?
≫坂東 開発したシステムが正しく動作するものであることを保証するためにテスト工程が存在しています。 例えば、私たちが何か商品を購入した時に、その商品の質を保証する保証書や証明書などが同封されることがあると思います。 システム開発では、商品の質を保証するためにテストをすると考えることができます。
≫森田 なるほど、質を保証するためにもとても大切なんですね!
≫坂東 単体テストを実施することで、プログラム品質はあがるというメリットがある反面、入力パラメータを振ったり、細かい動作を確認したりと、地道な作業を続けていくためコストがかかる傾向があります。
≫森田 大切なことではあるけど手間もかかるんですね。
≫坂東 テストを行うことは大切で、項目数を増やすことでバグ発見確率は上がりますが、その分時間もお金もかかってしまうので、バランスが重要になってきます。
効率よく行うためには、テスト設計をしっかりしてテスト有識者とレビュー・合意を取ってゴールを明確にしてからテストを実施することです。 テスト設計時に挙げた項目全て合格となれば完了とするという条件にしておくことで、どこまでやればいいか分からなくなってしまうことを防げます。
≫森田 そこまで考えないといけないと思うと面倒くさそうと思ってしまいますね。
≫坂東 そうですね・・・(笑) ほとんどのソフトウェア開発者は「その通り」と答えるのではないでしょうか。 日ごろからきちんとテストを行ってる開発者の方だとなおさらです。
めんどくさくて確認をしてないのに完了としてしまう人もいますが、後々面倒なことになってくるので上流できちんとテストは終わらせておくことですね。
≫森田 そうなんですね。 手間かもしれないけど初めに終わらせておかないと後々積み重ねって自分が大変になってくるんですね。
≫坂東 そうですね。単体テストにかかわらず、仕事の締め切りや自分自身の課題に対しても同じ考えがいえるかもしれませんね。
≫森田 私も心がけます!とても勉強になりました。ありがとうございました!