সংস্করণ নিয়ন্ত্রণে পরীক্ষার ডেটা পরীক্ষা করা উচিত?


40

আমি এমন কোনও বৈশিষ্ট্যের জন্য কিছু পরীক্ষার কোড লিখছি যা পিডিএফ ফাইলগুলি প্রক্রিয়া করে। পরীক্ষাগুলির পিছনে মূল ধারণাটি হ'ল আমি তাদের নির্দিষ্ট করা কয়েকটি পিডিএফগুলির দিকে নির্দেশ করছি, তারা সেগুলি প্রক্রিয়া করে এবং আমি পরীক্ষা করে দেখি যে আউটপুটটি আমি প্রত্যাশা করি।

আমার প্রশ্ন: আমি এই বড়-ইশ পিডিএফগুলি কোথায় সংরক্ষণ করব? কোডের সাথে সংস্করণ নিয়ন্ত্রণে তাদের পরীক্ষা করা উচিত? নাকি এগুলো অন্য কোথাও রেখেছি? স্পষ্টতই, পরীক্ষার কোডটি পিডিএফ (বা এমনকি বিভিন্ন পিডিএফ সহ) ব্যতীত তবে তবুও এগুলি আমাদের সংগ্রহশালায় রাখা ভুল মনে করে।



19
@ মাইকেলKjörling:Tests != Test Data
রবার্ট হার্ভে

4
@ রবার্টহারভে সত্য, তবে টেস্টটি কাজ করার জন্য যদি পরীক্ষার ডেটা প্রয়োজন হয় তবে আমি মনে করি এটি পরীক্ষার একটি অংশ হিসাবে বিবেচনা করা উচিত। এগুলি এখনও পর্যন্ত তিনটি উত্তর দ্বারা গৃহীত পন্থা, যেমন আমি তাদের বুঝতে পারি।
একটি সিভিএন

উত্তর:


84

আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেমে বিতরণ করার জন্য একটি অ্যাপ্লিকেশন তৈরি করতে, সংকলন করতে, পরীক্ষা করতে এবং প্যাকেজ করার জন্য প্রয়োজনীয় সমস্ত কিছু থাকা উচিত (যেমন এমএসআই, আরপিএম)। আমি বিল্ড কনফিগারেশনগুলি তর্ক করব এবং অন্যান্য স্ক্রিপ্টগুলিও সংস্করণ নিয়ন্ত্রণে থাকা উচিত।

আমার কোনও প্রকল্প চেক করতে সক্ষম হওয়া উচিত এবং সম্পূর্ণ সংকলন, বিল্ড এবং পরীক্ষার পরিবেশ থাকতে হবে।

পরীক্ষার ডেটা পরীক্ষা করার জন্য দুটি পন্থা রয়েছে। প্রথমত, আপনি নিজেই পরীক্ষার ডেটা পরীক্ষা করতে পারেন (এই ক্ষেত্রে পিডিএফ)। দ্বিতীয়ত, আপনি উত্স ডেটা যাচাই করতে পারেন যা পরীক্ষার ডেটা তৈরি করতে ব্যবহার করা যেতে পারে (যদি প্রযোজ্য হয়)। এটি কোনও এসকিউএল স্ক্রিপ্ট হতে পারে যা পরীক্ষার ডেটাযুক্ত ফাঁকা ডাটাবেসে লোড করা হতে পারে, বা কোনও পাঠ্য-ভিত্তিক ফাইল যা পিডিএফ বা অন্য ফাইলগুলিতে সংকলিত হতে পারে।

অন্যরা সংস্করণ নিয়ন্ত্রণে সবকিছু যাচাই করার সাথে একমত হতে পারে না , তবে আমি আমার পেশাদার অভিজ্ঞতায় পেয়েছি যে পুরো পরিবেশটি স্ক্র্যাচ থেকে পুনর্নির্মাণে সক্ষম হবে তা নিশ্চিত করা গুরুত্বপূর্ণ।


20
হ্যাঁ. অবশ্যই হ্যাঁ. এটি ২০১৪, সংশোধন নিয়ন্ত্রণ ব্যবহারের কোনও যুক্তি নেই যা বাইনারি ফাইলগুলি নির্বিঘ্নে পরিচালনা করে না।
কিলিয়ান পাথ

4
আমি সম্মত, তবে আপনি অবশ্যই পরিস্থিতি এড়াতে চান যেখানে আপনি জাঙ্ক আইটেমগুলিতেও পরীক্ষা করছেন। উদাহরণস্বরূপ, যদি পরীক্ষার ডেটাতে কোনও "আউটপুট" ফোল্ডার অন্তর্ভুক্ত থাকে যা পরীক্ষার দ্বারা উত্পন্ন সমস্ত পিডিএফ ফাইল থাকে, তবে আপনি এটিকে সংগ্রহস্থলে অন্তর্ভুক্ত করতে চাইবেন না। তবে আমি সম্মত হই যে পরীক্ষাগুলি নিজেরাই রেপোর অংশ হওয়ার পাশাপাশি এটি চালানোর জন্য প্রয়োজনীয় কোনও প্যাকেজ হওয়া উচিত।
কেনেথ গারজা

