এটি একটি গুরুত্বপূর্ণ পার্থক্য, তবে দুর্ভাগ্যক্রমে আপনি কখনই চুক্তিটি পাবেন না। সমস্যাটি হ'ল বেশিরভাগ বিকাশকারীরা তাদের নিজস্ব দৃষ্টিভঙ্গি থেকে এগুলি সংজ্ঞায়িত করেন। এটি প্লুটো নিয়ে বিতর্কের মতোই। (যদি এটি সূর্যের কাছাকাছি থাকত তবে এটি কোনও গ্রহ হত?)
ইউনিট টেস্টিং সংজ্ঞা দেওয়া সহজ। এটি সিউটি ( কোড আন্ডার টেস্ট ) পরীক্ষা করে অন্য কিছু না। (ঠিক আছে, যতটা সম্ভব সামান্য।) এর অর্থ মক, জাল এবং ফিক্সচার।
বর্ণালীটির অপর প্রান্তে অনেক লোক সিস্টেম ইন্টিগ্রেশন টেস্টিং বলে । এটি যথাসম্ভব পরীক্ষামূলক, কিন্তু এখনও নিজের সিউটে বাগ অনুসন্ধান করছে।
তবে এর মধ্যে বিস্তৃত বিস্তৃতি কী?
- উদাহরণস্বরূপ, আপনি যদি সিটিটির চেয়ে একটু বেশি পরীক্ষা করেন? আপনি যদি ইনজেকশন দিয়েছিলেন এমন কোনও ফিক্সচার ব্যবহার না করে আপনি যদি কোনও ফিবোনাচি ফাংশন অন্তর্ভুক্ত করেন? আমি সেই কার্যকরী পরীক্ষাকে বলব , কিন্তু বিশ্ব আমার সাথে একমত নয়।
- আপনি যদি অন্তর্ভুক্ত
time()
বা rand()
? নাকি ফোন দিলে http://google.com
? আমি সেই সিস্টেমের পরীক্ষার কল করব , কিন্তু আবার আমি একা আছি।
কেন এই ব্যাপার? কারণ সিস্টেম-পরীক্ষাগুলি অবিশ্বাস্য। এগুলি প্রয়োজনীয়, তবে তারা কখনও কখনও আপনার নিয়ন্ত্রণের বাইরেও কারণে ব্যর্থ হয়ে যায়। অন্যদিকে, কার্যকরী পরীক্ষা সর্বদা পাস করা উচিত, এলোমেলোভাবে ব্যর্থ হবে না; যদি তারা দ্রুত হয় তবে আপনার অভ্যন্তরীণ প্রয়োগের জন্য খুব বেশি পরীক্ষা না লিখে টেস্ট-চালিত বিকাশ ব্যবহার করার জন্য এগুলি শুরু থেকেই ব্যবহার করা যেতে পারে। অন্য কথায়, আমি মনে করি যে ইউনিট-পরীক্ষাগুলি তাদের মূল্যবোধের তুলনায় আরও বেশি সমস্যা হতে পারে এবং আমার ভাল সংস্থান রয়েছে ।
আমি ইউনিট-টেস্টিংয়ে তাদের সমস্ত শূন্য সহ 3 টি অক্ষের উপর পরীক্ষা দিয়েছি :
- কার্যক্ষম-পরীক্ষা: আপনার কল-স্ট্যাককে আরও গভীর এবং আরও গভীরতর কোড ব্যবহার করে।
- ইন্টিগ্রেশন-পরীক্ষার: উচ্চ এবং উচ্চতর আপ আপনার কল-স্ট্যাকের; অন্য কথায়, কোডটি এটি ব্যবহার করবে তা চালিয়ে আপনার সিটিটি পরীক্ষা করে।
- সিস্টেম-টেস্টিং: আরও বেশি করে অপরিবর্তনীয় অপারেশন (ও / এস শিডিয়ুলার, ক্লক, নেটওয়ার্ক ইত্যাদি )
একটি পরীক্ষা সহজেই সমস্ত 3 হতে পারে, বিভিন্ন ডিগ্রীতে।