টিডিডি বনাম ইউনিট পরীক্ষা করা [বন্ধ]


117

আমার সংস্থাটি আমাদের কোড পরীক্ষার জন্য ইউনিটে মোটামুটি নতুন। আমি কিছু সময়ের জন্য টিডিডি এবং ইউনিট পরীক্ষার বিষয়ে পড়ছি এবং তাদের মান সম্পর্কে নিশ্চিত convinced আমি আমাদের দলকে বোঝানোর চেষ্টা করেছি যে টিডিডি আমরা কীভাবে প্রোগ্রাম করি সে সম্পর্কে আমাদের মানসিকতগুলি শিখতে ও পরিবর্তন করার প্রচেষ্টা মূল্যবান তবে এটি একটি সংগ্রাম। যা আমাকে আমার প্রশ্নে নিয়ে আসে।

টিডিডি সম্প্রদায়ের মধ্যে অনেকেই আছেন যারা পরীক্ষা লেখার বিষয়ে অত্যন্ত ধার্মিক এবং তারপরে কোডটি (এবং আমি তাদের সাথে রয়েছি), তবে যে টিডি টিডিডি নিয়ে লড়াই করে যাচ্ছেন তার জন্য কি কোনও আপস করার ফলে আরও বাড়তি সুবিধা পাওয়া যায়?

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

সংগ্রামী দলকে টিডিতে আনার সর্বোত্তম উপায় কী? এবং ব্যর্থ যে এটি এখনও ইউনিট টেস্টগুলি লেখার পক্ষে মূল্যবান হলেও কোডটি লেখার পরে?

সম্পাদনা

আমি যা এড়িয়ে গিয়েছি তা হ'ল কোডিং প্রক্রিয়াতে কোথাও কোথাও ইউনিট পরীক্ষা শুরু করা আমাদের পক্ষে গুরুত্বপূর্ণ। দলে যারা ধারণাটি গ্রহণ করেন তাদের ক্ষেত্রে, প্রথমে টিডিডি এবং পরীক্ষার দিকে আরও এগিয়ে যেতে শুরু করুন। প্রত্যেকের ইনপুট জন্য ধন্যবাদ।

অনুসরণ করুন

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


1
আপনি এই থ্রেডটি সহায়ক হিসাবে পেতে পারেন: stackoverflow.com/questions/917334/should-i-use-tdd
র্যান্ডলফো

29
অনুসরণ করুন আপের জন্য +1। এটি দুর্দান্ত গল্প।
কার্ল ম্যানাস্টার

উত্তর:


76

দলটি যদি টিডিডি বাস্তবায়নে ঝাপটায়, তবে তারা এর আগে কোনও ইউনিট টেস্ট তৈরি করছিল না ... তবে তাদের কোড লেখা হওয়ার পরে ইউনিট টেস্ট তৈরি করে এগুলি শুরু করুন। এমনকি কোডের পরে লেখা ইউনিট পরীক্ষাগুলি কোনও ইউনিট টেস্টের চেয়ে ভাল!

একবার তারা ইউনিট টেস্টিংয়ে দক্ষ হয়ে ওঠার পরে (এবং এটির সাথে আসে সমস্ত কিছু), তারপরে আপনি তাদের প্রথম পরীক্ষা তৈরির জন্য ... এবং দ্বিতীয় কোডটি তৈরির বিষয়ে কাজ করতে পারেন।


3
এটি সঠিক যে দলটি আগে কোনও ইউনিট পরীক্ষা তৈরি করছিল না। এটি পুরো টিডিডিতে একটি দুর্দান্ত পদক্ষেপের মতো অনুভব করে।
ওয়াল্টার

এর সাথে আরও একমত হতে পারে না। আসলে, আমি মনে করি আমি কয়েক মাস আগে অনুরূপ প্রশ্নের জন্য অনুরূপ কিছু লিখেছিলাম। কই ... আঃ! স্ট্যাকওভারফ্লো
র্যান্ডলফো

