ইউনিট পরীক্ষা? ইন্টিগ্রেশন পরীক্ষা? প্রত্যাগতি পরিক্ষা? স্বীকৃতি পরীক্ষা?


102

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



উত্তর:


133

সংক্ষেপে:

ইউনিট টেস্টিং - আপনি কোডের প্রতিটি স্বতন্ত্র টুকরো পরীক্ষা করেন প্রতিটি ফাইল বা ক্লাস ভাবেন।

ইন্টিগ্রেশন টেস্টিং - একত্রে একাধিক ইউনিট স্থাপন করার সময় আপনাকে এই ইউনিটগুলি একত্রিত করার ক্ষেত্রে কোনও ত্রুটি প্রবর্তিত হয়নি তা নিশ্চিত করার জন্য আপনাকে ইন্টিগ্রেশন টেস্টিং পরিচালনা করতে হবে।

রিগ্রেশন টেস্টিং - সংহত করার পরে (এবং সম্ভবত ফিক্সিং) আপনার ইউনিট পরীক্ষা আবার চালানো উচিত। এটি আরও পরিবর্তনগুলি ইতিমধ্যে পরীক্ষিত কোনও ইউনিটকে ভেঙে ফেলেনি তা নিশ্চিত করার জন্য এটি রিগ্রেশন টেস্টিং। আপনি ইতিমধ্যে যে ইউনিট টেস্টিং করেছেন তা ইউনিট পরীক্ষাগুলি তৈরি করেছে যা রিগ্রেশন পরীক্ষার জন্য বারবার চালানো যেতে পারে।

স্বীকৃতি পরীক্ষা - যখন কোনও ব্যবহারকারী / গ্রাহক / ব্যবসায় কার্যকারিতা পান তারা (বা আপনার পরীক্ষা বিভাগ) কার্যকারিতা তাদের প্রয়োজনীয়তা পূরণ করে তা নিশ্চিত করার জন্য স্বীকৃতি পরীক্ষা করবে।

আপনি হোয়াইট বক্স এবং ব্ল্যাক বক্স টেস্টিংও তদন্ত করতে পছন্দ করতে পারেন। এখানে কর্মক্ষমতা এবং লোড টেস্টিং এবং বিবেচনা করার জন্য "'সক্ষমতার" পরীক্ষাও রয়েছে।


এফওয়াইআই, ইউনিট পরীক্ষায় , পরীক্ষা করা ইউনিটগুলি বিভিন্ন আকারের হতে পারে। আপনি ইউনিট ক্লাসের একটি গ্রুপ, একক পদ্ধতি বা এমনকি একক পদ্ধতি হিসাবে পরীক্ষা করতে পারেন। উত্স: ব্লুজে অধ্যাপনা 9.3 "ব্লুজেজের মধ্যে ইউনিট পরীক্ষা করা"।
সেবাস্তিয়ান নীলসেন

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

119

ইউনিট পরীক্ষা: এটি ব্যর্থ হলে এটি আপনাকে জানায় যে আপনার কোডের কোন অংশটি ঠিক করতে হবে।

ইন্টিগ্রেশন টেস্ট: এটি ব্যর্থ হলে এটি আপনাকে বলে দেয় যে আপনার আবেদনের অংশগুলি প্রত্যাশার সাথে একসাথে কাজ করছে না।

স্বীকৃতি পরীক্ষা: যখন এটি ব্যর্থ হয়, এটি আপনাকে বলে যে অ্যাপ্লিকেশনটি গ্রাহক যেটি প্রত্যাশা করে তা করছে না।

রিগ্রেশন পরীক্ষা: যখন এটি ব্যর্থ হয়, এটি আপনাকে বলে যে অ্যাপ্লিকেশনটি আর আগের মতো আচরণ করে না।


19

এখানে উল্লিখিত পরীক্ষাগুলির প্রতিটি এবং যখন সেগুলি প্রযোজ্য হয় তার জন্য এখানে একটি সাধারণ ব্যাখ্যা:

ইউনিট টেস্ট একটি ইউনিট পরীক্ষা একটি স্ব-অন্তর্ভুক্ত ইউনিট (সাধারণত একটি শ্রেণি বা পদ্ধতি) এ সঞ্চালিত হয় এবং যখনই ইউনিট বাস্তবায়ন করা হয়েছে বা ইউনিটের আপডেটিং সম্পন্ন হয়েছে তখনই তা করা উচিত।

