اختبار الوحدة والعلوم والرياضيات


مقدمة


اختبار الوحدة شائع الاستخدام. يبدو أنه لا يمكن لأحد الاستغناء عنه ، يكتب الجميع الاختبارات ، وغيابهم في أي مشروع خطير يسبب ، على الأقل ، سوء فهم. ومع ذلك ، ينظر العديد من الاختبارات على أنها طقوس تؤديها حتى لا تغضب "إله البرمجة". مثل ، من الضروري . لماذا ا؟ لأن .


سأقول أشياء مخيفة.


لا يهم ما يجب القيام به كوحدة اختبار. لا يهم كيف يتم تجميع الاختبارات. لا يهم ما إذا كانت مكتوبة قبل أو بعد الرمز. TDD أم لا TDD؟ لا يهم. حصة التغطية؟ لا تبالي. بعد كل شيء ، قد لا يكون هناك أي اختبارات على الإطلاق. كل هذا غير ذي صلة بالمرة. من المهم تلبية متطلبات البرامج.


اختبارات الوحدات ليست طقوسًا ، ولكنها أداة عمل جيدة ، مما يتيح لك الاقتراب من تلبية هذه المتطلبات. ويجب أن تكون هذه الأداة قادرة على استخدامها بشكل صحيح.


انتظر ، أين يأتي العلم بالرياضيات؟


المحتوى



  1. الضمانات والاحتمالات
  2. البرمجة كنظرية
  3. الاختبار كدليل على النظريات
  4. ما هو مهم وما هو ليس كذلك
  5. هل أنا بحاجة لاختبار الاختبارات


الضمانات والاحتمالات


لن أناقش للمرة المائة لماذا هناك حاجة للاختبارات ، وكم هي مساعدة ، وتوثيق ، وتبسيط عملية التطوير وإعادة الهيكلة ، والانحدارات القريبة ، وما إلى ذلك.


أريد أن أكتب عن كيفية تحقيق شيء في الاختبارات أكثر من سلسلة من الالتزامات والفوارق الفنية ومتطلبات الإدارة. بحيث أن الاختبارات ليست الدعائم التي تنقذ الهياكل المهتزة من التدمير الفوري ، ولكن الأساس الذي تقوم عليه برامجنا بثبات وثقة.


, — . — . — . , , , , .


. . : , , 100%, .


.




"". , , , , . , , . "" "". , . , , "" , , . , "", , , .


, , , . , — , .


, , .




. "", "". "" "" "".


"" , , . "" — , , ( , ).


"" , , , , — . "" "" , , "".


"" , "" "", "" "", .


. , std::vector, clear. , "", .

? , (capacity). , "":
  1. clear() , size() ;
  2. clear() , empty() true;
  3. clear() , capacity() , clear().
  4. clear() , , , .


"" "":
test_case("   `clear()`    ")
{
    std::vector<int> v{1, 2, 3, 4};

    v.clear();

    check(v.size() == 0);
}


, "", ? .

, , . — , "". , "" "" , size(). "".

, "", std::vector<int> v{1, 2, 3, 4}. . , "", ? , , . ? , , ( , ).

"" , , : "", , , . , "".

"", size() , . : , . "", .

"" "".

, "", ( , ) .



,


, , , (, , - — — ). , "" "". — .


, , : , ( TDD ). — "". , , "", TDD, .


, . , , . , , .


, , , .




— , . , , . , . , .


وهكذا ، فإن "علمنا" المجازي ، أي الشفرة و "الواقع الموضوعي" ، أي الاختبارات ، يتحركان تجاه بعضهما البعض ، ولا يصلان مطلقًا إلى المثالية ، بل يزيدان الاحتمال المطلوب.


All Articles