ইউনিট পরীক্ষা বনাম কার্যকরী পরীক্ষা


407

ইউনিট পরীক্ষা এবং কার্যকরী পরীক্ষার মধ্যে পার্থক্য কী? একটি ইউনিট পরীক্ষা একটি ফাংশন পরীক্ষা করতে পারেন?



উত্তর:


254

ইউনিট টেস্ট - একটি পৃথক ইউনিট যেমন একটি ক্লাসে একটি পদ্ধতি (ফাংশন) পরীক্ষা করে সমস্ত নির্ভরতা উপহাস করে।

কার্যকরী পরীক্ষা - একে সিস্টেমে একীকরণের পরীক্ষা, কোনও সিস্টেমে কার্যকারিতার এক টুকরো পরীক্ষা করে। এটি অনেকগুলি পদ্ধতি পরীক্ষা করবে এবং ডেটাবেসস বা ওয়েব পরিষেবাদির মতো নির্ভরতার সাথে ইন্টারঅ্যাক্ট করতে পারে।


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

7
আমি @ গ্র্যাফিক ফাংশনাল টেস্টের সাথে একমত! = ইন্টিগ্রেশন টেস্ট আপনাকে অবশ্যই একে অপরের মধ্যে থাকা সিস্টেমের উপ-উপাদানগুলির "সংহতকরণ" হতে হবে যেমন স্থায়ী রাষ্ট্র ইত্যাদি But তবে সাধারণ অর্থে ইন্টিগ্রেশন পরীক্ষার অনেক বিস্তৃত সুযোগ রয়েছে।
ন্যাবস্টার

4
নাহ, কিছুই সম্পর্কে বিভ্রান্ত হয়নি।
বিপাপা

3
ইন্টিগ্রেশন টেস্ট IS-A কার্যকরী পরীক্ষা। তবে বিপরীত নয়। গুগল "ক্রিয়ামূলক এবং অ কার্যকরী পরীক্ষা" এবং "চিত্রগুলি" পরীক্ষা করে।
আন্দ্রেজস

4
এই উত্তরটি কেবল ভুল! প্রায়োগিক পরীক্ষামূলক এমনকি ইন্টিগ্রেশন পরীক্ষা বন্ধ না এসে গেছে ..
sotn

517

ইউনিট পরীক্ষাগুলি কোনও বিকাশকারীকে বলে যে কোডটি সঠিকভাবে করছে; কার্যকরী পরীক্ষাগুলি কোনও বিকাশকারীকে বলে যে কোডটি সঠিক কাজ করছে

ইউনিট টেস্টিং বনাম ফাংশনাল টেস্টিংয়ে আপনি আরও পড়তে পারেন


ইউনিট টেস্টিং এবং কার্যকরী পরীক্ষার একটি ভালভাবে ব্যাখ্যা করা বাস্তব জীবনের উপমাটি নীচে বর্ণিত হতে পারে,

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

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

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

বাড়ির মালিক বাড়িতে কার্যকরী পরীক্ষা চালাচ্ছেন। তার ব্যবহারকারীর দৃষ্টিভঙ্গি রয়েছে।

বিল্ডিং ইন্সপেক্টর বাড়িতে ইউনিট পরীক্ষা করছেন। তার নির্মাতার দৃষ্টিভঙ্গি রয়েছে।


সংক্ষিপ্তসার হিসাবে,

ইউনিট টেস্ট প্রোগ্রামার দৃষ্টিকোণ থেকে লেখা হয় । এগুলি নিশ্চিত করা হয় যে কোনও শ্রেণির একটি নির্দিষ্ট পদ্ধতি (বা একটি ইউনিট ) নির্দিষ্ট কাজগুলির একটি সেট সম্পাদন করে।

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


18
ধারণাটিতে নতুন কারও জন্য উদ্ধৃতিটি কিছুটা অস্পষ্ট।