এর অর্থ এটি যখনই আপনি ক্লাস / পদ্ধতি লিখেছেন, একটি বাগ ঠিক করেছেন, কার্যকারিতা পরিবর্তন করেছেন ...

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

এর অর্থ এটি যখনই চালিত হয়েছে যখনই সম্প্রতি লিখিত ইউনিটটি সিস্টেমের বাকী অংশে সংহত করা হয়েছে বা যখনই কোনও সিস্টেম যা অন্যান্য সিস্টেমের সাথে ইন্টারেক্ট হয় তা আপডেট হয়েছে (এবং সফলভাবে তার ইউনিট পরীক্ষাগুলি সম্পন্ন করেছে)।

রিগ্রেশন টেস্ট রিগ্রেশন টেস্টগুলি সঞ্চালিত হয় যখনই কোনও নতুন বাগ প্রবর্তিত হয়নি তা পরীক্ষা করার জন্য সিস্টেমে কিছু পরিবর্তন করা হয়েছে।

এর অর্থ এটি সমস্ত প্যাচ, আপগ্রেড, বাগ ফিক্সের পরে চলছে। রিগ্রেশন টেস্টিং সম্মিলিত ইউনিট পরীক্ষা এবং ইন্টিগ্রেশন পরীক্ষার একটি বিশেষ কেস হিসাবে দেখা যেতে পারে।

স্বীকৃতি পরীক্ষা গ্রহণের পরীক্ষা গ্রহণ করা হয় যখনই কোনও সাবসিস্টেম (সম্ভবত পুরো সিস্টেম) তার সম্পূর্ণ বৈশিষ্ট্যগুলি পূরণ করে কিনা তা যাচাই করার ক্ষেত্রে প্রাসঙ্গিক।

এর অর্থ এটি মূলত কোনও নতুন বিতরণযোগ্য কাজ শেষ করার আগে বা বৃহত্তর টাস্কের কাজ শেষ করার আগে চালানো হয়। এটিকে আপনার চূড়ান্ত চেক হিসাবে দেখুন এটি দেখতে যে আপনি ক্লায়েন্ট / বসের দিকে দৌড়ানোর আগে এবং বিজয়ের ঘোষণার আগে আপনার লক্ষ্যগুলি সত্যিই শেষ করেছেন।

এটি আমি অন্ততপক্ষে শিখেছি, যদিও আমি নিশ্চিত যে অন্যান্য বিরোধী মতামত রয়েছে। যেভাবেই হোক, আমি আশা করি এটি সাহায্য করবে।


আমি রিগ্রেশন টেস্টিং এবং ইউনিট পরীক্ষার মধ্যে সত্যই পার্থক্য করতে পারি না। মানে প্রতিটি পরিবর্তন / প্রতিশ্রুতিবদ্ধ হওয়ার পরেও আপনার ইউনিট-পরীক্ষা চালানো হচ্ছে ... এবং তারা নতুন কোড দ্বারা প্রবর্তিত ত্রুটিগুলি ধরতে পারে। ঠিক?
মধু

@ হানি ওয়েল, রিগ্রেশন টেস্ট স্যুটটি বেশিরভাগই আপনার কিছু বা সমস্ত ইউনিট এবং ইন্টিগ্রেশন পরীক্ষার একটি নির্বাচন। এটি একটি নীতিগত বিষয়, আপনি কতটা রিগ্রেশন টেস্টিং করতে চান। মূল পার্থক্যটি হ'ল ইউনিট পরীক্ষাগুলি সক্রিয় বিকাশে করা হয় যখন আপনি রিগ্রেশন টেস্টগুলি আরও বেশি কিছু যা আপনি পরীক্ষা করতে ব্যবহার করেন যে পূর্ববর্তী প্রকল্পগুলি পিছন ফিরে যায় এবং সেগুলি প্যাচ করে break
এজেন্টলাইন

আফাইক আপনার ইউনিট-পরীক্ষা পদ্ধতিগুলি করা উচিত নয়। আপনি যদি ক্লাস পরীক্ষা করেন তবে আপনি এটি পুরোপুরি হিসাবে বিবেচনা করা উচিত, তাই আপনি শ্রেণীর পাবলিক ইন্টারফেস পরীক্ষা করেন, এটি বাস্তবায়নের বিশদ নয়। যদিও আপনি স্ট্যান্ডেলোন ফাংশনটি ইউনিট-টেস্ট করতে পারেন, এটি ঠিক আছে।
কিবব্যাক

14

