চতুরতা পদ্ধতিটির একটি প্রয়োজনীয় অংশ পরীক্ষা করা কি?


24

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


76
যে কোনও মানের সফ্টওয়্যার বিকাশের জন্য টেস্টিং একটি প্রয়োজনীয় অংশ।
টেলাস্টিন

2
সম্ভাব্য সদৃশ করতে পারেন TDD- এ (টেস্ট চালিত ডেভেলপমেন্ট) না করে তত্পর হতে পারে? - আপনি যদি মতানৈক্য করেন তবে আমাকে জানান ...
মার্ফ

11
আমি নকল সাথে একমত। টেডিডিটি টিডিডি থেকে বিস্তৃত এবং বিস্তৃত প্রশ্নের বিভিন্ন উত্তর রয়েছে।
বার্ট ভ্যান ইনজেন শেহেনো

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

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

উত্তর:


33

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

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


2
এটি আরও গুরুত্বপূর্ণ যে ভবিষ্যতের ইনক্রিমেন্টাল পরিবর্তনগুলি পূর্ববর্তী কার্যকারিতা ভঙ্গ করে না এবং ইউনিট পরীক্ষাগুলি এটি যাচাই করার একটি সহজ উপায়।

1
আমি বলব সফ্টওয়্যার বিকাশের জন্য পরীক্ষা করা একেবারে প্রয়োজনীয় ।
আন্দ্রেস এফ।

@ সুমন টেস্টিং! = ইউনিট টেস্টিং। এছাড়াও, ইউনিট টেস্টিং! = টিডিডি (কেবলমাত্র ক্ষেত্রে ...)।
আন্দ্রেস এফ।

@AndresF। সত্য, আমি সাধারণত ইউনিট টেস্টিংটি আমার উপরে উল্লিখিত কারণগুলির জন্য Agile এর অবিচ্ছেদ্য অঙ্গ বলে মনে করি । পড়া ব্যর্থতা।

8

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


8

যদি আপনার পরীক্ষা না হয় তবে আপনি কীভাবে জানেন যে আপনার কোড কাজ করে?

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

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

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

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


13
গ্রাহকরা যখন বাগ রিপোর্ট ফাইল করা বন্ধ করেন? :-)
gbjbaanb

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

1
-1 - "পরীক্ষা উপস্থিতি দেখায়, বাগের অনুপস্থিতি নয়" "
টেলাস্টিন

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

আমি দ্বিমত পোষণ করি না, তবে পরীক্ষার পরিমাণটি প্রমাণ করে না যে আপনার কোডটি কাজ করে।
টেলাস্টিন

5

না, এটি "প্রয়োজনীয়" নয়

তত্পর নীতির কিছুই বলতে সরাসরি পরীক্ষামূলক সম্পর্কে।

তবে এটি হাই অ্যাডভাইজিবল

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

ব্যতিক্রম (জার্গ ডব্লু মিটাগ দ্বারা উল্লিখিত) এর মধ্যে রয়েছে যথাযথ-সঠিক উন্নয়ন সরঞ্জাম, মেটা-প্রোগ্রামিং সিস্টেম যা কোড উত্পন্ন করে, ইত্যাদি ইত্যাদি। তবে এই ধরণের সিস্টেমগুলি বিরল।


4

Agile এবং XP উভয়ই বিগ ডিজাইন আপ ফ্রন্ট এড়াতে চেষ্টা করে । বিডিইউএফ-এ প্রয়োজনীয়তা সংগ্রহ করা হয়, একটি আনুষ্ঠানিক স্পেসিফিকেশন তৈরি হয়, তারপরে কোডিং করা হয়, তারপরে টেস্টিং করা হয়। এটি চিকিত্সা সরঞ্জাম, স্পেস প্রোব ইত্যাদির মতো সু-সংজ্ঞায়িত, মিশন- এবং জীবন-সমালোচনামূলক সিস্টেমগুলির জন্য অর্থবোধ করে makes

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

স্বয়ংক্রিয় ইউনিট পরীক্ষাগুলি দ্রুত লেখার জন্য, দ্রুত চালানো এবং খুব মডিউলার / ডিকোপলড। এটি তাদের প্রয়োজনীয়তা আনুষ্ঠানিকভাবে নির্দিষ্ট করে এবং চেক করার একটি দ্রুত উপায় করে।

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