1
@ কেনেথগার্জা এটি সত্যিই কঠিন নয়। থাম্বের নিয়ম হিসাবে, যে কোনও মূল বিষয়বস্তু (উত্স কোড, পরীক্ষার উত্স কোড, পরীক্ষার ডেটা, মিডিয়া, [বাস্তব] ডকুমেন্টেশন, তৃতীয় পক্ষের গ্রন্থাগারগুলি, স্ক্রিপ্টগুলি বিল্ডিং, টুলিং স্ক্রিপ্টস, রূপান্তর স্ক্রিপ্টস ইত্যাদি) অন্তর্ভুক্ত করা উচিত, যখন সমস্ত ডেটা থাকবে এটি মূল তথ্য থেকে যুক্তিসঙ্গত সময়ে উত্পন্ন করা উচিত নয়। এগুলি পরীক্ষার ফলাফল হিসাবে দেওয়া হয়েছে, সম্ভবত তারা নিজেই পরীক্ষাগুলি চালানোর পরে বোধগম্য হয় , অন্যথায় আপনি আপনার প্রোগ্রামটি পরীক্ষা করছেন না, আপনি আপনার ফাইলগুলির অখণ্ডতা রক্ষা করার জন্য ভিসিএস সফ্টওয়্যারটির দক্ষতা পরীক্ষা করছেন :)
থমাস

1
@ মার্নেনলাইবো-কোসার: ইমপ্লান্টড পেসমেকার লিডসে বৈদ্যুতিক ব্যর্থতা সনাক্ত করতে যে প্রকল্পে আমি কাজ করেছি তার পরীক্ষার স্যুট ছিল 40 গিগাবাইটেরও বেশি। অস্তিত্বের কোনও ভিসিএস নেই যেখানে এটি মোকাবেলা করা অসুবিধাজনক নয়। দুটি রেপো রাখা নিজস্ব প্রশাসনের ঝামেলা, তবে এটি কখনও কখনও আরও ভাল পছন্দ হতে পারে।
18:40 '

1
@ মার্নেনলাইবো-কোসর আপনি পেয়েছেন। ইন্টিগ্রেশন টেস্টগুলি পৃথক রেপোতে রয়েছে এবং ব্যবহারকারী যদি স্থানীয়ভাবে এটি চালাতে চান, নির্ভরতা পরিচালনগুলি তার জন্য জিপ ফাইল আনবে এবং এটি সঙ্কুচিত করবে। সাধারণত অবিচ্ছিন্ন ইন্টিগ্রেশন সার্ভার / ফার্মকে ইন্টিগ্রেশন টেস্ট করার দায়িত্ব দেওয়া হয় এবং ইন্টিগ্রেশন টেস্টগুলি পাস না হওয়া পর্যন্ত মার্জ বৈশিষ্ট্য শাখাকে আটকাবে।
ব্যবহারকারী 482745

15

যদি আপনার প্রস্তুত করা সেটআপ ফাইলগুলি ব্যতীত যদি পরীক্ষাগুলি অকেজো হয় তবে পরীক্ষার কোডের সাথে ফাইলগুলি আপনার ভিসিএসে অন্তর্ভুক্ত করা বুদ্ধিমানের কাজ।

পরীক্ষায় ব্যবহৃত ফাইলগুলি কোড নয়, আপনি কোডটি নির্ভর করে এমন নির্ভরতা হিসাবে দেখতে পারেন। তাই সবকিছু এক সাথে রাখার যোগ্যতা আছে।


কাউন্টারপয়েন্ট হিসাবে, কিছু ভিসিএস বড় বাইনারি ফাইলগুলি ভালভাবে পরিচালনা করে না এবং অন্যদের ভিসিএসে কোনও ধরণের বাইনারি ফাইল অন্তর্ভুক্ত করার তীব্র বিরোধিতা রয়েছে। যদি সেগুলির কোনও একটিই আপনার ক্ষেত্রে প্রযোজ্য হয়, তবে সহজেই অ্যাক্সেস করা কোনও সুপরিচিত জায়গায় পরীক্ষা ফাইলগুলি সংরক্ষণ করাও বোধগম্য হবে।

আমি পরীক্ষার কোডে এমন একটি মন্তব্য দেওয়ার বিষয়েও বিবেচনা করব যা বলে যে " foo.pdfসমস্ত পরীক্ষা চালানোর জন্য নির্ভর করে "।


