আমি বর্তমানে বৃহত্তর কোডবেসের একটি অংশকে রিফেক্টর করছি যা কোনও ইউনিট পরীক্ষা ছাড়াই। আমি অবিশ্বাস্য কোডটি কোডটি রিফ্যাক্টর করার চেষ্টা করেছি, অর্থাৎ কোডটি কী করছে এবং কী কী পরিবর্তনগুলি এর অর্থ পরিবর্তন করে না তা অনুমান করার চেষ্টা করে, তবে সাফল্য ছাড়াই: এটি এলোমেলোভাবে কোডবেসের চারপাশে সমস্ত বৈশিষ্ট্যগুলি ভেঙে দেয়।
নোট করুন যে রিফ্যাক্টরিংয়ের মধ্যে লেগ্যাসি সি # কোডকে আরও কার্যকরী স্টাইলে স্থানান্তরিত করা হয় (লিগ্যাসি কোড .NET ফ্রেমওয়ার্ক 3 এবং তারপরে লিনকিউ সহ আরও কিছু বৈশিষ্ট্য ব্যবহার করে না), কোডগুলি তাদের থেকে উপকার পেতে পারে এমন জেনেরিকগুলি যুক্ত করে ইত্যাদি includes
তাদের কত খরচ হবে তা দিয়ে আমি আনুষ্ঠানিক পদ্ধতিগুলি ব্যবহার করতে পারি না ।
অন্যদিকে, আমি অনুমান করি যে কমপক্ষে " যে কোনও রিফ্যাক্টরড লিগ্যাসি কোড ইউনিট পরীক্ষার সাথে আসবে" নিয়মটি কঠোরভাবে অনুসরণ করা উচিত, যতই খরচ পড়ুক না কেন। সমস্যাটি হ'ল আমি যখন 500 টি এলওসি ব্যক্তিগত পদ্ধতির একটি ক্ষুদ্র অংশকে রিফ্যাক্টর করি তখন ইউনিট পরীক্ষা যুক্ত করা একটি কঠিন কাজ বলে মনে হয়।
কোন ইউনিট পরীক্ষাগুলি কোনও কোডের প্রদত্ত অংশের জন্য প্রাসঙ্গিক তা জানতে আমাকে কী সাহায্য করতে পারে? আমি অনুমান করছি যে কোডটির স্থির বিশ্লেষণটি কোনওভাবে উপকারী হবে তবে আমি কী কী সরঞ্জাম এবং কৌশলগুলি ব্যবহার করতে পারি সেগুলি:
আমার ঠিক কী ইউনিট পরীক্ষা করা উচিত তা জেনে নিন,
এবং / অথবা আমি জানি যে পরিবর্তনটি মূল কোডটি এমনভাবে প্রভাবিত করেছে যেটি এখন থেকে ভিন্নভাবে সম্পাদন করছে?
formal methods in software development
যেভাবেই ব্যবহার করতে চাইবেন না কারণ এটি কোনও প্রাক্টিকেট যুক্তি ব্যবহার করে কোনও প্রোগ্রামের যথার্থতা প্রমাণ করতে ব্যবহৃত হয় এবং কোনও বৃহত কোডবেস পুনরায় সংশোধন করার ক্ষেত্রে প্রয়োগযোগ্যতা থাকে না। সাধারণত মেডিকেল অ্যাপ্লিকেশনগুলির মতো ক্ষেত্রে কোডটি সঠিকভাবে প্রমাণিত করার জন্য ব্যবহৃত আনুষ্ঠানিক পদ্ধতিগুলি। আপনি ঠিক বলেছেন এটি করা ব্যয়বহুল, এ কারণেই এটি প্রায়শই ব্যবহৃত হয় না।