2
@ ডুমুর-গুন্টন, আমি বর্ণনাকে অস্পষ্ট করে না দেওয়ার আশাবাদী। লিঙ্কটির ভিতরে তারা একটি ভাল উদাহরণ সরবরাহ করে, আমি উত্তরটি উদ্ধৃতি দিয়ে আপডেট করতে পারতাম যদি আপনি মনে করেন যে এটি ওপিকে সহায়তা করতে পারে।
অ্যান্টনি ফোরলনি

147
সম্ভবত এটির অন্য একটি উপায় হ'ল "ইউনিট পরীক্ষা নিশ্চিত করে যে প্রোগ্রামার যা চায় কোডটি তা করে, ফাংশনাল টেস্টগুলি নিশ্চিত করে যে প্রোগ্রামার গ্রাহক যা চায় তা করছে"?
জেএস।

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

2
প্রোগ্রামার যা চায় তা শেষ ব্যবহারকারীটি যা চায় তার সাথে মেনে চলে না? কেন এমন একটি পরীক্ষা লিখুন যা গ্রাহকের প্রত্যাশা পূরণ করে না?
ও.ব্যাডার

140
  • একটি ইউনিট পরীক্ষা আচরণের একটি স্বাধীন ইউনিট পরীক্ষা করে । আচরণের একক কী? এটি সিস্টেমের সবচেয়ে ছোট টুকরো যা স্বতন্ত্রভাবে ইউনিট পরীক্ষা করা যেতে পারে। (এই সংজ্ঞাটি আসলে বিজ্ঞপ্তিযুক্ত, আইডাব্লিউটি এটি আসলে কোনও সংজ্ঞা নয় , তবে এটি অনুশীলনে বেশ ভালভাবে কাজ করছে বলে মনে হয়, কারণ আপনি এটি স্বজ্ঞাতভাবে বুঝতে পারেন))

  • একটি কার্যক্ষম পরীক্ষা একটি কার্যকারিতা স্বতন্ত্র অংশ পরীক্ষা করে।


  • আচরণের একটি ইউনিট খুব ছোট: যদিও আমি এই বোকা "পদ্ধতি প্রতি এক ইউনিট পরীক্ষা" মন্ত্রকে পুরোপুরি অপছন্দ করি, একটি আকারের দৃষ্টিকোণ থেকে এটি সঠিক। আচরণের এককটি কোনও পদ্ধতির অংশ এবং সম্ভবত কয়েকটি পদ্ধতির মধ্যে কিছু। সর্বাধিক কোনও বস্তু, তবে একের বেশি নয়।

  • কার্যকারিতা একটি টুকরা সাধারণত বিভিন্ন পদ্ধতি এবং প্রায়শই একাধিক স্থাপত্য স্তরগুলির মাধ্যমে অনেকগুলি পদ্ধতি এবং কাটকে সমন্বিত করে ris


  • একটি ইউনিট পরীক্ষাটি এমন কিছু হতে পারে: যখন আমি validate_country_code()ফাংশনটি কল করি এবং এটি দেশের কোডটি পাস করি তবে 'ZZ'এটির উচিত false

  • একটি কার্যকরী পরীক্ষাটি হ'ল: আমি যখন একটি দেশের কোড সহ শিপিং ফর্মটি পূরণ করি তখন আমাকে ZZএকটি সহায়তা পৃষ্ঠায় পুনর্নির্দেশ করা উচিত যা আমাকে আমার দেশের কোডটি একটি মেনু থেকে বাছাই করতে দেয়।


  • ইউনিট টেস্টগুলি বিকাশকারীদের দ্বারা, বিকাশকারীদের জন্য, বিকাশকারীদের দৃষ্টিকোণ থেকে লেখা হয়।

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


  • পূর্ববর্তী ক্ষেত্রে, কার্যকরী পরীক্ষাগুলি গ্রহণযোগ্যতা পরীক্ষা হিসাবে এবং কার্যকরী প্রয়োজনীয়তার একটি এক্সিকিউটেবল এনকোডিং বা একটি কার্যকরী স্পেসিফিকেশন হিসাবে কাজ করতে পারে, পরবর্তী ক্ষেত্রে, তারা সংহতকরণ পরীক্ষা হিসাবেও কাজ করতে পারে।

  • ইউনিট পরীক্ষাগুলি ঘন ঘন পরিবর্তিত হয়, কার্যকরী পরীক্ষাগুলি কখনই কোনও বড় রিলিজের মধ্যে পরিবর্তন হয় না।



