আমি এমন একটি ব্যাংকের পক্ষে একটি বৃহত আর্থিক লেনদেন সিস্টেমে কাজ করেছি যা পেনশন এবং বিনিয়োগগুলির তত্ত্বাবধান করে। 15 বছরের বৈশিষ্ট্য পরিবর্তনের পরে, ম্যানুয়াল রিগ্রেশন পরীক্ষার খরচ রিলিজের জন্য 200 ডলারে উঠে গেছে। (10 এম এলওসি, প্রতিদিন 10 ডলার লেনদেন হয়)। এই সিস্টেমটি সংস্থাটির চারপাশে প্রচুর ডেটা স্থানান্তরিত করে অন্যান্য 19 টি সিস্টেমের সাথে ইন্টারফেসও করে। এই সিস্টেমটি জাভাতে প্রয়োগ করা হয়েছিল।
যাইহোক আমরা যা পর্যবেক্ষণ করি তা হ'ল আমরা যত বেশি 'পুনঃব্যবহার' করি, তত বেশি রিগ্রেশন পরীক্ষার ব্যয় বেড়ে যায়। (যে কারণে আপনাকে "আপনার স্পর্শের কোডটি পরীক্ষা করতে হবে" - এবং পুনরায় ব্যবহার / ভাগ করা কোডটি স্পর্শ করা হলে বহুগুণকে প্রভাবিত করে So সুতরাং 'ডিআরওয়াই - নিজেকে পুনরাবৃত্তি করবেন না' - অর্থাত কোড অনুলিপি এবং পেস্ট করবেন না) - আমরা কোড অনুলিপি এবং পেস্ট করার জন্য একটি আর্থিক উত্সাহ লক্ষ্য করি This এটি হ'ল রিগ্রেশন টেস্টের ব্যয় হ্রাস করতে পারে, কারণ আমরা ভাগ করা যায় এমন কোডটি সংশোধন করতে চাই না, কারণ এটি একটি বড় রিগ্রেশন পরীক্ষার প্রভাব ফেলবে))
আমার প্রশ্নটি কি এমন কোনও সফ্টওয়্যার ইঞ্জিনিয়ারিং নীতি রয়েছে যা পুনরায় ব্যবহার এবং রিগ্রেশন পরীক্ষার ব্যয়ের মধ্যকার সম্পর্ককে বর্ণনা করে?
আমি এই প্রশ্নটি জিজ্ঞাসা করার কারণটি হল এটি পরীক্ষা করে দেখার জন্য সিস্টেমটিকে ছোট ছোট ভাগে বিভক্ত করার ক্ষেত্রে কোনও ব্যয় উপকার হয়।
অনুমিতি:
'রিগ্রেশন টেস্ট' এর অর্থ 'গ্রহণযোগ্যতা পরীক্ষা' - অর্থাত্ পরিবেশ ও ডেটা সেটআপগুলি সহ ব্যবসায়ের পক্ষে সিস্টেমের বিরুদ্ধে নতুন লিখতে এবং পুরাতন পরীক্ষাগুলির পুনরায় ব্যবহার করতে আরেকটি গ্রুপ ব্যয় করে।
আমি জানি একটি বড় রিগ্রেশন টেস্ট ব্যয়ের জন্য হাঁটু-ঝাঁকুনির প্রতিক্রিয়া হ'ল আরও বেশি স্বয়ংক্রিয় পরীক্ষা। এটি একটি ভাল নীতি। এই পরিবেশে বেশ কয়েকটি চ্যালেঞ্জ রয়েছে।
(ক) স্বয়ংক্রিয় পরীক্ষাগুলি সিস্টেমের সীমানা জুড়ে কম কার্যকর, যদি না সেই সিস্টেমে উচ্চতর স্বয়ংক্রিয় পরীক্ষার কভারেজ না থাকে। (প্রভাব চ্যালেঞ্জের ক্ষেত্র)।
(খ) আপনার সিস্টেমটি ইতিমধ্যে বড় এবং জটিল হয়ে উঠলে উচ্চতর স্বয়ংক্রিয় পরীক্ষামূলক কভারেজের জন্য প্রোগ্রামার সময় বা মূলধন বিনিয়োগের গতি অর্জন করা সাংস্কৃতিকভাবে কঠিন।
(গ) স্বয়ংক্রিয় পরীক্ষাগুলি বজায় রাখার ব্যয় কোনও প্রকল্পে লুকানো থাকে এবং তাই এগুলি সহজেই প্রকল্প পর্যায়ে ফেলে দেওয়া হয়।
(d) এটি কেবল একটি ব্যাংকে কাজ করার সাংস্কৃতিক বাস্তবতা।
(ঙ) আমি এই সমস্যাটি অন্যভাবে (পচন) সমাধান করার জন্য কাজ করছি।