نظرًا لأن عدد الاختبارات الممكنة حتى لمكونات البرمجيات البسيطة غير محدود عملياً ، فإن جميع اختبارات البرمجيات تستخدم بعض الاستراتيجيات لاختيار الاختبارات الممكنة في الوقت والموارد المتاحة. ونتيجة لذلك، فإن اختبار البرمجيات عادةً (ولكن ليس حصرياً) يحاول تنفيذ برنامج أو تطبيق بقصد العثور على أخطاء البرمجيات (أخطاء أو عيوب أخرى). مهمة الاختبار هي عملية تكرارية عندما يتم إصلاح خطأ واحد، فإنه يمكن أن يلقي الضوء على الأخطاء الأخرى، أعمق، أو حتى يمكن أن تخلق جديدة.  على الرغم من أن الاختبار يمكن أن يحدد صحة البرنامج تحت افتراض بعض الفرضيات المحددة (انظر التسلسل الهرمي لصعوبة الاختبار أدناه) ، إلا أن الاختبار لا يمكن أن يحدد جميع العيوب داخل البرنامج. بدلاً من ذلك ، فإنه يوفر انتقادًا أو مقارنة تقارن حالة وسلوك المنتج مع قواعد أو آليات الأوراكل التي قد يدرك بها شخص ما مشكلة. قد تتضمن هذه النبوءات (ولكن لا تقتصر على) المواصفات والعقود والمنتجات المقارنة والإصدارات السابقة من نفس المنتج والاستدلالات حول الغرض المقصود أو المتوقع ، وتوقعات المستخدم أو العميل ، والمعايير ذات الصلة ، والقوانين المعمول بها ، أو معايير أخرى.  اكتب قائمة من الاسئلة بناء على المقالة والجوابات التالية.  1. اختبارات محتملة 2. أخطاء البرمجيات 3. لا 4. يمكن أن يضيء أو يخلق جديدة 5. لا 6. يقدم انتقاد 7 نعم أكثر من 8 تنفيذ برنامج 10. تكرارية  أسئلة مرقمة:
1. ما هو اللانهائي؟ 2. ماذا وجدت هذه الفحوصات؟ 3. بمجرد أن يتم إصلاحه هل كل شيء جاهز للذهاب؟ 4. -لماذا لا؟ خمسة. هل يمكن للاختبار تحديد كل شيء؟ ستة ماذا فعل بدلاً من ذلك؟ سبعة. هل العقود متضمنة في النبوءات؟ ثمانية كم من الأشياء كانت أوراكل؟ تسعة ما الذي حاول اختبار البرمجيات فعله عادةً؟ عشرة أي نوع من العمليات هي المهمة؟