চমৎকার উত্তর! একটি জিনিস - "কার্যকরী টেস্টগুলি কখনই কোনও বড় রিলিজের মধ্যে পরিবর্তন করা উচিত নয়" কেন এটি?
লেজার

5
@ লেজার, @ সিডিজেজাাক: অনেক প্রকল্পে, প্রধান সংস্করণ সংখ্যার একটি পরিবর্তন পিছনের দিকে অসঙ্গতি এবং ওটিওএইচ নির্দেশ করতে ব্যবহৃত হয় যদি প্রধান সংস্করণটি পরিবর্তন না হয় তবে পিছনের দিকে সামঞ্জস্যতা নিশ্চিত করা হয় । "পিছনের দিকে সামঞ্জস্য" বলতে কী বোঝায়? এর অর্থ "ব্যবহারকারীর দ্বারা দৃশ্যমান আচরণ পরিবর্তন হয় না"। এবং কার্যকরী পরীক্ষাগুলি ব্যবহারকারীর দ্বারা দৃশ্যমান আচরণের বিশদকরণের একটি নির্বাহযোগ্য এনকোডিং। সুতরাং, যদি প্রধান নম্বর পরিবর্তন না করে, তাহলে কার্মিক পরীক্ষার পরিবর্তন পারেন এবং বিপরীতভাবে, যদি কার্মিক tets অনুমতি দেওয়া হয় না কি পরিবর্তন করুন, তারপর প্রধান সংখ্যা আবশ্যক পাশাপাশি পরিবর্তন করুন।
জার্গ ডব্লু মিট্টাগ

2
দ্রষ্টব্য: আমি কার্যকরী পরীক্ষা যোগ করার বিষয়ে কিছু বলিনি ! পিছনে-অসামঞ্জস্যপূর্ণ পরিবর্তন গঠনের আগে সেখানে ছিল না এমন কার্যকারিতা যুক্ত করা বা না করা প্রকল্পের উপর নির্ভর করে। শেষ ব্যবহারকারী সফ্টওয়্যার জন্য, সম্ভবত না। তবে প্রোগ্রামিং ভাষার জন্য? হতে পারে: একটি নতুন কীওয়ার্ড প্রবর্তন করা, উদাহরণস্বরূপ, বর্তমানে চলমান কর্মসূচীগুলিকে সেই কীওয়ার্ডটিকে ভেরিয়েবল নাম হিসাবে ব্যবহার করার ক্ষেত্রে অবৈধ করে তোলে এবং এইভাবে পিছনে-বেমানান পরিবর্তন।
জার্গ ডব্লু মিট্টাগ

3
@ জার্গডব্লিউমিত্যাগ এই ধারণাটি পছন্দ করেন: 'কার্যকরী পরীক্ষাগুলি ব্যবহারকারীর দ্বারা দৃশ্যমান আচরণের নির্দিষ্টকরণের একটি নির্বাহযোগ্য এনকোডিং হয়' ... অন্য সুপার-বিশেষজ্ঞরা প্রকৃতপক্ষে একমত হন বা না হন, এটি আমাকে মূল প্রশ্নে সহায়তা করে, "এর মধ্যে পার্থক্যটি বুদ্ধিমান করতে 'এম'
মাইকে রডেন্ট

