আমি এখন পর্যন্ত পরীক্ষামূলক চালিত বিকাশ বুঝতে পেরেছি যে আপনি যখন ব্যর্থ (লাল) ইউনিট পরীক্ষা করে তখন আপনাকে কেবল উত্পাদনশীল কোড লেখার অনুমতি দেওয়া হয়।
নং, আপনাকে কেবল পরীক্ষার বার্তা পরিবর্তন করার জন্য সহজতম কোডটি লেখার অনুমতি দেওয়া হয়েছে। এটি কী ধরণের পরীক্ষা সম্পর্কে কিছুই বলে না।
আসলে, আপনি সম্ভবত একটি গ্রহণযোগ্যতা মানদণ্ডের জন্য একটি ব্যর্থ (লাল) গ্রহণযোগ্যতা পরীক্ষা লিখে শুরু করবেন, আরও স্পষ্টভাবে, আপনি সম্ভবত সবচেয়ে সহজ গ্রহণযোগ্যতা পরীক্ষা লিখবেন যা সম্ভবত ব্যর্থ হতে পারে; এরপরে আপনি পরীক্ষাটি চালান, এটি ব্যর্থ হয়ে দেখুন এবং সঠিক কারণে এটি ব্যর্থ হয়েছে তা যাচাই করুন। তারপরে আপনি সেই গ্রহণযোগ্যতার মানদণ্ডের কার্যকারিতার টুকরোটির জন্য একটি ব্যর্থ কার্যকরী পরীক্ষা লেখেন, আবার আপনি সহজতম কার্যকরী পরীক্ষাটি লিখেন যা সম্ভবত ব্যর্থ হতে পারে, এটি চালাতে পারে, এটি ব্যর্থ হতে পারে এবং যাচাই করে তোলে যে এটি সঠিক কারণে ব্যর্থ হয়েছে। তারপরে আপনি একটি ব্যর্থ ইউনিট পরীক্ষা লেখেন, সবচেয়ে সহজ ইউনিট পরীক্ষা যা সম্ভবত ব্যর্থ হতে পারে, চালিয়ে যান এটি ব্যর্থ করে দেখুন, যাচাই করুন যে এটি সঠিক কারণে ব্যর্থ হয়েছে।
এখন , আপনি সবচেয়ে সহজ উত্পাদন কোডটি লিখেছেন যা সম্ভবত ত্রুটির বার্তা পরিবর্তন করতে পারে। আবার পরীক্ষা চালান, যাচাই করুন যে ত্রুটি বার্তাটি পরিবর্তিত হয়েছে, এটি সঠিক দিকে পরিবর্তিত হয়েছে, এবং কোডটি সঠিক কারণে বার্তাটি পরিবর্তন করেছে। (আদর্শভাবে, ত্রুটি বার্তাটি এখনই শেষ করা উচিত, এবং পরীক্ষাটি পাস হওয়া উচিত, তবে প্রায়শই না হওয়া উচিত, পরীক্ষাটি একবারে পাস করার চেষ্টা করার পরিবর্তে বার্তাটি পরিবর্তন করার জন্য ক্ষুদ্র পদক্ষেপ নেওয়া ভাল - এটাই কারণ কেন পরীক্ষার কাঠামোর বিকাশকারীরা তাদের ত্রুটি বার্তাগুলিতে এত প্রচেষ্টা ব্যয় করে!)
আপনি একবারে ইউনিট পরীক্ষাটি পাস করার পরে, আপনি আপনার পরীক্ষার সুরক্ষার অধীনে আপনার প্রোডাকশন কোডটি রিফ্যাক্টর করেন। (দ্রষ্টব্য যে এই সময়ে, গ্রহণযোগ্যতা পরীক্ষা এবং কার্যকরী পরীক্ষা এখনও ব্যর্থ হচ্ছে, তবে এটি ঠিক আছে, যেহেতু আপনি কেবল ইউনিট পরীক্ষাগুলি দ্বারা আচ্ছাদিত পৃথক ইউনিটগুলিকে পুনরুদ্ধার করছেন))
এখন আপনি পরবর্তী ইউনিট পরীক্ষা তৈরি করুন এবং উপরেরটি পুনরাবৃত্তি করুন, যতক্ষণ না কার্যকরী পরীক্ষাটি পাস হয় না। কার্যকরী পরীক্ষার সুরক্ষার অধীনে, আপনি এখন একাধিক ইউনিট জুড়ে রিফ্যাক্টরিং করতে পারেন।
এই মধ্যম চক্রটি এখন গ্রহণযোগ্যতা পরীক্ষা পাস না হওয়া পর্যন্ত পুনরাবৃত্তি করবে, আপনি এখন পুরো সিস্টেম জুড়ে রিফ্যাক্টরিং করতে পারেন।
এখন, আপনি পরবর্তী গ্রহণযোগ্যতার মানদণ্ডটি চয়ন করুন এবং বাহ্যিক চক্রটি আবার শুরু হবে।
টিডিডি-র "আবিষ্কারক" কেন্ট বেক (তিনি "উদ্ভাবক" শব্দটি পছন্দ করেন না, তিনি বলেছেন যে লোকেরা এগুলি সব কিছু করে চলেছে, তিনি কেবল এটি একটি নাম দিয়েছিলেন এবং একটি বই লিখেছিলেন) ফটোগ্রাফি থেকে উপমা ব্যবহার করে এবং এটিকে "জুম ইন ইন এবং আউট" বলে।
দ্রষ্টব্য: আপনার সর্বদা তিন স্তরের পরীক্ষার প্রয়োজন হয় না। হতে পারে, কখনও কখনও আপনার আরও প্রয়োজন হয়। প্রায়শই, আপনার কম প্রয়োজন। যদি আপনার কার্যকারিতার অংশগুলি ছোট হয় এবং আপনার কার্যকরী পরীক্ষাগুলি দ্রুত হয় তবে আপনি (বা কম ইউনিট পরীক্ষা দিয়ে) ছাড়াই পেতে পারেন। প্রায়শই, আপনার কেবল গ্রহণযোগ্যতা পরীক্ষা এবং ইউনিট পরীক্ষা প্রয়োজন। অথবা, আপনার গ্রহণযোগ্যতার মানদণ্ডটি এত সূক্ষ্ম - আপনার গ্রহণযোগ্যতা পরীক্ষাগুলি কার্যকরী পরীক্ষা are
কেন্ট বেক বলেছেন যে তার যদি দ্রুত, ছোট এবং কেন্দ্রীভূত কার্যকরী পরীক্ষা থাকে তবে সে প্রথমে ইউনিট পরীক্ষাগুলি লিখবে, ইউনিট পরীক্ষাগুলি কোড চালাতে দেবে, তারপরে ইউনিট পরীক্ষাগুলি (কিছু) মুছে ফেলবে যা কোডটিও অন্তর্ভুক্ত করে দ্রুত কার্যকরী পরীক্ষা দ্বারা আচ্ছাদিত। মনে রাখবেন: পরীক্ষার কোডটি এমন একটি কোডও যা রক্ষণাবেক্ষণ এবং পুনরুদ্ধার করা দরকার, যত কম রয়েছে ততই ভাল!
যাইহোক, আমি ভাবছি কিনা পরীক্ষা চালিত পদ্ধতির অন্যান্য ধরণের পরীক্ষায় প্রয়োগ করা যেতে পারে।
আপনি পরীক্ষায় সত্যই টিডিডি প্রয়োগ করেন না। আপনি এটি আপনার পুরো উন্নয়ন প্রক্রিয়াতে প্রয়োগ করেন apply এটিই পরীক্ষার "চালিত" অংশ - চালিত- বিকাশ অর্থ: আপনার সমস্ত বিকাশ পরীক্ষা দ্বারা চালিত। পরীক্ষাগুলি কেবল আপনার লেখা কোডটিই চালিত করে না , কোন কোডটি লিখতে হবে, পরবর্তী কোডটি কী লিখতে হবে তাও চালিত করে । তারা আপনার নকশা ড্রাইভ। আপনার কাজ শেষ হলে তারা আপনাকে বলে। তারা আপনাকে পরবর্তী কাজ কী হবে তা বলে। তারা আপনাকে আপনার কোডের ডিজাইনের ত্রুটিগুলি সম্পর্কে বলবে (যখন পরীক্ষা লিখতে শক্ত হয়)।
কিথ ব্রেথওয়েট একটি অনুশীলন তৈরি করেছেন তিনি টিডিডিকে যেমন আপনি মেন্ট ইট বলছেন । এটি নিয়মের একটি সেট নিয়ে গঠিত ( চাচা বব মার্টিনের তিনটি টিডিডির উপর ভিত্তি করে , তবে আরও কঠোর) যা আপনাকে অবশ্যই কঠোরভাবে অনুসরণ করতে হবে এবং এটি আপনাকে আরও কঠোরভাবে টিডিডি প্রয়োগের দিকে পরিচালিত করার জন্য ডিজাইন করা হয়েছে। এটি জুড়ি প্রোগ্রামিং (যাতে আপনার জুড়িটি আপনি বিধিগুলি ভঙ্গ করছেন না তা নিশ্চিত করতে পারে) এবং একজন প্রশিক্ষকের সাথে সবচেয়ে ভাল কাজ করে।
বিধিগুলি হ'ল:
- ঠিক একটি নতুন পরীক্ষা লিখুন, আপনি করতে পারেন এমন সবচেয়ে ছোট পরীক্ষা যা কোনও সমাধানের দিকে নির্দেশ করে
- এটি ব্যর্থ দেখুন; সংকলন ব্যর্থতা ব্যর্থতা হিসাবে গণনা
- পরীক্ষা পদ্ধতিতে আপনি করতে পারেন এমন ন্যূনতম বাস্তবায়ন কোডটি লিখে (1) পাস থেকে পরীক্ষা করুন ।
- সদৃশ অপসারণ অপসারণ, এবং অন্যথায় নকশা উন্নত করতে প্রয়োজন হিসাবে। এই পদক্ষেপগুলি ব্যবহার সম্পর্কে কঠোর হন:
- আপনি একটি নতুন পদ্ধতি চান ref রিফ্যাক্টরিং অবধি অপেক্ষা করুন, তারপরে ... এর মধ্যে একটি করে নতুন (পরীক্ষা না করা) পদ্ধতি তৈরি করুন এবং অন্য কোনও উপায়ে:
- পছন্দসই: পরীক্ষার ক্লাসে একটি নতুন পদ্ধতি তৈরি করতে (3) হিসাবে তৈরি করা প্রয়োগের কোডে এক্সট্র্যাক্ট পদ্ধতি করুন বা
- যদি আপনার অবশ্যই হয়: (3) হিসাবে বাস্তবায়ন কোডটি একটি বিদ্যমান বাস্তবায়ন পদ্ধতিতে সরান
- আপনি একটি নতুন ক্লাস চান ref রিফ্যাক্টরিং অবধি অপেক্ষা করুন, তারপরে ... একটি সরানো পদ্ধতির জন্য গন্তব্য সরবরাহ করার জন্য এবং অন্য কোনও কারণে বিনা-পরীক্ষা ক্লাস তৈরি করুন
- মুভ মেথড করে অন্য কোন উপায়ে পদ্ধতি প্রয়োগের সাথে ক্লাসগুলি স্থাপন করুন
এই নিয়মগুলি টিডিডি অনুশীলনের জন্য। এগুলি আসলে উত্পাদনে টিডিডি করার জন্য নয় (যদিও কিছুই আপনাকে এটি চেষ্টা করে থামায়)। তারা হতাশাবোধ করতে পারে কারণ এটি কখনও কখনও মনে হয় আপনি হাজার হাজার কিশোরকে ছোট ছোট ছোট পদক্ষেপ করেন কোনও সত্যিকারের অগ্রগতি না করেই।