আপনি কীভাবে ইউনিট পরীক্ষা করবেন E ইটিএল এবং রিপোর্টিং প্রকল্পগুলির জন্য টিডিডি পদ্ধতি ব্যবহার করবেন?


12

ইটিএল প্রকল্পগুলি এমন একটি প্রকল্প যা একটি ইটিএল (এক্সট্র্যাক্ট - ট্রান্সফর্ম - লোড) সরঞ্জাম যেমন এসএসআইএস, পাওয়ার কেন্দ্রার ইত্যাদি ব্যবহার করে তৈরি করা হয় projects

এর মধ্যে সাধারণত কোনও বাহ্যিক উত্স থেকে ডেটা পড়া, এটি একটি স্টেজিং ডাটাবেসে লোড করা, নির্দিষ্ট রূপান্তর সম্পাদন করা এবং একটি চূড়ান্ত ডাটাবেসে লোড করা জড়িত

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

তারপরে আপনি আউটপুট তৈরি করতে মার্টের শীর্ষে সঞ্চিত প্রক্রিয়াগুলি তৈরি করেন যা ভিজুয়ালাইজেশন তৈরির জন্য রিপোর্টিং সরঞ্জামগুলি (এসএসআরএস \ এক্সেল \ ইত্যাদি) দ্বারা ব্যবহৃত হয়।

আমি এই দৃশ্যে কীভাবে টিডিডি এবং সঠিক ইউনিট পরীক্ষা করতে হবে তা বোঝার চেষ্টা করছি। ইটিএল'র পরীক্ষাগুলি বেশিরভাগ স্টেজিং টেবিলের ম্যাচে লোড হওয়া ডেটা উত্স থেকে প্রাপ্ত ডেটার ডান উপসেট নিশ্চিত করা about সুতরাং এটির জন্য একটি পরীক্ষা বাস্তবায়ন ইটিএল এর একটি মিনি সংস্করণ বাস্তবায়নের দিকে পরিচালিত করে। প্রতিবেদনের এসপি'র আউটপুট তাদের নিজস্ব টেবিলের ডেটাগুলির উপর নির্ভর করে, সুতরাং কোনও রক্ষণাবেক্ষণের দুঃস্বপ্ন ছাড়া কারও কাছে আউটপুট ডেটার একটি স্থিতিশীল সেট থাকতে পারে না এমনকি আপনি যদি স্ক্রাবড পরীক্ষার ডেটাযুক্ত ডেটাবেস তৈরি করেনও night

উদাহরণ:

স্প্রিন্ট 1: শিক্ষার্থীর টেবিলে নাম, বয়স, গ্রেড রয়েছে

আপনি এই টেবিলটির জন্য পরীক্ষার ডেটা এবং তার উপর ভিত্তি করে ইউনিট পরীক্ষা তৈরি করেন

স্প্রিন্ট 2: একটি লিঙ্গ ক্ষেত্র সারণিতে যুক্ত করা হয়েছে।

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


আপনি পরীক্ষিত সরঞ্জামটি ইতিমধ্যে উপস্থিত থাকলে এটি টিডিডি নয়। শুধু সাধারণ পরীক্ষা লিখুন।
রবার্ট হার্ভে

@ রবার্টহারভে বাস্তবে ETL সরঞ্জামটি সি # কোড লেখার সময় নেট ফ্রেমওয়ার্ক থেকে আলাদা নয়? সুতরাং, সরঞ্জামটি একইভাবে বিদ্যমান রয়েছে। নেট কাঠামোটি বিদ্যমান, তবুও আপনি সি # তে টিডিডি করতে পারেন
user87166

আমি ফ্রেমওয়ার্ক পদ্ধতিগুলিও পরীক্ষা করব না। আমি ধরে নিলাম তারা ইতিমধ্যে কাজ করে। আপনি যদি কোনও ইটিএল সরঞ্জামের জন্য একটি কনফিগারেশন পরীক্ষা করছেন, এটি করার জন্য আপনার ইটিএল সরঞ্জামটিতে যুক্তিটি পুনরায় তৈরি করার দরকার নেই; শুধু সরঞ্জাম ব্যবহার করুন।
রবার্ট হার্ভে