1
"একটি কার্যকরী পরীক্ষাটি হ'ল: আমি যখন জেডজেডের একটি দেশের কোড সহ শিপিং ফর্মটি পূরণ করি, তখন আমাকে একটি সহায়তা পৃষ্ঠায় পুনর্নির্দেশ করা উচিত যা আমাকে আমার দেশের কোডটি একটি মেনু থেকে বাছাই করতে দেয়" " এটি নিট-পিকের মতো, তবে আমি এটিকে "গ্রহণযোগ্যতা পরীক্ষা" বলব। কার্যকরী পরীক্ষাটি পরীক্ষা করে যে শিপিং ফর্মের জেডজেড প্রবেশ করিয়ে ব্যবহারকারীকে সঠিক URL- এ এগিয়ে দেওয়া হয়েছে বা নির্দিষ্ট ব্যতিক্রম বা ত্রুটি ছুঁড়ে দেওয়া হয়েছে।
বব রে

98

TLDR:

প্রশ্নের উত্তরের জন্য: ইউনিট টেস্টিং কার্যকরী পরীক্ষার একটি উপপ্রকার


দুটি বড় গ্রুপ রয়েছে: কার্যকরী এবং অ-কার্যকরী পরীক্ষা। আমি যে সেরা ( অবসন্ন নয় ) উদাহরণটি পেয়েছি তা হ'ল এটি (উত্স: www.inflectra.com ):

এখানে চিত্র বর্ণনা লিখুন

(1) ইউনিট টেস্টিং: কোডের ছোট ছোট স্নিপেটের পরীক্ষা (ফাংশন / পদ্ধতি)। এটি (সাদা-বাক্স) ক্রিয়ামূলক পরীক্ষার হিসাবে বিবেচিত হতে পারে।

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

(২) ইন্টিগ্রেশন টেস্টিং: আপনি যখন দুটি বা ততোধিক টুকরো (সাব) মডিউল বা (সাব) সিস্টেমে একসাথে রাখেন এবং দেখুন যে তারা একসাথে সুন্দরভাবে খেলছে কিনা।

তারপরে আপনি 3 য় মডিউলকে সংহত করুন, তারপরে আপনি বা আপনার দল যেভাবেই উপযুক্ত দেখতে চান তাতে 4 র্থ এবং 5 তম হয়ে যায় এবং একবার সমস্ত জিগস টুকরা একসাথে স্থাপন করা হয়ে আসে comes

(3) সিস্টেম পরীক্ষা: সম্পূর্ণরূপে SW পরীক্ষা করে । এটি বেশ অনেকটা " একসাথে সমস্ত টুকরো টুকরো ইন্টিগ্রেশন পরীক্ষা "।

যদি এটি ঠিক আছে, তবে আসে

(4) স্বীকৃতি পরীক্ষা: গ্রাহক আসলে যা চেয়েছিলেন তা কি আমরা তৈরি করেছি? অবশ্যই, স্বীকৃতি পরীক্ষা পুরো জীবনচক্র জুড়ে করা উচিত , কেবল শেষ পর্যায়ে নয়, যেখানে আপনি বুঝতে পারবেন যে গ্রাহক একটি স্পোর্টসকার চান এবং আপনি একটি ভ্যান তৈরি করেছিলেন।

এখানে চিত্র বর্ণনা লিখুন


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

উত্তর (এমনকি উচ্চ উত্সাহিত ব্যক্তিরাও) ভুল হতে পারে;)
আন্দ্রেজ

1
আমি ছবিটি পছন্দ করি তবে সিস্টেম একীকরণ পরীক্ষার জন্য ধাঁধাটি "সম্পূর্ণ" হিসাবে উপস্থিত হওয়া উচিত, অন্য টুকরো সংযোগের জন্য আর কোনও জায়গা ছাড়াই places
জোনাথন রাইনহার্ট

4
@ জোনাথনরাইনহার্ট - অগত্যা নয়। উন্মুক্ত প্রান্তগুলি নতুন বৈশিষ্ট্যগুলির সাথে সিস্টেমের সহজ এক্সটেনসিবিলিটি প্রতিনিধিত্ব করতে পারে, যা অ্যাগ্রিলের মতো বিকাশ পদ্ধতির ব্যবহার করা বিশেষত কার্যকর।
মাইলেস

উপরোক্ত একাধিক বিতর্কিত উত্তর থেকে, অবশ্যই Functional Testকোনও মানক শব্দ নয় এবং বিভিন্ন লোকের কাছে এর আলাদা অর্থ রয়েছে।
পেঙ্গে গেঞ্জ