27

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

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


16

"প্রথম কোড, পরীক্ষার পরে পরীক্ষা" এবং 100% পরীক্ষার কভারেজের চেয়ে 100% সমাপ্ত লাইব্রেরি এবং টিডিডি সহ 50% সমাপ্ত লাইব্রেরি সহ আমার 50% পরীক্ষার কভারেজ থাকা আমার নম্র মতে ভাল। কিছুক্ষণ পরে, আপনার সহকর্মী বিকাশকারীরা আশা করি publicতারা যে কোডটি লেখেন সেগুলির জন্য পরীক্ষাগুলি লেখার জন্য এটি বিনোদনমূলক এবং শিক্ষামূলক বলে মনে করবে, তাই টিডিডি তাদের বিকাশের রুটিনে ঝাঁপিয়ে পড়বে।


3
আমি আপনার বামনা পেয়েছি তবে 50% পরীক্ষা কভারেজ সহ "100% সমাপ্ত লাইব্রেরি" সম্পর্কে আমি সতর্ক রয়েছি ... ঠিক আমার অভিজ্ঞতা থেকে যে কোডের প্রতিটি টুকরো যা কিছু পরীক্ষার আওতায় আসে না তাতে কমপক্ষে একটি বাগ থাকে। বা অন্যভাবে বলতে গেলে: লোকেরা কোডের জন্য টেস্ট লেখার বিষয়টি এড়িয়ে যাওয়ার
প্রবণতা দেখায়

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

3
"100% সমাপ্ত লাইব্রেরি" বলতে আপনার অর্থ কী? বগি যদি আপনি এটি সম্পূর্ণ হিসাবে বিবেচনা করেন? আপনি সম্পন্ন সংজ্ঞা পরীক্ষিত অন্তর্ভুক্ত করবেন না?
পাস্কাল থিভেন্ট

10
পরীক্ষা করা হচ্ছে অবশ্যই যথেষ্ট শর্ত বাগ মুক্ত হতে নয়
ফার্সী।

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

12

আমি কেবল এটি একটি ক্যালেন্ডারে পড়েছি: "প্রতিটি নিয়ম, এর সর্বোচ্চ প্রয়োগ করা হাস্যকর বা এমনকি বিপজ্জনক হয়ে ওঠে" " সুতরাং আমার পরামর্শটি এ সম্পর্কে ধর্মীয় হওয়ার নয়। আপনার দলের প্রত্যেক সদস্যকে যখন পরীক্ষার বিষয়টি আসে তখন তাদের "সঠিক" মনে হয় তার মধ্যে একটি ভারসাম্য খুঁজে নিতে হবে। এইভাবে, আপনার দলের প্রতিটি সদস্যই সবচেয়ে উত্পাদনশীল হবে (পরিবর্তে বলুন, "আমাকে এই স্টি **** পরীক্ষা কেন লিখতে হবে ??") ভেবে।

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


"তারা কী অনুভব করে" বিকাশকারী হিসাবে আমার নিজের অনুভূতির মাধ্যমে কোনও স্বয়ংক্রিয় ইউনিট পরীক্ষা করার কোনও (সঠিক) ইচ্ছা থাকার কথা মনে নেই, কেবল ম্যানুয়াল ones আমি মনে করি না যে আমি একা পরীক্ষায় উত্তেজনার অভাব বোধ করছি
জেনাডি ভ্যানিন

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

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

12

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

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


3
+1: টেস্ট চালিত বিকাশ মানে ডিজাইনটি বিবেচনার দ্বারা পরীক্ষিত হয়েছিল।
এস .লট

+1 টি। পরবর্তীতে ইউনিট পরীক্ষাগুলি অবশ্যই আপনাকে সহায়তা করবে তবে আপনি ইউনিট পরীক্ষাগুলি সামনে না লিখলে "টেস্টেবল ডিজাইন" থাকার সুবিধা হারাবেন।
নওফাল ইব্রাহিম