আমি চেষ্টা করবো:

  1. ইউনিট পরীক্ষা: একজন বিকাশকারী একটি পৃথক উপাদান বা শ্রেণি পরীক্ষা করার জন্য একটি লিখতেন।
  2. ইন্টিগ্রেশন টেস্ট: আরও বিস্তৃত পরীক্ষা যা বেশ কয়েকটি উপাদান বা প্যাকেজগুলিকে জড়িত করে যাতে সহযোগিতা করতে হয়
  3. রিগ্রেশন টেস্ট: অ্যাপ্লিকেশনটিতে একক পরিবর্তন করা আপনাকে সমস্ত পরীক্ষা পুনরায় চালাতে বাধ্য করে এবং সমস্ত কার্যকারিতা পরীক্ষা করে forces
  4. স্বীকৃতি পরীক্ষা: শেষ ব্যবহারকারীরা বা কিউএ কোনও অ্যাপ্লিকেশন সরবরাহ গ্রহণের জন্য সাইন ইন করার আগে এইগুলি করে। এতে বলা হয়েছে "অ্যাপটি আমার প্রয়োজনীয়তা পূরণ করেছে।"

14

ইউনিট টেস্ট: আমার একক পদ্ধতি কি সঠিকভাবে কাজ করছে? (কোনও নির্ভরতা, বা নির্ভরতাগুলি উপহাস করা হয়নি)

ইন্টিগ্রেশন টেস্ট: আমার দুটি পৃথকভাবে বিকাশিত মডিউলগুলি একত্রে রাখার সময় কি পুরোভাবে কাজ করছে ?

রিগ্রেশন টেস্ট: নতুন কোড পরিবর্তন করে / লিখে কিছু ভাঙলাম ? (প্রতিটি প্রতিশ্রুতি সহ ইউনিট / ইন্টিগ্রেশন পরীক্ষা চলমান প্রযুক্তিগতভাবে (স্বয়ংক্রিয়) রিগ্রেশন টেস্টিং)। QA এর প্রসঙ্গে প্রায়শই ব্যবহৃত হয় - ম্যানুয়াল বা স্বয়ংক্রিয়।

স্বীকৃতি পরীক্ষা : ক্লায়েন্ট দ্বারা পরীক্ষামূলকভাবে সম্পন্ন, যে তিনি সরবরাহিত এসডাব্লু "গ্রহণ করে"


0

মন্তব্য করতে পারবেন না (খ্যাতি কম: - |) তাই ...

@ আন্ড্রেজগুলি প্রতিটি ধরণের পরীক্ষার সাথে যুক্ত পরিবেশের মধ্যে পার্থক্যগুলির পক্ষে একটি ভাল বক্তব্য তৈরি করে।

ইউনিট টেস্টগুলি সাধারণত অন্যান্য সংস্থান / সিস্টেমে বিদ্রূপযুক্ত নির্ভরতা সহ বিকাশকারী মেশিনে (এবং সম্ভবত সিআই বিল্ড চলাকালীন) চালিত হয়।

সংজ্ঞা অনুসারে ইন্টিগ্রেশন টেস্টগুলির নির্ভরতার প্রাপ্যতা (কিছুটা ডিগ্রি) থাকতে হবে; অন্যান্য সংস্থান এবং সিস্টেমগুলি বলা হচ্ছে যাতে পরিবেশটি আরও প্রতিনিধিত্বশীল। পরীক্ষার জন্য ডেটা উপহাস করা যেতে পারে বা বাস্তব উত্পাদনের ডেটার একটি ছোট অবচেতন উপসেট।

ইউএটি / স্বীকৃতি পরীক্ষার জন্য কিউএ এবং ব্যবসায়িক দলগুলির কাছে সফ্টওয়্যারটি গ্রহণ করার জন্য বাস্তব বিশ্বের অভিজ্ঞতা উপস্থাপন করতে হবে। সুতরাং বাস্তবসম্মত পারফরম্যান্স এবং শেষ ব্যবহারকারীর অভিজ্ঞতা প্রদানের জন্য সম্পূর্ণ সংহতকরণ এবং বাস্তবসম্মত ডেটা ভলিউম এবং পূর্ণ মুখোশযুক্ত / অবহেলিত ডেটা সেটগুলির প্রয়োজন।

অন্যান্য "দক্ষতা "গুলির উত্পাদন অভিজ্ঞতা অনুকরণের জন্য পরিবেশের বাস্তবের যতটা সম্ভব তার কাছাকাছি হওয়া প্রয়োজন যেমন কর্মক্ষমতা পরীক্ষা, সুরক্ষা, ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.