सरल सॉफ्टवेयर घटकों के लिए संभावित परीक्षणों की संख्या व्यावहारिक रूप से अनंत है, सभी सॉफ्टवेयर परीक्षण परीक्षण का चयन करने के लिए कुछ रणनीति का उपयोग करता है जो उपलब्ध समय और संसाधनों के लिए संभव है । एक परिणाम के रूप में, सॉफ्टवेयर परीक्षण आमतौर पर (लेकिन विशेष रूप से नहीं) सॉफ्टवेयर बग (त्रुटियों या अन्य दोषों) को खोजने के इरादे के साथ एक कार्यक्रम या अनुप्रयोग को निष्पादित करने का प्रयास करता है । परीक्षण की नौकरी एक पुनरावृत्ति प्रक्रिया है जैसे कि एक बग तय किया जाता है,  यह अन्य, गहरे कीड़े को रोशन कर सकता है, या नए लोगों को भी बना सकता है ।
सॉफ्टवेयर में बग का पता लगाना इतना मुश्किल क्यों है?
परीक्षण की संख्या के रूप में व्यावहारिक रूप से अनंत है