একটি প্রকল্পে যেখানে অ-কার্যকরী প্রয়োজনীয়তা রয়েছে যা একটি নির্দিষ্ট ক্রিয়াকলাপের জন্য সর্বাধিক প্রয়োগের সময় নির্দিষ্ট করে, QA অবশ্যই একটি নির্দিষ্ট ডেডওয়ারের অধীনে নির্ভুল লোডের অধীনে হার্ডওয়ার এবং লোড উভয়ই প্রয়োজনীয়তার সাথে নির্দিষ্ট করে রেখে এই ডেডিকেটেড মেশিনে এই ক্রিয়াটির কার্যকারিতা পরীক্ষা করে দেখতে হবে।
অন্যদিকে সোর্স কোডে কিছু ভ্রান্ত পরিবর্তন পারফরম্যান্সকে মারাত্মকভাবে প্রভাবিত করতে পারে। এই নেতিবাচক প্রভাবটি তাড়াতাড়ি পর্যালোচনা করে , উত্স কোডটি সোর্স নিয়ন্ত্রণে পৌঁছানোর আগে এবং কিউএ বিভাগ দ্বারা যাচাই করা হওয়ার আগে , QA বিভাগ দ্বারা সমস্যাটি প্রতিবেদন করার সময় নষ্ট হয়ে যাওয়ার পক্ষে উপকারী হতে পারে এবং বিকাশকারী এটি পরে বেশ কয়েকটি প্রতিশ্রুতি সংশোধন করে।
এটি করার জন্য, এটি কি একটি ভাল ধারণা:
একই ক্রিয়াকলাপটি চালানোর জন্য সময় ব্যয় করার জন্য ইউনিট পরীক্ষাগুলি ব্যবহার করতে² n বার,
সি # তে বৈশিষ্ট্যটির মাধ্যমে প্রতি পরীক্ষার সময়সীমা ব্যবহার করতে
[TestMethod, Timeout(200)]
?
আমি এই পদ্ধতির সাথে বেশ কয়েকটি সমস্যা আশা করি:
ধারণামূলকভাবে , ইউনিট পরীক্ষাগুলি আসলে এর জন্য নয়: তারা কোনও কোডের একটি ছোট্ট অংশের পরীক্ষা করার প্রত্যাশা করে, এর বেশি কিছুই না: কার্যকরী প্রয়োজনের চেক, না কোনও ইন্টিগ্রেশন টেস্ট, না পারফরম্যান্স পরীক্ষা।
ভিজ্যুয়াল স্টুডিওতে ইউনিট পরীক্ষার সময়সীমা কি সেই পরিমাপের প্রত্যাশা করা সত্যিই পরিমাপ করে, সেই পরীক্ষাগুলির জন্য ইনিশিয়েশন এবং ক্লিনআপ অস্তিত্বহীন বা ফলাফলগুলিকে প্রভাবিত করতে খুব কম হয়?
এইভাবে পারফরম্যান্স পরিমাপ করা কুৎসিত। হার্ডওয়্যার, লোড ইত্যাদি থেকে স্বাধীনভাবে কোনও মেশিনে একটি মাপদণ্ড চালানো এমন একটি মানদণ্ড করা যা দেখায় যে একটি ডাটাবেস পণ্য সর্বদা অন্যের চেয়ে দ্রুত থাকে। অন্যদিকে, আমি আশা করি না যে এই ইউনিট পরীক্ষাগুলি একটি চূড়ান্ত ফলাফল হবে, বা কিউএ বিভাগ দ্বারা ব্যবহৃত হয় যা কিছু । এই ইউনিট পরীক্ষাগুলি কেবল প্রত্যাশিত পারফরম্যান্স সম্পর্কে সাধারণ ধারণা দেওয়ার জন্য এবং মূলত বিকাশকারীকে সতর্ক করতে ব্যবহার করা হবে যে তার শেষ পরিবর্তনটি কিছুটা ভঙ্গ করেছে, কর্মক্ষমতা মারাত্মকভাবে প্রভাবিত করে ।
টেস্ট চালিত বিকাশ (টিডিডি) এই পরীক্ষাগুলির পক্ষে অসম্ভব impossible কোডটি প্রয়োগ করা শুরু করার আগে এটি কীভাবে প্রথম স্থানে ব্যর্থ হবে?
প্রচুর পারফরম্যান্স টেস্টগুলি পরীক্ষা চালানোর জন্য প্রয়োজনীয় সময়কে প্রভাবিত করবে, সুতরাং এই পদ্ধতিটি কেবল সংক্ষিপ্ত ক্রিয়াতে সীমাবদ্ধ।
এই সমস্যাগুলি বিবেচনায় নিয়ে আমি এখনও কিউএ বিভাগের বাস্তব পারফরম্যান্সের মেট্রিকগুলির সাথে মিলিত হলে এই জাতীয় ইউনিট পরীক্ষাগুলি ব্যবহার করা আকর্ষণীয় মনে করি।
আমি কি ভূল? অন্যান্য সমস্যা আছে যা এটির জন্য ইউনিট পরীক্ষাটি ব্যবহার করা একেবারেই অগ্রহণযোগ্য করে তোলে?
যদি আমি ভুল হয়ে যাই তবে উত্স কোডটি উত্স নিয়ন্ত্রণে পৌঁছানোর আগে এবং QA বিভাগ দ্বারা যাচাই করার আগে উত্স কোডের পরিবর্তনটি মারাত্মকভাবে প্রভাবিত করে এমন বিকাশকারীকে সতর্ক করার সঠিক উপায় কী?
¹ প্রকৃতপক্ষে, ইউনিট পরীক্ষাগুলি কেবল তুলনামূলকভাবে হার্ডওয়্যার পারফরম্যান্সযুক্ত বিকাশকারী পিসিগুলিতে চালিত হবে বলে আশা করা হচ্ছে, যা দ্রুততম মেশিনগুলির মধ্যে ব্যবধান হ্রাস করে যা কার্য সম্পাদন পরীক্ষায় কখনও ব্যর্থ হতে সক্ষম হবে না এবং ধীরতম মেশিনগুলি যা এটি পাস করতে কখনই সফল হবে না।
Action ক্রিয়া দ্বারা, আমি কোডের পরিবর্তে একটি সংক্ষিপ্ত অংশ বলতে চাই যা চালাতে কয়েক মিলিসেকেন্ড ব্যয় করে।