সীমিত সংস্থান সহ টিডিডি


13

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

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

টিডিডি এর সুবিধাগুলি কি খুব টাইট শিডিয়ুল সহ ছোট দলগুলিতে অতিরিক্ত বিকাশের সময় মূল্যবান?


এলওবি কিসের পক্ষে দাঁড়ায়? ব্যবসার ক্ষেত্রে?
জিনাত

উত্তর:


14

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

আমি যখন টিডিডি-র বিশাল প্রবক্তা হয়েছি (আমি এটি আমার বর্তমান চাকরিতে নিয়ে এসেছি) আমার মনে হয় অনুশীলনটি অন্বেষণ করতে এবং বুঝতে আপনার একটু শ্বাসকষ্ট (সময়সীমা / সময়সীমা) থাকা দরকার।

আপনার দল যত ছোট হবে ততক্ষণ আপনি টিডিডি থেকে উপকৃত হতে পারবেন। আমি এই পেমেন্টটি টিম আকারে 6 থেকে 3 এর মধ্যে দেখেছি।


2
+1: এটি উন্নয়নের সময় সাশ্রয়ের বিষয়ে নয়, এটি ডিবাগিং এবং রক্ষণাবেক্ষণের সময় (প্রচুর!) সাশ্রয় করে।
জাভিয়ের

4
"যদি আপনি মনে করেন পরীক্ষার প্রথমটি ব্যয়বহুল, পরে ডিবাগ করার চেষ্টা করুন"
রায়ান বিগ

@ রায়ান বিগ: আমি সম্মত হই যে ইউনিট পরীক্ষাগুলি ডিবাগিংয়ের পক্ষে দুর্দান্ত সমর্থন তবে ভালভাবে লিখিত কোডটি কোনও traditionalতিহ্যবাহী ডিবাগারের সাথে ডিবাগ করা সত্যিই কঠিন নয়।
জর্জিও

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

10

আপনি যে অতিরিক্ত বিকাশের সময় কথা বলছেন তা মায়া হতে পারে

টিডিডি কে স্ট্যান্ডার্ড ইউনিট পরীক্ষার থেকে আলাদা করে তোলে তা হ'ল এটি কেবল পরীক্ষার জন্য ব্যবহৃত হয় না।

TDD is a new way of developing software। এটি আমার জানা সবচেয়ে ভাল উপায়।

অতএব, এটি আপনার প্রকল্পের আকারের সাথে সম্পর্কিত নয়। আপনি কোডের প্রথম লাইন থেকে সুবিধাগুলি নিষ্কাশন করবেন

  • এটি আপনাকে আপনার কোডটি এমনভাবে গঠন করতে বাধ্য করবে যাতে এটি বজায় রাখা এবং পুনরায় ব্যবহার করা সহজ হবে be এটি আপনার সফ্টওয়্যারটির নকশা চালায়।
  • এটি দ্রুত, নিরাপদ এবং উপভোগ্য রিফ্যাক্টরিং তৈরি করবে।
  • এটি আপনাকে কার্যকারিতার ছোট ছোট অংশগুলি লিখতে সহায়তা করে যা কার্যগুলির বাস্তবায়নকে আরও সহজ করে তোলে।
  • এটি সাধারণত ডিবাগিংয়ের কাজটি কম ঘন করে তোলে।

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

2
এটি একটি বিভ্রম নাও হতে পারে। নতুন অনুশীলনটি শুরু করতে কিছুটা সময় নিতে পারে। বিশেষত যদি এটির কাজ কে করেছে তার আশেপাশে কেউ না থাকে। আমি বলব এটি অভ্যন্তরীণভাবে যেতে পারে।
ডায়েটবুদ্ধ

@ ডায়েটবুদ্ধ: আমি এটির সাথে একমত, আমি কিছু দাবি অস্বীকার করতে দ্বিধা বোধ করি, তবে ভালভাবে প্রয়োগ করার সাথে সাথে আমি টিডিডি-তে আসল সুবিধার উপর জোর দিতে চাই।

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

1
@ মুরফ: আপনি কি ইউআই-তে নিবিড় অ্যাপ্লিকেশনগুলিতে কাজ করছেন? আমি যখন এই জাতীয় অ্যাপ্লিকেশনগুলিতে কাজ করি তখন এটি ব্যবহার বন্ধ করে দেই tend

8

সাধারণ ভুল ধারণা, আমি এটি চিৎকার করে বলি:

টিডিডিতে পরীক্ষা বৈশিষ্ট্যগুলি রয়েছে

EOM।

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


1
সাধারণ ভুল ধারণা, টিডিডি প্রকল্প পরীক্ষা উত্পন্ন করে। বাস্তবতা টিডিডি প্রজেক্টের স্পেসিফিকেশন উত্পন্ন করে।
নাম প্রদর্শন করুন

3

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

শিল্প ইউনিট পরীক্ষার কভার


1

এর জন্য কয়েকটি প্রশ্নের উত্তর পাওয়ার দরকার রয়েছে:

  1. কোডটিতে রিলিজ ফিক্সিংয়ের পরে আপনি কতটা সময় ব্যয় করবেন? আপনি যদি এটি মাপদণ্ড করতে পারেন তবে আপনি এটি খুঁজে পেতে পারেন যে এটি "অতিরিক্ত" সময় সমান বা এমনকি অতিক্রম করে যা এই বাগগুলি ঘটতে রোধ করতে সহায়তা করে এমন পরীক্ষা লিখতে আপনাকে সময় লাগে।

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

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


1

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

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

টিডিডি দিয়ে শুরু করার জন্য সহজ স্থানগুলি অনুসন্ধান করে শুরু করুন - কয়েকটি ক্লাস বা নির্ভরতা সহ নতুন ক্লাস বা মডিউল। ইউটিলিটি ক্লাস এবং ডেটা স্ট্রাকচারগুলি প্রায়শই শুরু করা ভাল জিনিস।

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

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

নীচের লাইন - ধীর বিকাশ, তবে কয়েকটি ত্রুটি, এত কম সময় ঠিক করার জন্য বাগগুলি।


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

0

এখানে আমি মনে করি যে আচরণগত চালিত বিকাশ তাত্ক্ষণিক লাভ দেখায় তবে আমি নিশ্চিত নই যে পরীক্ষা চালিত বিকাশ ঘটে।

আচরণ চালিত বিকাশে আপনি আপনার টিকিটগুলিকে অন্যভাবে যোগাযোগ করেন: আপনি ব্যবসায়িক ব্যক্তির সাথে বসেন এবং এই কার্যকারিতাটি থাকা উচিত এমন আচরণগুলি সংজ্ঞায়িত করতে তাদের সাথে কাজ করেন। আমি আমার ব্লগে একটি এন্ট্রিতে এটি বর্ণনা করি, (পোস্টের শিরোনাম: বিহ্যাভিয়ার রচনা )।

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

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

এটি আপনার দলের সম্পর্কে অন্যের ধারণাটিও সহায়তা করতে পারে: আপনি যদি বসে বসে সিস্টেমে কী করা দরকার তা সংজ্ঞায়িত করেন, তবে আপনি যেতে পারেন, "বোকা যারা সমস্ত কিছু বিবেচনা করে এবং আমরা যা জিজ্ঞাসা করি না তার জন্য সময় ব্যয় করে", "স্মার্ট লোক যারা দরকারী বৈশিষ্ট্য নিয়ে আসছে"।

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

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