আমি ইউনিট পরীক্ষা এবং একীকরণ পরীক্ষা পৃথক করা উচিত?


17

আমাকে একটি প্রকল্পের জন্য ইউনিট পরীক্ষা এবং ইন্টিগ্রেশন পরীক্ষা লিখতে হবে।

  • সমস্ত পরীক্ষা একক পরীক্ষার ফোল্ডারে রাখা উচিত ?
  • অথবা ইউনিট পরীক্ষা এবং একীকরণ পরীক্ষা প্রতিটি পৃথক পরীক্ষার ফোল্ডারে থাকা উচিত ?
  • অথবা আমি এমনকি তাদের পৃথক প্রকল্পে রাখা উচিত ?

যদি আমি তাদের একসাথে রাখি তবে এই পদ্ধতির সাথে কোনও সুবিধা বা ঘাটতি রয়েছে?


1
আপনি যদি কোনও সিআই পরিবেশে কাজ করছেন, তবে গুরুত্বপূর্ণ বিষয়টি হ'ল বিল্ড সার্ভারে সর্বদা ইন্টিগ্রেশন পরীক্ষা চালিত না হওয়ায় এগুলি সহজেই চিহ্নিত করা যেতে পারে (বৈশিষ্ট্য ইত্যাদি দ্বারা) by
রবি ডি

উত্তর:


18

সাধারণভাবে: হ্যাঁ, আপনার আলাদা আলাদা ফোল্ডারে একীকরণ পরীক্ষা এবং ইউনিট পরীক্ষা করা উচিত। প্রায়শই, প্রোগ্রামাররা এই দুই ধরণের পরীক্ষার মধ্যে একটি স্পষ্ট লাইন আঁকেন না এবং যা যা পরীক্ষা পরীক্ষা উপকারী তা কেবল লেখেন। তবে ইন্টিগ্রেশন টেস্টগুলি ধীর হতে থাকে, কারণ এগুলি প্রায়শই জড়িত:

  • ডাটাবেস অনুসন্ধান
  • নেটওয়ার্ক অনুরোধ
  • সময় নির্ভর আচরণ
  • বিশাল পরিমাণে ডেটা

বিপরীতে, একটি ইউনিট পরীক্ষা যে কোনও ব্যয়বহুল ক্রিয়াকলাপকে মশকরা করবে, তাই ইউনিট পরীক্ষাগুলি দ্রুত চলার ঝোঁক থাকে (বাস্তবে, পরীক্ষা চালানোর ধীরতম অংশটি প্রায়শই পরীক্ষার কাঠামো হয়)।

কোনও প্রোগ্রামার যখন সিস্টেমে কাজ করে তখন তারা সম্পাদনা-পরীক্ষার চক্রে থাকে। যত দ্রুত তারা পরীক্ষার প্রতিক্রিয়া পান এবং চক্রটি তার চেয়ে কম তত বেশি উত্পাদনশীল হতে পারে। সুতরাং সেখানে আমরা কেবলমাত্র গুরুত্বপূর্ণ পরীক্ষা চালাতে চাই যা দ্রুত সম্পূর্ণ হয়। সম্পূর্ণ পরীক্ষার স্যুটটি কেবলমাত্র একটি QA প্রক্রিয়ার অংশ হিসাবে কার্যকর করা হবে, যেমন একটি সিআই সার্ভারে।

এর অর্থ হ'ল বড় টেস্ট স্যুটগুলি শ্রেণীবদ্ধ করা উচিত। আমরা কি কেবলমাত্র কোনও নির্দিষ্ট উপাদানটির জন্য ইউনিট পরীক্ষা নির্বাচন করতে পারি? আমরা ধীর পরীক্ষা বাদ দিতে পারি? এটি করার একটি সহজ উপায় হ'ল বিভিন্ন ডিরেক্টরিতে বিভিন্ন পরীক্ষার স্যুট বজায় রাখা। যদি আপনার কেবলমাত্র খুব কম পরীক্ষা থাকে তবে কোনও প্রোগ্রামার সহজেই পরীক্ষার একটি উপসেট নির্বাচন করতে পারে ততক্ষণ একটি ডিরেক্টরিও ঠিক আছে।

যে কোনও প্রোগ্রামারকে দ্রুত প্রতিক্রিয়া জানাতে দেয় তা ভাল। সর্বাধিক বিস্তৃত টেস্ট স্যুটটি নিয়মিতভাবে কার্যকর করা হয় না তা বিবেচনা করে না।

আরও পড়া:


ফোল্ডারগুলি আলাদা করার সময়, আপনি কি তাদের প্রত্যেককেই প্রোডাকশন কোডের মতো একই প্যাকেজে রাখেন (যাতে আপনি সুরক্ষিত পদ্ধতিগুলি পরীক্ষা করতে পারেন)? উদাহরণস্বরূপ, আপনি ইউনিট পরীক্ষার জন্য একটি মাভেন মডিউল এবং ইন্টিগ্রেশন পরীক্ষার জন্য আরেকটি মভেন মডিউল তৈরি করেন। এর মতো, আপনি এগুলি আলাদা করতে পারেন এবং এখনও সুরক্ষিত পদ্ধতিগুলি সহজে পরীক্ষা করতে পারেন।
ইহেবিহব 15

@ ihebiheb জাভাতে, প্যাকেজ দৃশ্যমানতা ব্যবহার করা যথেষ্ট নকল। কিছু ক্ষেত্রে এটি ব্যবহার করতে এবং ইউনিট পরীক্ষাগুলি থেকে এই API গুলি অ্যাক্সেস করতে সহায়ক হতে পারে। তবে সাধারণভাবে, এটি অপ্রয়োজনীয়। ইন্টিগ্রেশন-স্টাইল পরীক্ষাগুলিতে প্যাকেজ-ব্যক্তিগত সদস্যদের অ্যাক্সেসের দরকার নেই। আপনি কীভাবে এগুলি চালনাতে এবং স্থাপন করতে চান তার উপর নির্ভর করে পৃথক মাভেন প্রকল্পে পরীক্ষাগুলি রাখা বা না করা নির্ভর করে। জাভা / মাভেনের মধ্যে আমি এখানে নই যা আপনি এখানে বোধগম্য।
আমন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.