উভয়।
নির্ধারক এবং ননডেটেরেমনিস্টিক পরীক্ষাগুলিতে আপনার স্যুটটির বিভিন্ন ব্যবহারের কেস এবং বিভিন্ন মান রয়েছে। সাধারণভাবে ননডেটেরিমেন্টিক ডিটারিস্টেমিক টেস্টের মতো একই নির্ভুলতা সরবরাহ করতে পারে না, যা আস্তে আস্তে বেড়েছে "ননডেটেরেস্টিক টেস্টের কোনও মূল্য দেয় না।" এটা মিথ্যা। এগুলি কম সুনির্দিষ্ট হতে পারে তবে এগুলি আরও বিস্তৃত হতে পারে যার নিজস্ব সুবিধা রয়েছে।
আসুন একটি উদাহরণ নেওয়া যাক: আপনি একটি ফাংশন লিখুন যা পূর্ণসংখ্যার একটি তালিকা সাজায়। আপনি কার্যকর মনে করেন এমন কিছু ডিস্ট্রিমেন্টিক ইউনিট পরীক্ষা কী হবে?
- একটি খালি তালিকা
- মাত্র একটি উপাদান সহ একটি তালিকা
- একই উপাদানগুলির সমস্ত সহ একটি তালিকা
- একাধিক অনন্য উপাদান সহ একটি তালিকা
- একাধিক উপাদান সহ একটি তালিকা, যার কয়েকটি সদৃশ
- একটি তালিকা সঙ্গে
NaN
, INT_MIN
এবংINT_MAX
- ইতিমধ্যে আংশিকভাবে বাছাই করা একটি তালিকা
- 10,000,000 উপাদান সহ একটি তালিকা
এবং এটি একটি বাছাই ফাংশন! অবশ্যই, আপনি তর্ক করতে পারেন যে এর মধ্যে কিছু অপ্রয়োজনীয়, বা এগুলির মধ্যে কিছু অনানুষ্ঠানিক যুক্তি দিয়ে বাতিল হতে পারে। তবে আমরা প্রকৌশলী এবং আমরা আমাদের মুখে অনানুষ্ঠানিক যুক্তি বয়ে যেতে দেখেছি। আমরা জানি যে আমরা যে সিস্টেমগুলি তৈরি করেছি তা সম্পূর্ণরূপে বুঝতে বা আমাদের মাথার মধ্যে জটিলতা সম্পূর্ণরূপে রাখার জন্য আমরা যথেষ্ট স্মার্ট নই। এজন্য আমরা প্রথম স্থানে পরীক্ষা লিখি। ননডেটারিস্টেমিক টেস্ট যুক্ত করা কেবলমাত্র বলে যে আমরা ভাল পরীক্ষার সমস্ত বিষয়টিকে প্রাথমিকভাবে জানার জন্য যথেষ্ট স্মার্ট হতে পারি না। আপনার ফাংশনে আধা-এলোমেলো ডেটা নিক্ষেপ করে, আপনি মিস করেছেন এমন প্রান্তের কেসটি খুঁজে পাওয়ার সম্ভাবনা অনেক বেশি।
অবশ্যই, এটি ডিটারমিনিস্টিক টেস্টকেও অস্বীকার করে না। ননডেটেরিমনস্টিক টেস্টিং প্রোগ্রামের বিশাল সোনাগুলিতে বাগ খুঁজে পেতে সহায়তা করে। একবার আপনি বাগগুলি খুঁজে পেয়েছেন, তবে এটি ঠিক করার জন্য আপনার একটি পুনরুত্পাদনযোগ্য উপায় প্রয়োজন। তাই:
- আপনার কোডটিতে বাগগুলি খুঁজে পেতে ননডেটেরিমনস্টিক পরীক্ষাগুলি ব্যবহার করুন ।
- আপনার কোডে ফিক্সগুলি যাচাই করতে ডিটারমিনিস্টিক পরীক্ষাগুলি ব্যবহার করুন ।
নোট করুন যে এর অর্থ ইউনিট পরীক্ষাগুলি সম্পর্কে প্রচুর দৃ় পরামর্শ অগত্যা ননডেটারিস্টিক পরীক্ষাগুলিতে প্রয়োগ হয় না। উদাহরণস্বরূপ, তারা অবশ্যই দ্রুত হওয়া উচিত। নিম্ন-স্তরের সম্পত্তি পরীক্ষাগুলি দ্রুত হওয়া উচিত, তবে "একজন ব্যবহারকারীকে এলোমেলোভাবে আপনার ওয়েবসাইটের বোতামে ক্লিক করে অনুকরণ করুন এবং আপনি কখনই 500 ত্রুটি পাবেন না তা নিশ্চিত করুন" এর মতো একটি নিরপেক্ষ পরীক্ষা-নিরীক্ষার গতির চেয়ে ব্যাপকতার পক্ষে হওয়া উচিত। আপনার বিল্ড প্রক্রিয়াটি স্বাধীনভাবে রান করুন এর মতো একটি পরীক্ষা করুন যাতে এটি উন্নয়নকে কমিয়ে না দেয়। উদাহরণস্বরূপ, এটি নিজস্ব ব্যক্তিগত স্টেজিং বাক্সে চালান run