ভারী jquery / backbonejs ওয়েব অ্যাপ্লিকেশনগুলিতে 100% কোড কভারেজ আশা করা কি সম্ভব? যখন জাভাস্ক্রিপ্ট / জকোয়ারিতে প্রকৃত কোড কভারেজ 92% -95% এর আশেপাশে থাকে তখন 100% কভারেজ পূরণ না হওয়ার কারণে স্প্রিন্টে ব্যর্থ হওয়া কি যুক্তিসঙ্গত?
ভারী jquery / backbonejs ওয়েব অ্যাপ্লিকেশনগুলিতে 100% কোড কভারেজ আশা করা কি সম্ভব? যখন জাভাস্ক্রিপ্ট / জকোয়ারিতে প্রকৃত কোড কভারেজ 92% -95% এর আশেপাশে থাকে তখন 100% কভারেজ পূরণ না হওয়ার কারণে স্প্রিন্টে ব্যর্থ হওয়া কি যুক্তিসঙ্গত?
উত্তর:
অবাস্তব হওয়ায় এটিও সমান বাস্তববাদী।
বাস্তবসম্মত
যদি আপনার যদি স্বয়ংক্রিয় পরীক্ষণ থাকে যা পুরো কোড বেসটি কভার করার জন্য দেখানো হয়েছে, তবে 100% কভারেজের উপর জোর দেওয়া যুক্তিসঙ্গত।
এটি প্রকল্পটি কতটা সমালোচনামূলক তা নির্ভর করে। যতই সমালোচনা করা যায়, সম্পূর্ণ কোড কভারেজের আশা / দাবি করা তত বেশি যুক্তিসঙ্গত।
ছোট থেকে মাঝারি আকারের প্রকল্পগুলির জন্য এটি করা সহজ।
অবাস্তববাদী
আপনি 0% কভারেজ থেকে শুরু করছেন ...
প্রকল্পটি অনেকগুলি, অনেকগুলি ত্রুটিযুক্ত পথ যা আবার পুনরায় তৈরি করা বা ট্রিগার করা শক্ত তা নিয়ে সন্ত্রস্ত।
কভারেজ রয়েছে তা নিশ্চিত করতে ম্যানেজমেন্ট কমিটমেন্ট / বিনিয়োগ করতে রাজি নয়।
আমি কোনও কভারেজ থেকে শালীন না হওয়া পর্যন্ত প্রকল্পগুলির ছদ্মবেশ কাজ করেছি। 100% সহ কোনও প্রজেক্ট কখনই নয়, তবে এমন সময় অবশ্যই আসত যা আমরা চাইতাম আমাদের প্রায় 100% কভারেজ থাকত had
চূড়ান্তভাবে প্রশ্নটি হচ্ছে যদি বিদ্যমান কভারেজটি টিম পণ্য সরবরাহে স্বাচ্ছন্দ্যের জন্য প্রয়োজনীয় ক্ষেত্রে যথেষ্ট পরিমাণে পূরণ করে।
আমরা আপনার প্রকল্পের ব্যর্থতার প্রভাব জানি না, সুতরাং 92% বা 95% যথেষ্ট, বা যদি 100% সত্যই প্রয়োজন হয় তা আমরা বলতে পারি না। বা এই ক্ষেত্রে, 100% আপনি যা আশা করেন তা পুরোপুরি পরীক্ষা করে।
এটা খুবই হল সরল শ্রেষ্ঠ সময়ে এবং অবাস্তব এমনকি তাত্ত্বিক অর্থে এবং অকার্যকর একটি ব্যবসা অর্থে।
পরীক্ষাগুলি লিখতে এটি খুব ব্যয়বহুল, এটি কোড যা এটি নিজেই লিখতে হবে এবং এটি পরীক্ষা করতে হয়, এটি এমন কোড যা ডকুমেন্ট করতে হয় যা এটি আসলে যাচাই করার চেষ্টা করে, এটি এমন কোড যা ব্যবসায়ের যুক্তি পরিবর্তনের সাথে বজায় রাখতে হবে এবং পরীক্ষাগুলি ব্যর্থ হওয়ায় তাদের মেয়াদ শেষ। কখনও কখনও কোড বজায় রাখার চেয়ে স্বয়ংক্রিয় পরীক্ষাগুলি বজায় রাখা এবং সেগুলি সম্পর্কে ডকুমেন্টেশনগুলি আরও ব্যয়বহুল হতে পারে।
এটি ইউনিট টেস্ট এবং ইন্টিগ্রেশন পরীক্ষাগুলি দরকারী নয় তা নয়, তবে কেবল যেখানে তারা তা বোঝায়, এবং এমন শিল্পের বাইরে যেগুলি মানুষকে হত্যা করতে পারে কোনও কোড বেসে কোডের প্রতিটি লাইন চেষ্টা করে পরীক্ষা করার জন্য এটি বোধগম্য নয়। এই সমালোচনামূলক মারার প্রচুর লোকের বাইরে খুব শীঘ্রই ঘাঁটিগুলিকে কোড করে, বিনিয়োগের ক্ষেত্রে ইতিবাচক প্রত্যাশা গণনা করা অসম্ভব যে 100% কোডের কভারেজ থাকতে পারে।
গণনীয়তার তত্ত্বে, থামানো সমস্যাটি নির্ধারণের সমস্যা, একটি স্বেচ্ছাসেবী কম্পিউটার প্রোগ্রামের বর্ণনা এবং একটি ইনপুট, প্রোগ্রামটি চলমান শেষ হয়ে যায় বা চিরকালের জন্য চলতে থাকবে কিনা তা নির্ধারণের সমস্যা।
অ্যালান টুরিং 1936 সালে প্রমাণ করেছিলেন যে সমস্ত সম্ভাব্য প্রোগ্রাম-ইনপুট জোড়গুলির জন্য থামানো সমস্যা সমাধানের জন্য একটি সাধারণ অ্যালগরিদম উপস্থিত থাকতে পারে না। প্রমাণের মূল অংশটি ছিল একটি কম্পিউটার এবং প্রোগ্রামের গাণিতিক সংজ্ঞা, যা টুরিং মেশিন হিসাবে পরিচিতি লাভ করেছিল; থামানো সমস্যা টুরিং মেশিনগুলির দ্বারা অনস্বীকার্য। এটি সিদ্ধান্তগত সমস্যার প্রথম উদাহরণগুলির মধ্যে একটি।
যেহেতু আপনি প্রমাণ করতে পারবেন না যে কোনও কিছু 100% কাজ করে কেন এটি আপনার লক্ষ্য?
getXXX()/setXXX()
ভ্যালু অবজেক্টগুলির জন্য সহজ সরল অ্যাসাইনমেন্ট কন্সট্রাক্টরদের কভার করার জন্য পরীক্ষার কেসগুলি লেখার সময় এবং সংস্থানগুলির একটি ভাল ব্যবহার, দুঃখিত যে এটি বাস্তবে নয় এবং এটি একটি অত্যন্ত নির্বুদ্ধ মতামত যা এটির ব্যাক আপ করার ক্ষেত্রে বাস্তব অভিজ্ঞতা নেই। মনে রাখবেন পরীক্ষার কোডটি এখনও কোড থাকে যা বজায় রাখতে হয়। সমস্যা সমাধানের জন্য আপনি যত কম কোড লিখেছেন তা প্রতিটি ক্ষেত্রেই তত ভাল ।
বেশিরভাগ ক্ষেত্রে, 100% কোডের কভারেজের অর্থ হল আপনি কিছুটা "প্রতারণা" করেছেন:
মূলত, অংশগুলি পরীক্ষা করা কঠিন এমন অঞ্চলে ছেড়ে দেওয়া হয়েছে যেখানে তারা প্রয়োজনীয়ভাবে "কোড" হিসাবে গণনা করে না। এটি সর্বদা বাস্তবসম্মত নয়, তবে নোট করুন যে আপনাকে পরীক্ষা করতে সাহায্য করার পরিবর্তে এই সমস্ত অনুশীলনগুলি আপনার কোডবেসকে কাজ করা আরও সহজ করে তোলে।
100% শাখা কভারেজের একটি চিত্তাকর্ষক, বাস্তব বিশ্বের উদাহরণের জন্য , দেখুন এসকিউএলাইট কীভাবে পরীক্ষিত হয় ।
আমি বুঝতে পারি যে আপনার প্রশ্নটি জাভাস্ক্রিপ্ট সম্পর্কে বিশেষভাবে জিজ্ঞাসা করেছে যা সম্পূর্ণ ভিন্ন ধরণের সফ্টওয়্যার পণ্য, তবে আমি যথেষ্ট প্রেরণা দিয়ে কী করা যায় সে সম্পর্কে সচেতনতা আনতে চাই।
কোনও নির্দিষ্ট অ্যাপ্লিকেশনের সমস্ত অংশের জন্য ইউনিট পরীক্ষার জন্য 100% কোড কভারেজ একটি পাইপ স্বপ্ন, এমনকি নতুন প্রকল্পগুলিও। আমি আশা করি এটি যদি হয় তবে আপনারা বাহ্যিক নির্ভরতা দূরীকরণের জন্য যতই চেষ্টা করুন না কেন আপনি কোডের কিছু অংশ কভার করতে পারবেন না। উদাহরণস্বরূপ, ধরা যাক আপনার কোডটিতে একটি ওয়েব পরিষেবা শুরু করতে হবে। আপনি কোনও ইন্টারফেসের পিছনে ওয়েব পরিষেবা কলগুলি আড়াল করতে পারেন যাতে আপনি সেই অংশটি উপহাস করতে পারেন, এবং ওয়েব পরিষেবার আগে এবং পরে ব্যবসায়িক যুক্তি পরীক্ষা করতে পারেন। কিন্তু প্রকৃত অংশ যা ওয়েব পরিষেবাদি শুরু করতে হবে তা ইউনিট পরীক্ষিত হতে পারে না (যাইহোক খুব ভাল)। আর একটি উদাহরণ হ'ল যদি আপনার কোনও টিসিপি সার্ভারের সাথে সংযোগ স্থাপন করতে হয়। আপনি ইন্টারফেসের পিছনে টিসিপি সার্ভারের সাথে সংযুক্ত কোডটি লুকিয়ে রাখতে পারেন। কিন্তু কোডটি যা শারীরিকভাবে টিসিপি সার্ভারের সাথে সংযোগ স্থাপন করে সেটিকে ইউনিট পরীক্ষা করা যায় না, কারণ যদি এটি কোনও কারণে ডাউন হয় তবে ইউনিট পরীক্ষাটি ব্যর্থ হতে পারে। এবং ইউনিট পরীক্ষাগুলি সর্বদা পাস করা উচিত, যখনই তারা ডাকা হয়।
থাম্বের একটি ভাল নিয়ম আপনার ব্যবসায়ের সমস্ত যুক্তির 100% কোড কভারেজ হওয়া উচিত। তবে যে টুকরোগুলি বাহ্যিক উপাদানগুলি চালিত করতে হবে, তার যতটা সম্ভব 100% কোড কভারেজ হওয়া উচিত। আপনি যদি না পৌঁছতে পারেন তবে আমি এটি খুব বেশি ঘামও না।
আরও অনেক গুরুত্বপূর্ণ, পরীক্ষা কি সঠিক? তারা কি আপনার ব্যবসা এবং প্রয়োজনীয়তাগুলি নির্ভুলভাবে প্রতিফলিত করে? কোড কভারেজ থাকার জন্য কোড কভারেজ থাকা মানেই যদি আপনি যা করে যাচ্ছেন সমস্ত কিছু ভুলভাবে পরীক্ষা করা, বা ভুল কোড পরীক্ষা করে থাকে তবে এর অর্থ কিছু হয় না। বলা হচ্ছে, যদি আপনার পরীক্ষাগুলি ভাল হয়, তবে 92-95% কভারেজটি অসামান্য।
আমি বলব যে যদি 100% পরীক্ষার কভারেজের অনুমতি দেওয়ার নির্দিষ্ট লক্ষ্য নিয়ে কোডটি তৈরি না করা হয়, তবে 100% অর্জনযোগ্য হতে পারে না। এর অন্যতম কারণ হ'ল আপনি যদি ডিফেন্সিভালি কোড করেন - যা আপনার হওয়া উচিত - আপনার মাঝে মাঝে এমন কোড থাকা উচিত যা পরিস্থিতি পরিচালনা করে যা আপনি নিশ্চিত হন যে সিস্টেমটি আপনার জ্ঞানের ভিত্তিতে ঘটবে না বা ঘটবে না। পরীক্ষার সাথে এই জাতীয় কোডটি কভার করা সংজ্ঞা অনুসারে খুব শক্ত হবে। এই জাতীয় কোড না রাখা বিপজ্জনক হতে পারে - যদি আপনি ভুল হয়ে থাকেন এবং 256 এর মধ্যে একবারে এই পরিস্থিতি ঘটে? অসম্পূর্ণ জায়গায় এমন কোনও পরিবর্তন ঘটে যা অসম্ভবকে সম্ভব করে তোলে? ইত্যাদি। সুতরাং "প্রাকৃতিক" অর্থের মাধ্যমে 100% পৌঁছনো বরং কঠিন হতে পারে - যেমন, আপনার যদি মেমরি বরাদ্দকারী কোড থাকে এবং আপনার কোড রয়েছে যা এটি ব্যর্থ হয়েছে কিনা তা পরীক্ষা করে থাকে, যদি না আপনি মেমোরি ম্যানেজারকে উপহাস না করেন (যা সহজ নাও হতে পারে) এবং এমন একটি পরীক্ষা লিখুন যা "মেমোরি থেকে সরে যায়", সেই কোডটি আচ্ছাদন করা কঠিন হতে পারে। জেএস অ্যাপ্লিকেশনের জন্য, এটি বিভিন্ন ব্রাউজারগুলিতে সম্ভাব্য ডিওএম কিরকস, বাহ্যিক পরিষেবাদির সম্ভাব্য ব্যর্থতা ইত্যাদির আশেপাশে প্রতিরক্ষামূলক কোডিং হতে পারে etc.
সুতরাং আমি বলব যে একজনের যতটা সম্ভব 100% এর কাছাকাছি থাকার জন্য প্রচেষ্টা করা উচিত এবং ব-দ্বীপের একটি ভাল কারণ থাকতে হবে তবে আমি অবশ্যই ব্যর্থতা হিসাবে সঠিকভাবে 100% পাচ্ছি না। ৫% কী হয় তার উপর নির্ভর করে একটি বড় প্রকল্পে 95% জরিমানা হতে পারে।
যদি আপনি কোনও নতুন প্রকল্প শুরু করে থাকেন এবং আপনি কঠোরভাবে কোনও প্রথম-প্রথম পদ্ধতি ব্যবহার করছেন, তবে আপনার পরীক্ষাগুলি যখন কোনও পর্যায়ে আপনার সমস্ত কোডকে আহ্বান করা হবে তখন এই অর্থে 100% কোড কভারেজ থাকা সম্পূর্ণ যুক্তিসঙ্গত is মৃত্যুদণ্ড কার্যকর করা হয়েছে তবে আপনি পদ্ধতিটির দৃশ্যমানতার কারণে প্রতিটি স্বতন্ত্র পদ্ধতি বা অ্যালগরিদমকে স্পষ্টভাবে পরীক্ষা নাও করতে পারেন এবং কিছু ক্ষেত্রে আপনি অপ্রত্যক্ষভাবে কিছু পদ্ধতি পরীক্ষাও করতে পারেন নি।
আপনার কোডের 100% পরীক্ষা করা সম্ভাব্য ব্যয়বহুল ব্যায়াম, বিশেষত যদি আপনি এই লক্ষ্য অর্জনের জন্য আপনার সিস্টেমটি ডিজাইন করেন না এবং আপনি যদি পরীক্ষার উপর আপনার নকশার প্রচেষ্টাগুলিকে ফোকাস করে থাকেন তবে আপনি সম্ভবত আপনার যথেষ্ট মনোযোগ দিচ্ছেন না আপনার অ্যাপ্লিকেশনটির নির্দিষ্ট প্রয়োজনীয়তাগুলি পূরণের জন্য ডিজাইন করার জন্য, বিশেষত যেখানে প্রকল্পটি একটি বড় large আমি দুঃখিত, তবে কোনও আপস না করেই আপনি কেবল দু'ভাবেই থাকতে পারবেন না।
আপনি যদি কোনও বিদ্যমান প্রকল্পে পরীক্ষা চালিয়ে যাচ্ছেন যেখানে পরীক্ষা চালিয়ে যাওয়া বা এর আগে অন্তর্ভুক্ত করা হয়নি তবে অনুশীলনের ব্যয় ছাড়াই 100% কোড কভারেজ পাওয়া অসম্ভব। আপনি যে সর্বোত্তম আশা করতে পারেন তা হ'ল কোডের সমালোচনামূলক বিভাগগুলির জন্য পরীক্ষা কভারেজ সরবরাহ করা যা সর্বাধিক বলা হয়।
যখন জাভাস্ক্রিপ্ট / জকোয়ারিতে প্রকৃত কোড কভারেজ 92% -95% এর আশেপাশে থাকে তখন 100% কভারেজ পূরণ না হওয়ার কারণে স্প্রিন্টে ব্যর্থ হওয়া কি যুক্তিসঙ্গত?
বেশিরভাগ ক্ষেত্রে আমি বলব যে আপনি যদি আপনার লক্ষ্যগুলি পূরণ না করে থাকেন তবে আপনার স্প্রিন্টটিকে কেবল 'ব্যর্থ' বলে মনে করা উচিত। প্রকৃতপক্ষে, আমি স্প্রিন্টগুলিকে এ জাতীয় ক্ষেত্রে ব্যর্থ বলে মনে করি না কারণ আপনি স্প্রিন্টের কাছ থেকে শিখতে সক্ষম হবেন যা পরের বার আপনি একটি স্প্রিন্ট সংজ্ঞায়িত করার পরে আপনার পরিকল্পনাটি পাওয়ার জন্য প্রত্যাশা পূরণ করে না। নির্বিশেষে, আমি কোড কভারেজটিকে একটি স্প্রিন্টের আপেক্ষিক সাফল্যের একটি কারণ হিসাবে বিবেচনা করা যুক্তিসঙ্গত বলে মনে করি না। আপনার লক্ষ্যটি হ'ল নির্দিষ্ট হিসাবে কাজ করার জন্য যথেষ্ট পরিমাণে কাজ করা উচিত এবং আপনি যদি পরীক্ষার প্রথম কোডিং করে থাকেন তবে আপনার আত্মবিশ্বাস অনুভব করতে সক্ষম হওয়া উচিত যে আপনার পরীক্ষাগুলি এই লক্ষ্যটিকে সমর্থন করবে। যে অতিরিক্ত অতিরিক্ত পরীক্ষার জন্য আপনি যে সংযোজন করতে পারেন তা হ'ল কার্যকরভাবে চিনি-আবরণ এবং এটি একটি অতিরিক্ত ব্যয় যা আপনার স্প্রিন্টকে সন্তোষজনকভাবে শেষ করতে পারে।
আমি অবশ্যই এটি হিসাবে করি না, তবে দুটি বড় প্রকল্পে এটি করেছি। যদি আপনি যাইহোক সেট আপ ইউনিট পরীক্ষার জন্য একটি কাঠামো পেয়ে থাকেন তবে তা ঠিক তেমন শক্ত নয়, তবে এটি অনেক পরীক্ষার যোগ করে।
এমন কোনও বাধা আছে যার মুখোমুখি হচ্ছেন যা আপনাকে সেই শেষ কয়েকটি লাইনে আঘাত করতে বাধা দিচ্ছে? যদি তা না হয়, যদি 95% থেকে 100% কভারেজটি পাওয়া সোজা হয়, তাই আপনিও এটি করতে পারেন। আপনি এখানে বলছি সাল থেকে আমি অনুমান করা যে যাচ্ছি হয় কিছু। এটা কি কিছু?
92% ঠিক আছে। আমি অনুভব করি যে আসল প্রশ্নগুলি হ'ল:
এখন কি 92% 'নতুন' আদর্শ? যদি পরবর্তী স্প্রিন্টে ৮৮% পরীক্ষা থাকে তবে তা কি ঠিক হবে? পরীক্ষার স্যুটগুলি পরিত্যক্ত হওয়ার এটি প্রায়শই হয়।
সফটওয়্যারটি কাজ করে এবং বাগ থাকে না এটি কতটা গুরুত্বপূর্ণ। আপনার এই পরীক্ষাগুলি "পরীক্ষার খাতিরে" নয়
ফিরে গিয়ে অনুপস্থিত পরীক্ষাগুলি পূরণ করার পরিকল্পনা আছে কি?
আপনি পরীক্ষা করছেন কেন? দেখে মনে হচ্ছে ফোকাসটি% কার্যক্ষমতার চেয়ে নয় লাইনের আচ্ছাদিত
মার্টিন ফোলার তার ব্লগে লিখেছেন :I would be suspicious of anything like 100% - it would smell of someone writing tests to make the coverage numbers happy, but not thinking about what they are doing.
যাইহোক, এমন কিছু মান রয়েছে যা ইউনিট স্তরে 100% কভারেজ জারি করে। উদাহরণস্বরূপ, এটি ইউরোপীয় স্পেসফ্লাইট সম্প্রদায়ের (ইসিএসএস, স্পেস স্ট্যান্ডার্ডাইজেশনের জন্য ইউরোপীয় সহযোগিতা) মানদণ্ডগুলির অন্যতম প্রয়োজনীয়তা। কাগজ লিঙ্ক এখানে , প্রকল্প যে ইতিমধ্যে সম্পন্ন সফ্টওয়্যার 100% পরীক্ষা কভারেজ পৌঁছনোর লক্ষ্য ছিল একজন আকর্ষণীয় গল্প বলে। এটি ইউনিট পরীক্ষার বিকাশকারী জড়িত প্রকৌশলীদের সাথে nterviews ভিত্তিক based
পাঠের কয়েকটি:
সম্ভবত জিজ্ঞাসা করা সম্ভব এবং যুক্তিযুক্ত কিনা জিজ্ঞাসা করা সবচেয়ে সহায়ক প্রশ্ন নয়। সম্ভবত সবচেয়ে ব্যবহারিক উত্তর হ'ল গৃহীত উত্তর। আমি এটি আরও দার্শনিক স্তরে বিশ্লেষণ করব।
100% কভারেজ আদর্শ হবে, তবে আদর্শভাবে এটির প্রয়োজন হবে না বা এটি অর্জন করা আরও সহজ হবে। আমি এটি সম্ভাব্য বা যুক্তিসঙ্গত চেয়ে প্রাকৃতিক এবং মানব কিনা তা নিয়ে ভাবতে পছন্দ করি।
সঠিকভাবে প্রোগ্রামিংয়ের কাজটি আজকের সরঞ্জামগুলির সাথে অসম্ভবের পাশে। পুরোপুরি সঠিক যে কোডটি লিখতে এটি খুব কঠিন, এবং এতে কোনও বাগ নেই। এটা ঠিক প্রাকৃতিক নয়। সুতরাং, অন্য কোনও সুস্পষ্ট বিকল্প ছাড়াই আমরা টিডিডি, এবং ট্র্যাকিং কোড কভারেজের মতো কৌশলগুলিতে ফিরে যাই। তবে যতক্ষণ না শেষ ফলাফলটি এখনও একটি অপ্রাকৃত প্রক্রিয়া, ততক্ষণ আপনি মানুষকে এটি ধারাবাহিকভাবে এবং সুখীভাবে করতে খুব কষ্ট পেতে হবে।
100% কোড কভারেজ অর্জন করা একটি অপ্রাকৃত কাজ। বেশিরভাগ লোকের জন্য, তাদের এ অর্জন করতে বাধ্য করা নির্যাতনের এক প্রকার হবে।
আমাদের প্রাকৃতিক মানসিক মডেলগুলির মানচিত্রগুলি প্রক্রিয়া, সরঞ্জাম, ভাষা এবং কোড দরকার। আমরা যদি এটি করতে ব্যর্থ হয় তবে কোনও পণ্যতে গুণমান পরীক্ষা করার উপায় নেই।
আজ এখানে সমস্ত সফ্টওয়্যার দেখুন। এটি বেশিরভাগ নিয়মিতভাবে খুব ঝামেলা করে। আমরা এটি বিশ্বাস করতে চাই না। আমরা আমাদের প্রযুক্তিটি যাদুকর বিশ্বাস করতে এবং আমাদের আনন্দিত করতে চাই। এবং তাই আমরা আমাদের প্রযুক্তি বিভ্রান্ত হওয়ার বেশিরভাগ সময় উপেক্ষা, অজুহাত এবং ভুলে যাওয়া পছন্দ করি। তবে আমরা যদি বিষয়গুলির একটি সৎ মূল্যায়ন করি তবে আজকের বেশিরভাগ সফ্টওয়্যারই বেশ কৃপণ।
কোডিংকে আরও প্রাকৃতিক করার জন্য এখানে কয়েকটি চেষ্টা করা হয়েছে:
https://github.com/jcoplien/trygve
https://github.com/still-dreaming-1/PurposefulPhp
পরবর্তীটি অত্যন্ত অসম্পূর্ণ এবং পরীক্ষামূলক। আসলে এটি আমি শুরু করি এমন একটি প্রকল্প, তবে আমি বিশ্বাস করি প্রোগ্রামিংয়ের কারুকাজের জন্য এটি একটি বিশাল পদক্ষেপ হতে পারে যদি আমি কখনই নিজেকে এটির মধ্যে সময় দেওয়ার জন্য সময় দিতে পারি। মূলত এটি ধারণাটিই হয় যে চুক্তিগুলি যদি আমরা বিবেচনা করি এমন কোনও শ্রেণীর আচরণের একমাত্র দিকগুলি প্রকাশ করে এবং আমরা ইতিমধ্যে চুক্তিগুলি কোড হিসাবে প্রকাশ করি তবে কেন চুক্তির পাশাপাশি শ্রেণি এবং পদ্ধতির সংজ্ঞাও থাকে না। এইভাবে চুক্তিগুলি কোড হবে এবং আমাদের সমস্ত পদ্ধতি প্রয়োগের প্রয়োজন হবে না। লাইব্রেরিটি কীভাবে আমাদের জন্য চুক্তিগুলি সম্মান করবে তা নির্ধারণ করুন।
নতুন কোডে 100% পৌঁছানো খুব সহজ হবে এবং আপনি যদি টিডিডি অনুশীলন করেন তবে আপনি সম্ভবত ডিফল্টরূপে আঘাত হবেন কারণ আপনি খুব ইচ্ছাকৃতভাবে প্রোডাকশন কোডের প্রতিটি লাইনের জন্য পরীক্ষা লিখছেন।
বিদ্যমান লিগ্যাসি কোড যা কোনও ইউনিট পরীক্ষার সাথে লেখা ছিল তা কঠিন হতে পারে কারণ প্রায়শই লিগ্যাসি কোডটি ইউনিট পরীক্ষার কথা মাথায় রেখে লেখা হয়নি এবং প্রচুর পরিমাণে রিফ্যাক্টরিংয়ের প্রয়োজন হতে পারে। রিপ্যাক্টরিংয়ের সেই স্তরটি প্রায়শই ঝুঁকি এবং তফসিলের বাস্তবতাকে ব্যবহারিক করে তোলা হয় না যাতে আপনি বাণিজ্য বন্ধ করে দেন।
আমার দলে আমি 100% কোড কভারেজ নির্দিষ্ট করি এবং কোডের পর্যালোচনার চেয়ে কম যদি আমরা দেখতে পাই তবে কেন উপাদানটির প্রযুক্তিগত মালিক বিকাশকারীদের সাথে 100% পৌঁছাচ্ছেন না এবং তা অবশ্যই বিকাশকের যুক্তির সাথে একমত হতে হবে discuss প্রায়শই যদি 100% মারতে সমস্যা হয় তবে বিকাশকারী কোড পর্যালোচনার আগে প্রযুক্তিগত মালিকের সাথে কথা বলবেন। আমরা খুঁজে পেয়েছি যে একবার আপনি অভ্যাসে পরিণত হন এবং উত্তরাধিকারের কোডটিতে পরীক্ষা যুক্ত করে বিভিন্ন সাধারণ সমস্যা নিয়ে কাজ করার কৌশল শিখেন যে 100% নিয়মিত আঘাত করা আপনার পক্ষে প্রথমদিকে ভাবা যতটা কঠিন নয়।
আমাদের উত্তরাধিকারের কোডটিতে পরীক্ষা যোগ করার কৌশল নিয়ে আসার জন্য মাইকেল ফেদারের "" কার্যকরীভাবে লেগ্যাসি কোডের সাথে কাজ করা "বইটি আমাদের কাছে মূল্যবান বলে মনে হচ্ছে।
না, এটি সম্ভব নয় এবং এটি কখনও হবে না। যদি এটি সম্ভব হত তবে সমস্ত গণিতই চূড়ান্ততার মধ্যে পড়বে। উদাহরণস্বরূপ, আপনি কীভাবে এমন কোনও ফাংশনটি পরীক্ষা করবেন যা দুটি 64 বিট পূর্ণসংখ্যার গ্রহণ করেছিল এবং সেগুলি গুণ করে? প্রোগ্রামটি সঠিক প্রমাণিত করার বিরুদ্ধে পরীক্ষা করার ক্ষেত্রে এটি সর্বদা আমার সমস্যা। সর্বাধিক তুচ্ছ প্রোগ্রাম ব্যতীত অন্য কোনও কিছুর জন্য, পরীক্ষাটি মূলত অকেজো কারণ এটি কেবলমাত্র একটি সংখ্যক কেসকেই কভার করে। এটি এক হাজার নম্বর যাচাই করার মতো এবং আপনি গোল্ডবাচের অনুমানটি প্রমাণ করেছেন like