個人で作っているソフトウェアの場合、テストは稼動テストで済ますという方もいるのですが、不具合を減らすためにはもっと細かい観点からテストをしていく必要があります。ソフトウェア開発でのテストは主に3つの工程があります。1つ目は単体テストです。モジュールやクラスを作った事にテストを行い、仕様書通りの動きをするか、また、データ入出力が間違いないかの確認が行なわれます。
2つ目は結合テストです。結合テストでは単体で作成されているプログラム同士の連携がチェックされます。特にデータの入出力、エラーデータの排除などがチェックされます。この時、パフォーマンスのチェックをする場合もありますが、多くの場合は次のシステムテストで行なうことが多いようです。
システムテストではすべてのソフトウェアの機能をチェックします。それぞれのモジュールはこれまでのテストで問題がないことがチェックされていますが、すべての機能を動かした際に不具合があることはよくあります。また、この段階で速度のチェックも行なわれます。速度やレスポンスなどのパフォーマンスについてはそれぞれ単体では問題が起きなくてもすべてをまとめた段階で問題となることはよくあります。
速度が出ない、メモリ消費量が想定より多い、プログラムが落ちる、など、まとまったからこそ出る問題はとても多く、また改善点を見つけることが面倒なことが多いですが、テストをしていれば見つけやすくなると考えられています