আমি কোড বেসগুলিতে ইউনিট টেস্টগুলি চালু করেছি যার আগে এটি ছিল না। সর্বশেষ বড় প্রকল্পের সাথে আমি জড়িত ছিলাম যেখানে আমি এই পণ্যটি তৈরি করেছি যখন আমি দলে পৌঁছেছিলাম তখন শূন্য ইউনিট পরীক্ষা দিয়ে উত্পাদিত হয়েছিল। যখন আমি চলে গেলাম - 2 বছর পরে - আমাদের কাছে 4500+ বা তার বেশি পরীক্ষা হয়েছে 230 000 + প্রোডাকশন এলওসি (রিয়েল টাইম ফিনান্সিয়াল উইন-ফর্ম অ্যাপ্লিকেশন) সহ একটি কোড বেজে প্রায় 33% কোড কভারেজ ing এটি কম শোনাতে পারে তবে ফলাফলটি ছিল কোয়ালিটির মান এবং ত্রুটি হারের একটি উল্লেখযোগ্য উন্নতি - মনোবল এবং লাভজনকতা উন্নত।
এটি করা যেতে পারে যখন আপনার সাথে জড়িত পক্ষগুলির কাছ থেকে সঠিক বোঝাপড়া এবং প্রতিশ্রুতি উভয়ই থাকে।
প্রথমত, এটি বোঝা গুরুত্বপূর্ণ যে ইউনিট পরীক্ষা করা নিজের মধ্যে একটি দক্ষতা। আপনি "প্রচলিত" মানদণ্ড দ্বারা একটি খুব উত্পাদনশীল প্রোগ্রামার হতে পারেন এবং এখনও বৃহত্তর প্রকল্পে স্কেল করে এমনভাবে ইউনিট পরীক্ষা লেখার জন্য সংগ্রাম করতে পারেন।
এছাড়াও, এবং বিশেষত আপনার পরিস্থিতির জন্য, বিদ্যমান কোড বেসে ইউনিট পরীক্ষা যুক্ত করা যার কোনও পরীক্ষা নেই সেগুলি নিজেই একটি বিশেষ দক্ষতা। আপনি বা আপনার দলের কেউ যদি বিদ্যমান কোড বেসে ইউনিট পরীক্ষা প্রবর্তনের সফল অভিজ্ঞতা না পান তবে আমি বলব ফেদার বইটি পড়া একটি প্রয়োজনীয়তা ( alচ্ছিক বা দৃ strongly়ভাবে প্রস্তাবিত নয়)।
আপনার কোড পরীক্ষার ইউনিটে রূপান্তর করা কোড ও মানের হিসাবে যতটা লোক এবং দক্ষতার একটি বিনিয়োগ in মানসিকতা এবং প্রত্যাশা পরিচালনার ক্ষেত্রে এটি বোঝা খুব গুরুত্বপূর্ণ।
এখন, আপনার মন্তব্য এবং প্রশ্নের জন্য:
যাইহোক, আমি উদ্বিগ্ন যে আমি বড় ছবিটি হারিয়ে যাব এবং মুল টেস্টগুলি হারিয়ে যাব যদি আমি যেতে যেতে টিডিডি ব্যবহার করতাম তবে তা অন্তর্ভুক্ত হত।
সংক্ষিপ্ত উত্তর: হ্যাঁ, আপনি পরীক্ষাগুলি মিস করবেন এবং হ্যাঁ তারা প্রথমদিকে সবুজ ক্ষেত্রের পরিস্থিতি মতো দেখতে পছন্দ করবে না।
গভীর স্তরের উত্তরটি হ'ল: এটি কোনও বিষয় নয়। আপনি কোন পরীক্ষা দিয়ে শুরু। টেস্টগুলি যোগ করতে শুরু করুন, এবং আপনি যাওয়ার সাথে সাথে রিফ্যাক্টর। দক্ষতা স্তরগুলি আরও উন্নত হওয়ার সাথে সাথে আপনার প্রকল্পে যুক্ত হওয়া সমস্ত নতুন লিখিত কোডের জন্য বার বাড়াতে শুরু করুন। ইত্যাদি উন্নতি করতে থাকুন ...
এখন, এখানে লাইনগুলির মধ্যে পড়ে আমি বুঝতে পারি যে এটি "পদক্ষেপ না নেওয়ার অজুহাত হিসাবে পরিপূর্ণতা" এর মানসিকতা থেকে আসছে। একটি ভাল মানসিকতা আত্মবিশ্বাস উপর দৃষ্টি নিবদ্ধ করা হয়। আপনি এখনও এটি কীভাবে করবেন তা আপনি জানেন না তাই আপনি কীভাবে যাবেন এবং শূন্যস্থান পূরণ করবেন তা আপনি খুঁজে বের করবেন। অতএব, চিন্তার কোনও কারণ নেই।
আবার, এটি একটি দক্ষতা। আপনি লিনিয়ার ফ্যাশনে একটি "প্রক্রিয়া" বা "ধাপে ধাপে" কুক বইয়ের পদ্ধতির শূন্য পরীক্ষাগুলি থেকে টিডিডি-পারফেকশনে যেতে পারবেন না। এটি একটি প্রক্রিয়া হবে। আপনার প্রত্যাশাগুলি অবশ্যই ধীরে ধীরে এবং ক্রমবর্ধমান অগ্রগতি এবং উন্নতি করা উচিত। কোন ম্যাজিক পিল নেই।
সুসংবাদটি হ'ল যে মাসগুলি (এবং এমনকি বছরগুলি) কেটে যাওয়ার সাথে সাথে আপনার কোডটি ধীরে ধীরে "যথাযথ" ভাল ফ্যাক্টরড এবং ভাল পরীক্ষিত কোড হতে শুরু করবে।
পার্শ্ব নোট হিসাবে। আপনি দেখতে পাবেন যে পুরানো কোড বেসে ইউনিট পরীক্ষা চালুর প্রাথমিক বাধা হ'ল সংহতি এবং অত্যধিক নির্ভরতার অভাব। অতএব আপনি সম্ভবত খুঁজে পাবেন যে সর্বাধিক গুরুত্বপূর্ণ দক্ষতা প্রকৃত ইউনিট টেস্টগুলি লেখার পরিবর্তে কীভাবে বিদ্যমান নির্ভরতা এবং ডিকোপলিং কোডটি ভাঙবে।
বিদ্যমান সমাধানগুলি সঠিকভাবে ইউনিট পরীক্ষা করা হয়েছে এবং কেবল বডিং নয় তা নিশ্চিত করার জন্য এমন কোনও প্রক্রিয়া / পদক্ষেপগুলি মেনে চলা উচিত?
আপনার যদি ইতিমধ্যে তা না থাকে তবে একটি বিল্ড সার্ভার সেট আপ করুন এবং একটি অবিচ্ছিন্ন ইন্টিগ্রেশন বিল্ড সেট আপ করুন যা কোড কভারেজ সহ সমস্ত ইউনিট পরীক্ষাসহ প্রতিটি চেকিনে চলে।
আপনার লোকদের প্রশিক্ষণ দিন।
গ্রাহকের দৃষ্টিকোণ থেকে অগ্রগতি করার সময় কোথাও শুরু করুন এবং পরীক্ষাগুলি যুক্ত করা শুরু করুন (নীচে দেখুন)।
আপনার প্রডাকশন কোড বেসটির কত অংশ পরীক্ষার অধীনে রয়েছে তার গাইড রেফারেন্স হিসাবে কোড কভারেজ ব্যবহার করুন।
বিল্ড সময় সর্বদা দ্রুত হওয়া উচিত। যদি আপনার বিল্ড সময় ধীর হয়, আপনার ইউনিট পরীক্ষার দক্ষতা পিছিয়ে আছে। ধীর পরীক্ষাগুলি সন্ধান করুন এবং সেগুলি উন্নত করুন (প্রোডাকশন কোডটি বিচ্ছিন্ন করে বিচ্ছিন্নকরণে পরীক্ষা করুন)। ভাল লিখেছেন, আপনার ইজিলি কয়েক হাজার ইউনিট পরীক্ষা করতে সক্ষম হতে হবে এবং এখনও 10 মিনিটের মধ্যে একটি বিল্ড সম্পূর্ণ করতে পারেন (~ 1-কয়েক এমএস / পরীক্ষা একটি ভাল তবে খুব রুক্ষ গাইডলাইন, কিছু ব্যতিক্রম প্রতিচ্ছবি ব্যবহার করে কোডের মতো প্রয়োগ হতে পারে ইত্যাদি) )।
পরিদর্শন এবং অভিযোজিত।
আমি কীভাবে নিশ্চিত করতে পারি যে পরীক্ষাগুলি একটি ভাল মানের এবং কোনও পরীক্ষার ক্ষেত্রে কেবল কোনও পরীক্ষার চেয়ে ভাল নয়।
আপনার নিজের রায় অবশ্যই আপনার বাস্তবতার উত্স হতে পারে। দক্ষতার প্রতিস্থাপন করতে পারে এমন কোনও মেট্রিক নেই।
আপনার যদি সেই অভিজ্ঞতা বা রায় না থেকে থাকে তবে কারও সাথে চুক্তি করার বিষয়টি বিবেচনা করুন।
দুটি মোটামুটি মাধ্যমিক সূচকগুলি হ'ল মোট কোড কভারেজ এবং গতির গতি।
উত্পাদিত কোন বিদ্যমান সমাধানের জন্য এটি কি মূল্যবান?
হ্যাঁ. একটি কাস্টম বিল্ট সিস্টেম বা সমাধানের জন্য ব্যয় করা অর্থের সিংহভাগ অর্থ উত্পাদনের পরে তা ব্যয় করা হয়। এবং মানের বিনিয়োগ, লোক এবং দক্ষতা কখনও স্টাইলের বাইরে থাকা উচিত নয়।
এই প্রকল্পের পরীক্ষাটি উপেক্ষা করে ভবিষ্যতের কোনও পুনরায় লেখায় এটি যুক্ত করা ভাল কি?
আপনাকে কেবল লোক এবং দক্ষতায় বিনিয়োগই নয়, গুরুত্বপূর্ণভাবে মালিকানার মোট ব্যয় এবং সিস্টেমের প্রত্যাশিত জীবনকালকেও বিবেচনায় নিতে হবে।
আমার ব্যক্তিগত উত্তরটি বেশিরভাগ ক্ষেত্রে "হ্যাঁ অবশ্যই" হবে কারণ আমি এর আরও অনেক ভাল জানি তবে আমি বুঝতে পারি যে এর ব্যতিক্রমও হতে পারে।
এর চেয়ে বেশি উপকারী কী হবে; কয়েক সপ্তাহ পরীক্ষার যোগে ব্যয় করা বা কয়েক সপ্তাহ কার্যকারিতা যুক্ত করে?
আমরাও। আপনার কার্যকারিতার দিক থেকে আপনি যখন অগ্রগতি করছেন তখন আপনার কোডটি আপনার কোড বেসে পরীক্ষা যুক্ত করা উচিত।
আবার এটি লোকের, দক্ষতা এবং কোড বেসের মানের এবং এর জন্য সময় প্রয়োজন require টিম সদস্যদের কীভাবে নির্ভরতা ভাঙতে হবে, ইউনিট পরীক্ষা লিখতে হবে, নতুন অভ্যাস শিখতে হবে, শৃঙ্খলা ও মানসম্পন্ন সচেতনতা উন্নত করা যায়, কীভাবে আরও উন্নততর সফ্টওয়্যার ডিজাইন করা যায় ইত্যাদি বুঝতে হবে যে আপনি যখন পরীক্ষাগুলি যুক্ত শুরু করবেন তখন আপনার দলের সদস্যরা সম্ভবত এটি করবেন না এই পদ্ধতির সফল হওয়ার জন্য তাদের যে স্তরের হওয়া দরকার তা এখনও এই দক্ষতা অর্জন করুন, তাই প্রচুর পরীক্ষা যোগ করার জন্য সমস্ত সময় ব্যয় করার অগ্রগতি বন্ধ করা কেবল কার্যকর হবে না।
এছাড়াও, যে কোনও আকারের প্রকল্পের আকারের বিদ্যমান কোড বেসে ইউনিট টেস্ট যুক্ত করা একটি বড় উদ্যোগ যা প্রতিশ্রুতিবদ্ধতা এবং অধ্যবসায় প্রয়োজন। আপনি মৌলিক কিছু পরিবর্তন করতে পারবেন না, পথে প্রচুর শেখার আশা করতে পারেন এবং আপনার স্পনসরকে ব্যবসায়ের মূল্যের প্রবাহকে থামিয়ে কোনও আরওআইয়ের প্রত্যাশা না করতে বলুন। এটি উড়বে না, এবং অকপটে এটি উচিৎ নয়।
তৃতীয়ত, আপনি আপনার দলে শব্দ ব্যবসায়ের ফোকাস মান স্থাপন করতে চান। গুণ কখনই গ্রাহকের ব্যয়ে আসে না এবং আপনি গুণ ছাড়া দ্রুত যেতে পারবেন না। এছাড়াও, গ্রাহক একটি পরিবর্তিত বিশ্বে বাস করছেন এবং আপনার কাজটি তার পক্ষে খাপ খাইয়ে নেওয়া সহজ করা। গ্রাহক প্রান্তিককরণের জন্য মানের এবং ব্যবসায়িক মানের প্রবাহ উভয়ই প্রয়োজন।
আপনি যা করছেন তা প্রযুক্তিগত offণ পরিশোধ করা। এবং এখনও আপনার গ্রাহকদের প্রয়োজনের পরিবর্তনের জন্য পরিষেবা দেওয়ার সময় এটি করছেন। ধীরে ধীরে debtণ পরিশোধের সাথে সাথে পরিস্থিতির উন্নতি হয় এবং গ্রাহকের আরও ভাল সেবা করা এবং আরও মূল্য প্রদান করা সহজ হয়। ইত্যাদি এই ইতিবাচক গতিটি আপনার জন্য লক্ষ্য করা উচিত কারণ এটি টেকসই গতির নীতিগুলিকে আন্ডারলাইন করে এবং নৈতিকতা বজায় রাখে এবং উন্নত করবে - উভয়ই আপনার উন্নয়ন দল, আপনার গ্রাহক এবং আপনার স্টেকহোল্ডারদের জন্য।
আশা করি এইটি কাজ করবে