পরীক্ষার প্রথম প্রোগ্রামিংয়ের অসুবিধাগুলি কী কী?


47

আজকাল সব রাগ। "প্রত্যেকে" এটির প্রস্তাব দেয়। এটি এবং নিজেই আমাকে সন্দেহজনক করে তোলে।

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

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

উত্তর:


41

বেশ কয়েকটি আছে, কিন্তু সুবিধার পর্যন্ত অসুবিধেও অতিক্রম করা।

খাড়া শেখার বক্ররেখা আছে।

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

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

আপনি সামনে আরও কোডিং করেন।

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

পরিচালকদের কাছে শক্ত বিক্রয় হতে পারে।

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

সহযোগী বিকাশকারীদের কাছে শক্ত বিক্রয় হতে পারে।

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

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


এগুলি ভাল উত্তর, তবে # 1 সম্পর্কে আরও নির্দিষ্ট হতে পারে? আমি কীভাবে আপনি / আপনার প্রোগ্রামিংয়ের গতি পুনরুদ্ধার করতে সক্ষম হয়েছিলেন তা শুনতে আগ্রহী - আপনি কী শিখলেন যে আপনি যখন টিডিডি শুরু করেছিলেন তখন জানেন না?
অ্যালেক্স ফেনম্যান

কিছু ব্যাখ্যা দিতে আপডেট হয়েছে
জ্যাকো প্রিটোরিয়াস

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

1
@ জেফো আপনি কি "আমি নিজেকে একটি মিনিভান লিখতে চলেছি!" এর সাথে পরিচিত? কোডিং স্কুল?
অ্যালেক্স ফেনম্যান

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

35

টেস্ট-প্রথম ধরে ধরে নেওয়া হয় আপনি কোড লিখছেন যা:

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

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

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

উদাহরণ:

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

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


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

উদাহরণ বিভাগ যুক্ত করতে সম্পাদিত
বিল

4
একমত। টিডিডি কাজ করে মনে হচ্ছে আপনি যে মেশিনগুলির সাথে কাজ করছেন সেগুলি সম্পর্কে অনুমানের একটি সেট উপর নির্ভর করে; আমার প্রায় 50% প্রকল্পের জন্য এটি সত্য বলে মনে হচ্ছে না।
পল নাথান

আমি পুরোপুরি একমত ... দুর্দান্ত উত্তর
খেলাবেন

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

25

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

একজন ভাল প্রকৌশলী ট্রেড অফ খুঁজে পান এবং কখন / কোথায় / কীভাবে প্রথম-প্রথম প্রয়োগ করতে হবে তার সঠিক ব্যালেন্স প্রয়োগ করে। এছাড়াও, যদি আপনি সত্যিকারের কোডের পরিবর্তে (২-৩ বা আরও বেশি ফ্যাক্টর দ্বারা) পরীক্ষা করে নিজেকে ক্রমাগত আরও বেশি সময় ব্যয় করে থাকেন তবে আপনি সমস্যায় পড়েছেন।

অন্য কথায়, টিডিডি (বা সেই বিষয়ে সফটওয়্যার বিকাশের কোনও কিছু) এর সাথে ব্যবহারিক এবং যুক্তিযুক্ত হন be


তা কি, সম্ভবত, মাইকেল ফেভার্সের লিগ্যাসি কোডের "নতুন" সংজ্ঞা (যেমন "টেস্ট ছাড়াই কোড") এসেছে?
ফিলি ডাব্লু।

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

6

আমি ২০০৯ সালের আগস্টের শুরুতে টিডিডি করা শুরু করেছিলাম এবং আমার সম্পূর্ণ সংস্থাকে সেপ্টেম্বর / অক্টোবর ২০০৯ এ এটির দিকে নিয়ে যেতে রাজি করিয়েছিলাম ly এটি আমাদের পক্ষে দুর্দান্ত কাজ করেছে এবং আমি কাউবয় কোডিংয়ে ফিরে যেতে ভাবতে পারি না।

তবে দুটি সমস্যা রয়েছে যা বেশ লক্ষণীয়।

পরীক্ষার স্যুট বজায় রাখতে হবে

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

পরীক্ষার বিমূর্ততা সময়ে সময়ে ফাঁস হয়

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

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

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


3
+1 টি। "বজায় রাখতে হবে": পুনরায় ব্যবহারযোগ্য কোডটি পরীক্ষা করার সময় এটি কোনও সমস্যার তুলনায় কম, কারণ এর ইন্টারফেস এবং আচরণটি সাধারণত স্থিতিশীল হওয়া প্রয়োজন। এই কারণে, আমি সাধারণত আমাদের পুনরায় ব্যবহারযোগ্য লাইব্রেরির জন্য কেবল টিডিডি করি।
দিমিত্রি সি

4

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

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


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

1
এটি কেবল দেখায় যে বিভিন্ন ব্যক্তি সত্যই ভিন্নভাবে প্রতিক্রিয়া দেখায়। আমি টিডিডি-কে ধমক দিচ্ছি না - স্পষ্টতই বেশ কিছু লোক এটিকে দরকারী বলে মনে করে - তবে সত্যটি হ'ল এটি সবার পক্ষে নয়।
জুনাস পুলক্কা

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

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

আপনি কি রিফ্যাক্টরিং স্টেপ ছেড়ে যাচ্ছেন?
rjnilsson

2

পরীক্ষার প্রথমটি সত্যিই আমার পথে আসে এমন একটি পরিস্থিতি হ'ল যখন আমি দ্রুত কিছু ধারণা চেষ্টা করে দেখতে চাই এবং সঠিকভাবে প্রয়োগ করার আগে এটি কাজ করতে পারে কিনা তা দেখুন।