12

"কার্যকরী পরীক্ষা" এর অর্থ এই নয় যে আপনি আপনার কোডটিতে কোনও ফাংশন (পদ্ধতি) পরীক্ষা করছেন। এর অর্থ সাধারণত, আপনি সিস্টেমের কার্যকারিতা পরীক্ষা করে দেখছেন - যখন আমি foo file.txtকমান্ড লাইনে দৌড়ান , তখন লাইনগুলি file.txtবিপরীত হয়ে যায়, সম্ভবত। বিপরীতে, একটি একক ইউনিট পরীক্ষা সাধারণত একক পদ্ধতির একক ক্ষেত্রে জুড়ে থাকে - length("hello")5 টি length("hi")প্রত্যাবর্তন করা উচিত এবং 2 এ ফিরে আসা উচিত।

ইউনিট টেস্টিং এবং কার্যকরী পরীক্ষার মধ্যে আইবিএমের গ্রহণযোগ্যতাও দেখুন ।


ভাল, আকর্ষণীয়, তবে আপনি যে লিঙ্কটি দেখান তার অর্থ অন্যরকম: কার্যকরী বাস্তবায়নের মধ্য দিয়ে কার্য সম্পাদন সম্পর্কিত, অর্থাৎ ব্যবহারকারীর দৃষ্টিকোণ থেকে পরীক্ষা করা, এটি ব্যবহারকারীর জন্য একটি ফাংশন।
স্টেফানো স্কর্পান্তি

8

মূল পার্থক্য, যদিও, কার্যকরী পরীক্ষাগুলি ব্যবহারকারীর দৃষ্টিকোণ থেকে বাইরে থেকে অ্যাপ্লিকেশন পরীক্ষা করে। ইউনিট টেস্টগুলি প্রোগ্রামারের দৃষ্টিকোণ থেকে আবেদনটি ভিতরে থেকে পরীক্ষা করে। কার্যকরী পরীক্ষাগুলি আপনাকে সঠিক কার্যকারিতা সহ একটি অ্যাপ্লিকেশন তৈরি করতে সহায়তা করতে পারে এবং গ্যারান্টি দেয় যে আপনি কখনই এটি দুর্ঘটনাক্রমে ভাঙ্গেন না। ইউনিট পরীক্ষাগুলি আপনাকে কোডটি পরিষ্কার এবং ত্রুটিমুক্ত লিখতে সহায়তা করবে।

হ্যারি পারসিভালের "পাইথন টিডিডি" বই থেকে নেওয়া


8

আইএসটিকিউবি অনুসারে এই দু'জনের তুলনা হয় না। কার্যকরী পরীক্ষাটি সংহতকরণ পরীক্ষা নয় not

ইউনিট পরীক্ষাটি পরীক্ষার স্তরগুলির মধ্যে একটি এবং কার্যকরী পরীক্ষাটি হ'ল পরীক্ষার ধরণ।

মূলত:

কোনও সিস্টেমের (বা উপাদান) কাজটি হল 'এটি কী করে'। এটি সাধারণত প্রয়োজনীয়তার নির্দিষ্টকরণ, একটি কার্যকরী স্পেসিফিকেশন বা ব্যবহারের ক্ষেত্রে বর্ণিত হয়।

যখন

উপাদান টেস্টিং, যা ইউনিট, মডিউল এবং প্রোগ্রাম টেস্টিং নামেও পরিচিত, ত্রুটিগুলি অনুসন্ধান করে এবং সফ্টওয়্যারটির কার্যকারিতা যাচাই করে (যেমন মডিউল, প্রোগ্রাম, অবজেক্টস, ক্লাস, ইত্যাদি) যা পৃথকভাবে পরীক্ষাযোগ্য।

আইএসটিকিউবি অনুসারে উপাদান / ইউনিট পরীক্ষা কার্যকরী বা অ-কার্যকরী হতে পারে:

