পরীক্ষা চালিত উন্নয়ন - আমাকে বোঝাতে! [বন্ধ]


30

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

  1. আপনি কোন প্রকল্পগুলির জন্য পরীক্ষা-চালিত বিকাশ ব্যবহার করেন? আপনি কি কেবল এটি নির্দিষ্ট আকারের প্রকল্পের জন্য ব্যবহার করেন?
  2. আমি এটা ব্যবহার করা উচিত বা না? আমাকে রাজী করাও!

3
শুধু পরীক্ষা লিখতে আমার এত কষ্ট হচ্ছে। এটি এমন পর্যায়ে পৌঁছেছে যেখানে আমি ম্যানুয়ালি সমস্ত কিছু যাচাই করি।
TheLQ

: এই প্রশ্ন কটাক্ষপাত আছে stackoverflow.com/questions/301693/...
systempuntoout

1
@ দ্য এলকিউ ... আমার গ্রাহককে বলার চেষ্টা করুন যে আমার ফ্লাইট-নিয়ন্ত্রণ সফ্টওয়্যারটি ঠিক আছে কারণ আমি একটি ম্যানুয়াল কোড পর্যালোচনা করেছি :-)
অ্যান্ড্রু

উত্তর:


32

ঠিক আছে, টিডিডির কিছু সুবিধা:

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

আপনি বিশ্বাস করতে বলেছিলেন, সুতরাং এগুলি সুবিধা ছিল। দেখুন এই প্রশ্নের আরও ভারসাম্যপূর্ণ দেখার জন্য।


10
"টেস্টেবল ডিজাইন প্রায় সবসময়ই ভাল ডিজাইন" - আমি মনে করি এর মূল কারণটি হচ্ছে টেস্টেবল কোডটি সাধারণত মডুলার এবং সরলিকৃত নির্ভরতা সহ।
স্কিলড্রিক

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

3
@ ড্যারেনডাব্লু- আমি আপনাকে ঘৃণা করি না, তবে জিনিসগুলি ভেঙে ফেলার পরিবর্তে আমি কাজগুলি করতে চাই। এটি বলেছিল, যে কেউ আপনার পরামর্শ মতো মনে করে সে পরীক্ষক হিসাবে হেল্লা মূল্যবান। বিশ্বে পর্যাপ্ত মানের QA ছেলেরা নেই।
ফিশটোস্টার

আমি এই পিডিএফের লিংকে 403 নিষিদ্ধ ত্রুটি পেয়ে যাচ্ছি
নিল এন

আমি নিশ্চিত যে একই পিডিএফ ছিল তা আপডেট হয়েছে (এটি কয়েক বছর আগে ছিল)
ফিশটোস্টার

11

রবার্ট সি মার্টিন মূলত এই বিষয়গুলি তৈরি করেছেন - আমি আমার নিজের অভিজ্ঞতা থেকে সেগুলি ব্যাক আপ করতে পারি:

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

আমি বেশিরভাগ সময় টিডিডি করি, আমি প্রযোজনায় বা প্লে কোডে কাজ করছি কিনা; আজকাল অন্য কোনও উপায়ে কোড করা আমার পক্ষে কঠিন মনে হচ্ছে।


6

(অস্বীকৃতি: আমি খুব কমই কোনও ইউআই স্টাফ করি, তাই আমি ইউআইএসের জন্য টিডিডি নিয়ে আলোচনা করতে পারি না))

তুচ্ছ অ্যাপ্লিকেশন থেকে শুরু করে পুরো এসআইপি স্ট্যাকের মধ্যে আমি যা করি তার সবকিছুর মধ্যে আমি টিডিডি ব্যবহার করি।

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


1
  • যখনই আপনার ক্লায়েন্টকে আরও কার্যকরভাবে সরবরাহ করা যায় (তারা সম্ভবত পরীক্ষাগুলির সাথে ভালভাবে সম্পর্কিত হবে - এবং এটি প্রকল্পের শেষের আলোচনায় কমপক্ষে কেটে যাবে)
  • যখনই আপনার সহ-বিকাশকারীদের পরীক্ষা তৈরির প্রচেষ্টা চালিয়ে যাওয়ার চেয়ে কোডের প্রত্যেকটিতেই অবহিত রাখতে হবে - এবং এটি আপনার মনে হতে পারে তার চেয়ে শীঘ্রই

-1

কি? কোন নেতিবাচক উত্তর !?

দাবি অস্বীকার: আমি অ্যান্টি ইউনিট-পরীক্ষা করছি না। লোকেরা যখন টিডিডি বলে, আমি ধরে নিই তারা রোগ-শব্দদায়ক সংস্করণ বোঝায় যেখানে তারা লেখার আগে সমস্ত কোডের ৮০-১০০% কোড লেখার আগে তারা পরীক্ষা লিখছেন writing

আমি তর্ক করব:

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

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

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

  • ডিজাইন ফোকাস: এমনকি কোনও ভাল বিকাশকারী পরীক্ষার দিকে মনোনিবেশ করার সময় তাদের পক্ষে সেরা কোডটি লিখতে চলেছেন এমন কোনও উপায় নেই। যদি মনে হয় আপনি কেবল একটি সুন্দর নকশা তৈরি করতে পারেন তবে আমি "আসল সমস্যাটির দিকে মনোনিবেশ করার" বিষয়ে উপরেরটি দেখার পরামর্শ দিই recommend

  • ম্যাক্রো-ডিজাইন ব্যর্থ: আমার বর্তমান কাজের কোডবেসটি এমন ইন্টারফেসগুলির সাথে ছাঁটাই হয়েছে যা কখনও কখনও কখনও ব্যবহৃত হয় না এবং বেসিক ডিআরওয়াই নীতিটির ব্যাপক লঙ্ঘন হয় যা আমি অবশেষে বুঝতে শুরু করি যখন লোকেরা পরীক্ষা-কাঠামোর জন্য পরীক্ষা করছে এবং পরীক্ষায় লিখিত ছিল সাধারণ. পরীক্ষার ফলে বোকা আর্কিটেকচারের দিকে যাওয়া উচিত নয়। সত্যিই না, 20 টি ফাইল অনুলিপি করা এবং আটকানো এবং তারপরে কেবল দুটির ক্ষেত্রেই উল্লেখযোগ্য পরিবর্তন করা যায় এমন কোনওরকম বেশি মাপের বা এন্টারপ্রাইজ যোগ্য নয় worthy ধারণাটি হ'ল উদ্বেগগুলি পৃথক করা, তাদের মাঝখানে ভাগ করে নেওয়া নয়। ক্রাফ্ট এবং অর্থহীন বিমূর্ততা আপনাকে 95% কভারেজ কখনও দেবে না তার চেয়ে বেশি ব্যয় করবে।

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


বাহ ডাউনভোটাররা কেবল শিরোনাম Q পড়ুন এবং সামগ্রীগুলি নয়।
এরিক পুনরায়

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