9

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

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


6

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

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

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


4

এটি এমন কিছু যা আপনার দলটিকে বিশ্বাস করতে শুরু করার আগে তার নিজের সাফল্যগুলি অর্জন করতে হবে I'll আমি যে কাউকে যত্নশীল তার জন্য আমি আমার ইউনাইট এপিফ্যানির কথা ভাবি:

প্রায় 5 বছর আগে আমি একটি প্রকল্পে কাজ করার সময় অন ইউনাইট আবিষ্কার করেছি। আমরা ভি 1.0 প্রায় শেষ করে ফেলেছি এবং এই নতুন সরঞ্জামটি চেষ্টা করার জন্য আমি কয়েকটি পরীক্ষা তৈরি করেছি। আমাদের প্রচুর বাগ (স্পষ্টতই!) ছিল কারণ আমরা একটি নতুন দল, একটি শক্ত সময়সীমার উপর, উচ্চ প্রত্যাশাগুলিতে (পরিচিত শব্দ?) ইত্যাদি যাইহোক আমরা ১.০ পেয়েছি এবং ১.১ এ শুরু করেছি। আমরা দলটিকে কিছুটা পুনরায় সংগঠিত করেছি এবং আমার কাছে 2 টি ডিভাইস বরাদ্দ পেয়েছি। আমি তাদের জন্য 1 ঘণ্টার একটি ডেমো করেছি এবং তাদের বলেছিলাম যে আমরা যা লিখেছি তার সাথে একটি পরীক্ষার কেস আছে। আমরা নিয়মিতভাবে 1.1 দেব চক্র চলাকালীন দলের বাকি দলগুলিতে "পিছনে" দৌড়েছিলাম কারণ আমরা আরও কোড লিখছিলাম, ইউনিট পরীক্ষা করে। আমরা আরও কাজ শেষ করেছিলাম তবে এখানে অর্থ প্রদান - অবশেষে যখন আমরা পরীক্ষায় নামলাম তখন আমাদের কোডটিতে ঠিক 0 টি বাগ ছিল। আমরা প্রত্যেককেই তাদের বাগগুলি ডিবাগ করতে ও মেরামত করতে সহায়তা করেছি। পোস্টমর্টেমে, যখন বাগের সংখ্যাগুলি দেখানো হয়েছিল,

আমি সাফল্যের পথে আপনার পরীক্ষা করতে পারবেন এমন ভেবে আমি যথেষ্ট বোকা নই তবে ইউনিট পরীক্ষার ক্ষেত্রে আমি সত্য বিশ্বাসী। প্রকল্পটি ইউনাইট গ্রহণ করেছে এবং এটি শীঘ্রই সকলের জন্য সংস্থায় ছড়িয়ে পড়ে 1 1 সাফল্যের ফলে নেট প্রকল্পগুলি। আমাদের ভি 1.1 প্রকাশের জন্য মোট সময়কাল 9 দেব সপ্তাহ ছিল তাই এটি অবশ্যই রাতারাতি সাফল্য নয়। তবে দীর্ঘমেয়াদী, এটি আমাদের প্রকল্প এবং যে সংস্থার জন্য আমরা সমাধান তৈরি করেছি তার পক্ষে এটি সফল প্রমাণিত হয়েছিল।


"প্রকল্পটি ইউনাইট গৃহীত করেছে এবং শীঘ্রই এটি সকলের জন্য সংস্থায় ছড়িয়ে পড়ে et নেট প্রকল্পগুলি" এবং যদি কোনও পণ্য / প্রকল্পে সি #, জাভা, সি ++, এসকিউএল সার্ভার কোড থাকে তবে কী করবেন?
জেনাদি ভ্যানিন Геннадий Ванин