উপাদান পরীক্ষার মধ্যে কার্যকারিতা এবং নির্দিষ্ট অ-কার্যকরী বৈশিষ্ট্য যেমন রিসোর্স-আচরণ (যেমন মেমরি ফাঁস), কার্য সম্পাদন বা দৃust়তা পরীক্ষা, পাশাপাশি কাঠামোগত টেস্টিং (যেমন সিদ্ধান্তের কভারেজ) এর অন্তর্ভুক্ত থাকতে পারে।

সফ্টওয়্যার পরীক্ষার ভিত্তি থেকে উদ্ধৃতি - ISTQB শংসাপত্র


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

6

রেলগুলিতে, ইউনিট ফোল্ডারটি বোঝানো হয় আপনার মডেলগুলির জন্য পরীক্ষা রাখা, ফাংশনাল ফোল্ডারটি বোঝানো হয় আপনার নিয়ন্ত্রকদের জন্য পরীক্ষা রাখা, এবং ইন্টিগ্রেশন ফোল্ডারটি এমন পরীক্ষাগুলি বোঝায় যা কোনও সংখ্যক নিয়ামককে ইন্টারঅ্যাক্ট করে জড়িত tests ফিক্সচারগুলি পরীক্ষার ডেটাগুলি সংগঠিত করার একটি উপায়; তারা ফিক্সচার ফোল্ডারে থাকে। Test_helper.rb ফাইলটি আপনার পরীক্ষার জন্য ডিফল্ট কনফিগারেশন ধারণ করে। তোমার দর্শন লগ করা পরিদর্শন করতে পারেন এই


3

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


3

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

1- existing email, wrong password -> login page should show error "wrong password"!
2- non-existing email, any password -> login page should show error "no such email".
3- existing email, right password -> user should be taken to his inbox page.
4- no @symbol in email, right password -> login page should say "errors in form, please fix them!" 

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

নীচের পরীক্ষাগুলিতে যেমন দেখানো হয়েছে তেমনি ইউনিট পরীক্ষার ভিতরে অবৈধ ইনপুটগুলি প্রত্যাখ্যান করা হয়েছে কিনা তা আপনি পরীক্ষা করতে পারেন।

class LoginInputsValidator
  method validate_inputs_values(email, password)
    1-If email is not like string.string@myapp.com, then throw error.
    2-If email contains abusive words, then throw error.
    3-If password is less than 10 chars, throw error.

লক্ষ্য করুন যে কার্যকরী পরীক্ষা 4 আসলে ইউনিট পরীক্ষা 1 যা করছে তা করছে is কখনও কখনও, কার্যকরী পরীক্ষাগুলি বিভিন্ন কারণে ইউনিট পরীক্ষার মাধ্যমে করা কিছু (সমস্ত নয়) পুনরাবৃত্তি করতে পারে। আমাদের উদাহরণে, আমরা কোনও কার্যকর ত্রুটি বার্তাটি অবৈধ ইনপুট প্রবেশ করায় প্রদর্শিত হয় কিনা তা পরীক্ষা করতে আমরা কার্যকরী পরীক্ষা 4 ব্যবহার করি । সমস্ত খারাপ ইনপুট প্রত্যাখ্যান করা হয় বা না তা আমরা পরীক্ষা করতে চাই না। এটি ইউনিট পরীক্ষার কাজ।


1
কার্যনির্বাহী পরীক্ষার বিষয়ে প্রায়শই ইউনিট পরীক্ষার চেয়ে সংকীর্ণ সুযোগ (ফাংশনাল টেস্টিংয়ের ক্ষেত্রে মূলত প্রত্যাশিত ফাংশনটি প্রমাণিত হওয়ার দিকে বেশি কেন্দ্রীভূত করা) এর পক্ষে ভাল কথা, তবে আমি বলব যে তারা বিভিন্ন ধরণের মাত্রা বর্ণনা করে ( ইউনিট পরীক্ষায় রচনা) ক্রিয়ামূলক পরীক্ষায় বনাম উদ্দেশ্য ); কিছু ইউনিট টেস্টগুলি কার্যকরী পরীক্ষা এবং কিছু কার্যকরী পরীক্ষা ইউনিট পরীক্ষা, তবে ভেনের প্রচুর পরিমাণও রয়েছে যা ওভারল্যাপ হয় না।
মাইলস