আমার পদ্ধতির সাধারণত:

  1. চলমান কিছু কার্যকর করুন (ধারণার প্রমাণ)।
  2. যদি এটি কাজ করে তবে পরীক্ষা যোগ করে, নকশাটি উন্নত করে, রিফ্যাক্টরিং করে সংহত করুন।

কখনও কখনও আমি 2 ধাপে উঠি না।

এই ক্ষেত্রে, টিডিডি ব্যবহার করা আমার জন্য সুবিধাগুলির চেয়ে আরও অসুবিধাগুলিতে পরিণত হয়েছে:

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

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


1
মনে হচ্ছে আপনি প্রোটোটাইপ কোডটি ব্যবহারযোগ্য কোড সহ বিভ্রান্ত করছেন। প্রোটোটাইপ কোড হল পরীক্ষার কোড । এটি পরীক্ষা করার দরকার নেই এবং আপনার বিরুদ্ধে পরীক্ষা চালানো উচিত নয়। আপনি যে পদক্ষেপটি নিখোঁজ রয়েছেন তা 1. এবং 2 এর মধ্যে রয়েছে: আপনি "পরীক্ষাগুলি লিখে সংহতকরণ" করেন। সমস্যাটি হ'ল আপনার একীকরণের মতো কিছু নেই, তবে লেখার মতো কিছু। প্রোটোটাইপ কোডটি পুনরায় লেখার পরিকল্পনা করুন , এটি পুনরায় ব্যবহার করার পরিকল্পনা করবেন না। এটি পুনরায় ব্যবহার করা আপস করার জন্য প্রচুর জায়গা ছেড়ে যায়। পুনর্লিখন আপনার অনুসন্ধানের পর্ব এবং আপনার "মানের কোড" পর্বের মধ্যে বিভাজনকে আনুষ্ঠানিক করে।
utnapistim

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

3
@ ইউটিপিস্টিম: লুইস.এসপিনালের জবাবটিও দেখুন: "আমি যে বৃহত্তম ত্রুটি দেখেছি তা টিডিডির সাথে নয়, অনুশীলনকারীদের দ্বারা।
জর্জিও

1

টিডিডির অসুবিধাগুলি বা ব্যয়

দ্রষ্টব্য: বিভিন্ন ধরণের টিডিডি রয়েছে। ইউনিট, বিডিডি, এটিডিডি বা অন্যান্য রূপগুলি নির্বিশেষে অনেকগুলি অসুবিধা থেকেই যায়

ক্ষতিকর দিক

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

  • উপহাস: কলগুলির ক্রম জোড় করতে ভুলবেন না
  • উপহাস: মক আসল কল বা প্রতিক্রিয়াটির সাথে মেলে না
  • স্থিতি: পরীক্ষা অন্যান্য সমস্যাগুলি মাস্ক করে অবাস্তব ডেটার উপর নির্ভর করে
  • স্থিতি: উত্পাদন একটি অসম্ভব রাষ্ট্র পরীক্ষা
  • কার্যকরী: নির্ভরশীল সিস্টেম অস্থায়ীভাবে অনুপলব্ধ থাকার কারণে ভুয়া বিল্ড ব্রেক
  • কার্যকরী: পরীক্ষার গতি খুব ধীর

কোডিংয়ের ক্ষেত্রে আপনাকে আপনার দৃষ্টিভঙ্গি পরিবর্তন করতে হবে, কারও কারও পক্ষে এটি একটি কঠোর পরিবর্তন হবে।

বিভিন্ন লোক বন্যভাবে বিভিন্নভাবে কোড দেয়। টিডিডিতে আপনাকে একটি পরীক্ষা দিয়ে শুরু করতে হবে যা একটি নির্দিষ্ট আচরণকে দৃser়ভাবে জোর দেয় এবং তারপরে পরীক্ষাটি পাস করে কার্যকর করে implement আমি দেখেছি এবং একজন প্রোগ্রামার ছিলাম যার প্রোগ্রামিং টিডিডির পক্ষে অনুকূল ছিল না। আমার প্রথম দিকে আমার বিকাশের পদ্ধতির পরিবর্তন করতে অভ্যস্ত হতে শুরু করলে আমার প্রায় 2 মাস লেগেছিল।

আপনি টেস্টিং সম্পর্কে কী যত্ন করেন এবং আপনি কী টেস্টিংয়ের বিষয়ে যত্নশীল না তা বুঝতে সময় লাগে।

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

ইউনিট পরীক্ষা নির্দিষ্ট: বড় অশোধক

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


0

আমার উপমাটি স্কেলেক্সট্রিক ট্র্যাকের অন্তরায় is যদি আপনি এগুলি রাখেন, তবে আপনি অনেক কম সতর্ক হন।

লোকেরা তাদের পরীক্ষাগুলি সম্পর্কে কিছুটা স্পেস ক্যাডেটিশও পায় - কারণ তারা জরিমানা চালায়, তারা বিশ্বাস করে যে কোডটি পুরোপুরি পরীক্ষিত হয়েছে যদিও এটি পরীক্ষার প্রক্রিয়াটির কেবল শুরু beginning

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


-1

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


1
যদি আপনি নিজেরাই নিজের কোডটি বুঝতে না পারেন, তবে কয়েক বিলিয়ন সম্ভাব্য টেস্টকেসগুলির মধ্যে মুষ্টিমেয়রা কীভাবে কোডটি ভুল হওয়ার বিরুদ্ধে রক্ষা করতে পারে?
মাইকেল শ

2
কারণ আপনি যখন এটি লিখেছিলেন তা বুঝতে পেরেছেন তবে পথটি ভুলে গেছেন?
জোহান

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