MENU

なぜテストをしなければいけないか?

software, testing, service
アイキャッチ画像には、testbytes(https://pixabay.com/ja/users/testbytes-1013799/)さんの素敵な画像を使わせていただきました
目次

始めに

.NETの学習Roadmapを見ていると、単体テストに関するパッケージ (NUnitやXUnit) がしばしば載っています。ということは、知っておいた方がいいパッケージなんだろうな、と思い、学習しようとしたのですが、「そもそも単体テストってなんのためにする必要があるのだろう」と思いました。

もちろん、よりBugの少ないソフトウェアを開発するためではあるんですが、もう少し自分の言葉でまとめてみたいと思い、学習してみました。ソフトウェアのテストはなぜやらなければいけないのか、についてまとめたため、興味のある方はご覧ください。

また、本記事を作成するにあたり、Nitin Shah, “Software Quality Assurance & Testing For Beginners version 2.0“, 2019, を参考にしました。まだ第1章しか読めておりませんが、ソフトウェアテスト初心者の自分でも、かなりわかりやすく書かれております。英語で書かれているため、そのあたり気にならないよ、という方にはぜひおすすめです。

なぜテストしなければいけないか

ソフトウェアには、必ずといっていいほど、バグが潜みます。より大きく複雑なソフトウェアになればなるほど、多くのバグがソフトウェアに潜み、それを取り除く必要があります。なぜなら、製品納品前にそれらのバグを取り除かなかった場合、お客さんの時間、お客さんからの問い合わせ対応、デバッグ、などに時間や労力、また、場合によってはお客さんに経済的な損失を与え、それを負担する必要が生じます。

ソフトウェアのバグは、時には取返しのつかない事態を引き起こします。セラック25という放射線療法機器は、コンピューターで制御されていました。この機械は1985年から1987年にかけて少なくとも6個の過度な被爆事件を引き起こしました。原因は、この装置に用いられたOSの並行プログラミングに関する部分だったそうです。この事故は、生命に関わるようなシステムにおけるソフトウェア制御の危険性を考えさせるものとして、しばしば取り上げられています(wikipedia, セラック25, 閲覧日:2024/07/24)。

なぜ、Softwareにはバグが含まれてしまうのか?そこには複数の原因が含まれます。技術に関する未熟さ、チーム内でのCommunicationミス、うっかり、などになります。そのため、製品を納品する前に可能な限り排除するため、テストを行います。

しかし、テストにかけられる時間と労力は限られており、効率よく行う必要があります。そのためにはどうすればよいか?テストに関する知識やツールに習熟している必要があります。

まとめ

  • Technologyは日々進歩し、お客さんの要求も日々高まり、そして、競争も日々激化している。
  • そのため、Softwareの質を高めることは必須である
  • Communication・開発者チームの技術、人為的ミス等、様々な理由により、SoftwareにはBugが含まれる。
  • Bugの修正には時間や労力が必要であり、また、時には大きな問題を引き起こすことがある
  • しかし、テストにかけられる時間と労力は限られており、限られた時間で可能な限り広い範囲をテストする必要がある。
  • そのためには、テスト工程や技術的な知識を持つ必要がある。

文献の紹介

最初にも書きましたが、今回の記事を作成するにあたり、Nitin Shah, “Software Quality Assurance & Testing For Beginners version 2.0“, 2019を参考にしました。まだ第1章しか読んでないですが、Softwareのテストについて初心者な自分にとっては、親切でかなり読みやすいです。Kindle版ですと、買ってすぐ読める上に価格もお手頃なため、おすすめです。また、英語で書かれているため、英語の練習をしたい方には特におすすめです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次