কার্যকরী পরীক্ষার সুযোগ কী এবং কী নেই তার ভাল উদাহরণ।
মাইলস

2

অংশ পরিক্ষাকরণ

ইউনিট পরীক্ষার মধ্যে কোডের ক্ষুদ্রতম ইউনিট যা সাধারণত ফাংশন বা পদ্ধতি হয় তা পরীক্ষা করে। ইউনিট টেস্টিং বেশিরভাগ ইউনিট / পদ্ধতি / ফাংশনের বিকাশকারী দ্বারা করা হয়, কারণ তারা কোনও ফাংশনের মূল বোঝে। বিকাশকারীটির মূল লক্ষ্যটি ইউনিট পরীক্ষাগুলির দ্বারা কোডটি কভার করা।

এটির একটি সীমাবদ্ধতা রয়েছে যে ইউনিট পরীক্ষার মাধ্যমে কিছু ফাংশন পরীক্ষা করা যায় না। এমনকি সমস্ত ইউনিট পরীক্ষার সফল সমাপ্তির পরেও; এটি পণ্যের সঠিক ক্রিয়াকলাপের গ্যারান্টি দেয় না। একই ফাংশনটি সিস্টেমের কয়েকটি অংশে ব্যবহার করা যেতে পারে যখন ইউনিট পরীক্ষাটি কেবল একটি ব্যবহারের জন্য লেখা হয়েছিল।

কার্যকরী পরীক্ষা

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


2

খুব সহজভাবে আমরা বলতে পারি:

  • ব্ল্যাক বক্স: কার্যকরী পরীক্ষার মতো ইউজার ইন্টারফেস পরীক্ষা
  • সাদা বক্স: ইউনিট পরীক্ষার মতো কোড টেস্ট

এখানে আরও পড়ুন ।


@ ফাফল আমি দুঃখিত আমার খারাপ
আলিরেজা রহমানি খলিলি

1

ইউনিট পরীক্ষা : - ইউনিট টেস্টিং বিশেষত যখন পণ্যটি বিকাশাধীন থাকে তখন উপাদান উপাদান দ্বারা পণ্য উপাদান পরীক্ষা করার জন্য ব্যবহৃত হয়। জুনিট এবং নুনিত ধরণের সরঞ্জামগুলি আপনাকে ইউনিট অনুযায়ী পণ্যটি পরীক্ষা করতে সহায়তা করবে। ** সংহত হওয়ার পরে সমস্যাগুলি সমাধান করার পরিবর্তে এটি উন্নয়নের প্রথম দিকে সমাধান করা সর্বদা স্বাচ্ছন্দ্যযুক্ত।

কার্যকরী টেস্টিং: - টেস্টিংয়ের বিষয়ে যেমন দুটি মূল ধরণের পরীক্ষা করা হয় তেমনি 1. কার্যকরী টেস্ট 2. নন-ফাংশনাল টেস্ট।

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


0

ইউনিট টেস্টিং সাধারণত বিকাশকারীরা করেন। তাদের কোডটি সঠিকভাবে কাজ করে তা নিশ্চিত করা একই কাজ করার উদ্দেশ্য to থাম্বের সাধারণ নিয়ম হ'ল ইউনিট টেস্টিং ব্যবহার করে কোডের সমস্ত পথ আবরণ।

কার্যকরী পরীক্ষা : এটি একটি ভাল রেফারেন্স। কার্যকরী পরীক্ষার ব্যাখ্যা


6
দয়া করে আপনার উত্তরে সর্বাধিক গুরুত্বপূর্ণ পাঠ্যটি পেস্ট করুন, আপনি কখনই জানেন না যে কখন লিঙ্কটি অবৈধ করে পৃষ্ঠাটি মুছে ফেলা হবে।
আন্দ্রেজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.