আমি ডুনো ... আপনি প্রোডাক্টে মোতায়েনের আগে সমস্ত উপাদানকে পরীক্ষা করার একটি উপায় খুঁজে বের করুন? ইউনিট টেস্টিং লাইভ হওয়ার আগে একটি বিস্তৃত পরীক্ষা পরিকল্পনার একমাত্র দিক। আপনি যে কোনও দৃশ্যে ছিদ্র করতে পারেন।
কোনও রিফান্ড নেই কোনও রিটার্ন 20

4

সন্দেহ নেই যে পরীক্ষার (প্রথম, যখন বা তার পরেও) আপনার বেকন সংরক্ষণ করবে এবং আপনার উত্পাদনশীলতা এবং আত্মবিশ্বাসকে উন্নত করবে। আমি এটি গ্রহণ সুপারিশ!

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


3

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

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


3

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

টেস্টগুলি লেখার আগে কোডটি লেখার আগে কী করা উচিত তা ফোকাস করা। হ্যাঁ আপনি এটিও করে একটি পরীক্ষা পেয়েছেন এবং এটি ভাল, তবে কেউ কেউ যুক্তি দিতে পারেন যে এটি সবচেয়ে গুরুত্বপূর্ণ বিষয়ও নয়।

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


3

কোড লেখার আগে যদি আপনার ডিজাইন সেশন থাকে বা ডিজাইন ডক তৈরি করতে হয়, তবে আপনি ইউনিট টেস্টগুলি একটি সেশনের মজাদার ফলাফল হিসাবে যুক্ত করতে পারেন।

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

একপাশে তবে বিডিডিও আগ্রহী হতে পারে


আমি বিডিডি সম্পর্কে অসচেতন ছিলাম। আমি এটি সম্পর্কে আরও পড়তে হবে।
ওয়াল্টার

3

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

আপনি যদি সময়, ব্যয়, কোড এবং বাগের সংরক্ষণের ক্ষেত্রে স্পষ্টভাবে মানটি প্রদর্শন করতে পারেন তবে আপনি এটি আরও সহজ বিক্রয় হিসাবে দেখতে পাচ্ছেন।


2

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

রক্ষণাবেক্ষণ প্রক্রিয়াটির জন্য দলটিকে লাইনের ওপরে নিয়ে আসার পদ্ধতির জন্য আপনি বাগগুলি ঠিক করার আগে পুনরুত্পাদন করতে JUnit পরীক্ষা লিখতে হবে, যেমন

  • বাগ রিপোর্ট করা হয়
  • প্রয়োজনে JUnit পরীক্ষা ক্লাস তৈরি করুন
  • একটি পরীক্ষা যুক্ত করুন যা বাগের পুনরুত্পাদন করে
  • আপনার কোড ঠিক করুন
  • বর্তমান কোডটি বাগের পুনরুত্পাদন করে না তা দেখানোর জন্য পরীক্ষা চালান

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


2

আমি অনেক সংস্থায় এটি করেছি এবং টিডিডি শুরু করার জন্য আমি একক সর্বোত্তম উপায় খুঁজে পেয়েছি এবং এরপরে জোড় প্রোগ্রামিং স্থাপন করা to আপনার যদি অন্য কেউ থাকে তবে আপনি এটি টিডিডি জানে তা বিশ্বাস করতে পারেন তবে আপনি দুজন আলাদা হয়ে যেতে পারেন এবং অন্য বিকাশকারীদের সাথে জুটি দিতে পারেন টিডিডি ব্যবহার করে কিছু জোড় যুক্ত প্রোগ্রামিং করতে। যদি না হয় তবে আমি এমন কাউকে প্রশিক্ষণ দেব যা আপনাকে দলের বাকি সদস্যদের কাছে উপস্থাপন করার আগে এটি করতে সহায়তা করবে।

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

এই পদ্ধতির অতীতে আমার জন্য অনেকবার কাজ করেছে।


2

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

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


1

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

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

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

এটি প্রযুক্তিগত হিসাবে যতটা সামাজিক / সাংস্কৃতিক পরিবর্তন।

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