1
তারপরে আপনি ETL, প্রস্তাবিত ডেটা এবং প্রস্তাবিত কনফিগারেশন থেকে প্রাপ্ত প্রত্যাশা ব্যবহার করে পরীক্ষাগুলি লিখুন। যদি আপনি চান তবে তাদের ধারণাগত পরীক্ষা করুন, তবে কার্যকারিতা ইতিমধ্যে বিদ্যমান। খাঁটি "প্রথম পরীক্ষা" বিকাশ সেই জিনিসগুলির জন্য যা এখনও বিদ্যমান নেই। আপনি যাই করুন না কেন, ইটিএল সরঞ্জামটি পুনরায় উদ্বেগ করবেন না!
রবার্ট হার্ভে

2
"যেহেতু বেস ডেটাতে বয়স পরিবর্তিত হয়েছে" - ইনপুট হিসাবে স্থিতিশীল পরীক্ষার ডেটা সরবরাহ করা সম্পর্কে এত কঠিন কী ? যদি সময় নির্ভর গণনাগুলি জড়িত থাকে তবে রেফারেন্স টাইমারটি উপহাস করুন।
ডক ব্রাউন

উত্তর:


2

আমি কি অতীতে কাজ করেছেন ব্যবহার স্বীকৃতি পরীক্ষা চালিত উন্নয়ন । ETL কোড প্রায়শই বিভিন্ন পর্যায়ে / ভাষা এবং প্রযুক্তিগুলিতে বিতরণ করা হয় এবং শক্তভাবে মিলিত হয়। বেশিরভাগ ইটিএল প্রক্রিয়া পাইপলাইনে পরিবর্তনের ক্রমের উপর নির্ভরশীল।

শুধুমাত্র ইটিএল-তে ইউনিট পরীক্ষা ব্যবহারের ঝুঁকি হ'ল এটি সংহতকরণগুলিকে আবরণ করবে না। রূপান্তরগুলির ক্রম অনেক ইটিএলগুলিতে প্রকৃত রূপান্তরের সমান অংশ part যদি আমি একটি স্বয়ংক্রিয় পরীক্ষার স্যুট তৈরির জন্য সংস্থানগুলি ব্যয় করছি তবে আমি নিশ্চিত করব যে এটি সিকোয়েন্সিংটিও আচ্ছাদিত।

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


0

ইডিএল টিডিডি দিয়ে করা যেতে পারে এবং বেশিরভাগ প্রকল্পের মতোই পরীক্ষাগুলিও করা যেতে পারে

একটি পরীক্ষা লিখুন যা ব্যর্থ (লাল) ব্যর্থতা (সবুজ) সংশোধন করে কোড সম্পাদন এবং রক্ষণাবেক্ষণযোগ্য (রিফ্যাক্টর)

ETL এর জন্য এটি হতে পারে:

  • 1 রেকর্ড লোড করতে একটি স্ক্রিপ্ট লিখুন
  • ব্যর্থ (কোনও ডেটা উত্স সংজ্ঞায়িত করা হয়নি)
  • উত্স নির্ধারণ [সবুজ]
  • কোন চুল্লী প্রয়োজন
  • শুধুমাত্র 1 টি ফিল্ড পূরণ করে 1 টি রেকর্ড লোড করতে একটি পরীক্ষা লিখুন
  • ব্যর্থ (এই ক্ষেত্রের জন্য কোনও কোড লেখা নেই)
  • ক্ষেত্রের জন্য কোড বিশদ সংজ্ঞায়িত করুন
  • refactor
  • ব্যর্থ পরীক্ষাগুলি সংজ্ঞায়িত করুন যা বৈধ মানগুলির সাথে যুক্ত বৈশিষ্ট্যগুলি অনুসন্ধান করে [লাল]
  • ইত্যাদি

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