পরীক্ষাগুলির জন্য পরীক্ষার তথ্য পরীক্ষা করার জন্য আমি কোনও ভুল দেখতে পাচ্ছি না, যদি তা খুঁজে না পাওয়া যায় তবে এটি পাওয়ার চেষ্টা করা (উদাহরণস্বরূপ, কোনও ইউআরএল থেকে) এবং কোনওটিই কাজ না করে ব্যর্থ। নেটওয়ার্কের উপর নির্ভর করা একটি খারাপ ধারণা কারণ এটি পরীক্ষাগুলি ধীরে ধীরে এবং আরও ভঙ্গুর করে তোলে; তবে চেষ্টা না করা চেয়ে কম ভঙ্গুর এবং স্বয়ংক্রিয়ভাবে ডক্স / মন্তব্যগুলি পড়া, এটি পেয়ে এবং এটি জায়গায় রাখার চেয়ে সঠিকভাবে স্বয়ংক্রিয়ভাবে পাওয়া (এবং স্থানীয়ভাবে ক্যাশে করা) পাওয়া যায়।
ওয়ারবো 23

7

যদি এটি স্থির ডেটা হয়, তবে হ্যাঁ এটি সংস্করণ নিয়ন্ত্রণে রাখুন। একবার চেক ইন করার পরে এই ফাইলগুলি সত্যই পরিবর্তিত হবে না; সেগুলি হয় যদি সেই কার্যকারিতাটির আর প্রয়োজন না হয় তবে নতুন পরীক্ষার ফাইলগুলি পাশাপাশি যুক্ত করা হবে। যে কোনও উপায়ে, আপনার জায়গা নেওয়ার ক্ষেত্রে দুর্বল বাইনারিগুলির বিষয়ে চিন্তা করার দরকার নেই।

আপনি থাকেন উৎপাদিত টেস্ট ডেটার যেমন। এলোমেলোভাবে, তারপরে কোনও পরীক্ষায় ব্যর্থ হওয়ার পরে আপনি স্বয়ংক্রিয়ভাবে এটি সংরক্ষণ করা উচিত, তবে অন্যথায় এটি বাতিল করুন। এইভাবে সংরক্ষণ করা যে কোনও ডেটা নিয়মিত রিগ্রেশন টেস্টে রূপান্তরিত করা উচিত, যাতে সেই প্রান্ত-কেসগুলি অবশ্যই অঙ্কনের ভাগ্যের উপর নির্ভর না করে ভবিষ্যতে পরীক্ষা করা উচিত।


2
যদি আপনি এলোমেলোভাবে পরীক্ষার ডেটা তৈরি করে থাকেন, তবে আপনার সত্যিকারের বাইরে গিয়ে পুনরুত্পাদনযোগ্য স্বয়ংক্রিয় পরীক্ষাগুলি লেখার জন্য একটি বই কিনে নেওয়া উচিত।
দাউদ মনিকা 22

5
@ ডেভিডওয়ালেস তাই আপনি কি বলছেন যে পুরো ক্ষেত্রগুলি যেমন ফাজ পরীক্ষা, সম্পত্তি যাচাইকরণ এবং পরিসংখ্যান সংক্রান্ত সফ্টওয়্যার পরীক্ষা না শুধুমাত্র ভুল, তবে ক্ষতিকারক?
ওয়ারবো 23

5
@ ডেভিডওয়ালেস এলোমেলো! = অপ্রয়োজনীয়।
কংগসবঙ্গাস

5
@ ডেভিডওয়ালেস আপনি তখন যা খুশি কল করতে পারেন। এলোমেলো পরীক্ষার ডেটা, রেকর্ড ইনপুট, পুনরায় ব্যবহারের প্রয়োজন হলে পুনরুত্পাদনযোগ্য। আঘাতের জগতে নেতৃত্ব দেয় না।
কংগ্রেসবঙ্গাস

2
@ ডেভিডওয়্যালস "কোন পরীক্ষার ক্ষেত্রে আসলে" প্রয়োজন তা "চিন্তা করা বন্ধ করার পরিবর্তে" "কোনও র্যান্ডম টেস্ট নয়" এর অর্থ এই নয়, এর অর্থ " কেবল এলোমেলো পরীক্ষা নয়"। "আপনি যে বাগটি খুঁজে পেয়েছেন সেই ডেটা পুনরুত্পাদন করতে পারবেন না", আপনি যে উত্তরটি মন্তব্য করছেন তা কি বাস্তবে পড়েছেন? ;)
ওয়ারবো

0

আপনার পরীক্ষা এবং আপনার মূল অ্যাপ্লিকেশন কোড সহ অবশ্যই ডেটাটি অন্তর্ভুক্ত করুন। এটি সত্যই সুসংহত টেস্ট স্যুট করতে সহায়তা করে - সুতরাং আপনি যদি পিডিএফ এক্সট্রাকশনটি পরীক্ষা করছেন (এবং আপনার সেই কোডটি সুন্দরভাবে আবদ্ধ করা হয়েছে) তবে অ্যাপ্লিকেশন কোডের পাথের উপর ভিত্তি করে আপনার পরীক্ষার ডেটাতে একটি পাথ তৈরি করতে সক্ষম হওয়া উচিত - এটা সবসময় আমার জন্য কাজ করে।

গিটের সাহায্যে আপনি কোনও অস্থায়ী আউটপুট বা পরীক্ষার লগিংকে আপনার রেপো দূষিত হতে না পারে তা রক্ষার জন্য .gitignore সেট আপ করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.