Database testing
ডাটাবেজ পরীক্ষায় সাধারণত একটি স্তরযুক্ত প্রক্রিয়া থাকে, যার মধ্যে রয়েছে ইউজার ইন্টারফেস (ইউআই) স্তর, ব্যবসায়িক স্তর, ডেটা অ্যাক্সেস স্তর এবং ডাটাবেস নিজেই। ইউআই স্তরটি ডাটাবেসের ইন্টারফেস নকশা নিয়ে কাজ করে, অন্যদিকে ব্যবসায়িক স্তরে ব্যবসায়িক কৌশলগুলিকে সমর্থনকারী ডাটাবেস অন্তর্ভুক্ত থাকে। উদ্দেশ্য ডেটাবেস, একটি সার্ভারে আন্তঃসংযুক্ত ফাইলের সংগ্রহ, তথ্য সংরক্ষণ, একই ধরনের ডেটা নিয়ে কাজ নাও করতে পারে, অর্থাৎ। ডাটাবেসগুলি বৈচিত্র্যময় হতে পারে। ফলস্বরূপ, বড় ডাটাবেস সিস্টেমে অনেক ধরনের বাস্তবায়ন এবং ইন্টিগ্রেশন ত্রুটি ঘটতে পারে, যা সিস্টেমের কর্মক্ষমতা, নির্ভরযোগ্যতা, ধারাবাহিকতা এবং নিরাপত্তাকে নেতিবাচকভাবে প্রভাবিত করে। সুতরাং, একটি ডাটাবেস সিস্টেম পাওয়ার জন্য পরীক্ষা করা গুরুত্বপূর্ণ যা একটি ডাটাবেস ম্যানেজমেন্ট সিস্টেমের এসিআইডি বৈশিষ্ট্যগুলি (পারমাণবিকতা, ধারাবাহিকতা, বিচ্ছিন্নতা এবং স্থায়িত্ব) সন্তুষ্ট করে। সবচেয়ে গুরুত্বপূর্ণ স্তরগুলির মধ্যে একটি হল ডেটা অ্যাক্সেস স্তর, যা যোগাযোগ প্রক্রিয়া চলাকালীন সরাসরি ডেটাবেসগুলির সাথে কাজ করে। ডাটাবেজ পরীক্ষা মূলত এই স্তরে হয় এবং এতে পণ্য ডাটাবেসের গুণমান নিয়ন্ত্রণ এবং গুণমান নিশ্চিতকরণের মতো পরীক্ষার কৌশল জড়িত থাকে। এই বিভিন্ন স্তরে পরীক্ষা প্রায়শই ডাটাবেস সিস্টেমের সামঞ্জস্য বজায় রাখতে ব্যবহৃত হয়, যা সাধারণত নিম্নলিখিত উদাহরণগুলিতে দেখা যায়ঃ ব্যবসায়িক দৃষ্টিকোণ থেকে ডেটা গুরুত্বপূর্ণ। গুগল বা সিমেনটেকের মতো সংস্থাগুলি, যারা ডেটা স্টোরেজের সাথে যুক্ত, তাদের একটি টেকসই এবং সামঞ্জস্যপূর্ণ ডাটাবেস সিস্টেম থাকতে হবে। যদি সন্নিবেশ, মুছে ফেলা এবং আপডেটের মতো ডাটাবেস ক্রিয়াকলাপগুলি প্রথমে সামঞ্জস্যের জন্য ডাটাবেস পরীক্ষা না করেই সঞ্চালিত হয়, তবে সংস্থাটি পুরো সিস্টেমের ক্র্যাশের ঝুঁকি নেয়। কিছু সংস্থার বিভিন্ন ধরনের ডাটাবেস রয়েছে এবং বিভিন্ন লক্ষ্য ও মিশনও রয়েছে। উক্ত লক্ষ্যগুলি পূরণ করার জন্য কার্যকারিতার একটি স্তর অর্জনের জন্য, তাদের ডাটাবেস সিস্টেম পরীক্ষা করতে হবে। পরীক্ষার বর্তমান পদ্ধতির চেয়ে আরও বেশি প্রয়োজন হতে পারে যেখানে ডেভেলপাররা আনুষ্ঠানিকভাবে ডেটাবেসগুলি পরীক্ষা করে। যাইহোক, এই পদ্ধতিটি যথেষ্ট কার্যকর নয় কারণ যোগাযোগের ব্যবধানের কারণে ডাটাবেস ডেভেলপাররা পরীক্ষার প্রক্রিয়াটিকে ধীর করে দিতে পারে। একটি পৃথক ডাটাবেস পরীক্ষার দল যুক্তিসঙ্গত বলে মনে হয়। ডাটাবেস টেস্টিং মূলত ডেটাবেসে ত্রুটি খুঁজে বের করার সাথে সম্পর্কিত যাতে সেগুলি দূর করা যায়। এটি ডাটাবেস বা ওয়েব-ভিত্তিক ব্যবস্থার মান উন্নত করবে। ডাটাবেস ক্র্যাশ, ভাঙা সন্নিবেশ, মুছে ফেলা বা আপডেটের মতো অন্যান্য সমস্যা মোকাবেলার কৌশল থেকে ডাটাবেস পরীক্ষাকে আলাদা করা উচিত। এখানে, ডাটাবেস রিফ্যাক্টরিং একটি বিবর্তনীয় কৌশল যা প্রয়োগ করা যেতে পারে। পরীক্ষার ধরন এবং প্রক্রিয়াগুলি এই চিত্রটি ব্ল্যাক-বক্স টেস্টিং এবং হোয়াইট-বক্স টেস্টিংয়ের মতো বিভিন্ন ডাটাবেস টেস্টিং পদ্ধতির সময় জড়িত পরীক্ষার ক্ষেত্রগুলি নির্দেশ করে। ব্ল্যাক-বক্স ব্ল্যাক-বক্স পরীক্ষার মধ্যে রয়েছে ইন্টারফেস পরীক্ষা এবং ডাটাবেসের সংহতকরণ, যার মধ্যে রয়েছেঃ ডেটা ম্যাপিং (মেটাডেটা সহ) ইনকামিং ডেটা যাচাই করা কোয়েরি ফাংশন থেকে আউটগোয়িং ডেটা যাচাই করা বিভিন্ন কৌশল যেমন কারণ প্রভাব গ্রাফিং কৌশল, সমতুল্য বিভাজন এবং সীমানা-মান বিশ্লেষণ। এই কৌশলগুলির সাহায্যে ডাটাবেসের কার্যকারিতা পুঙ্খানুপুঙ্খভাবে পরীক্ষা করা যেতে পারে। ব্ল্যাক বক্স পরীক্ষার উপকারিতা এবং অসুবিধাগুলির মধ্যে রয়েছেঃ ব্ল্যাক বক্স পরীক্ষায় টেস্ট কেস জেনারেশন মোটামুটি সহজ। তাদের প্রজন্ম সফ্টওয়্যার বিকাশ থেকে সম্পূর্ণ স্বাধীন এবং উন্নয়নের প্রাথমিক পর্যায়ে করা যেতে পারে। ফলস্বরূপ, প্রোগ্রামারের ডাটাবেস অ্যাপ্লিকেশনটি কীভাবে ডিজাইন করতে হয় সে সম্পর্কে আরও ভাল জ্ঞান রয়েছে এবং ডিবাগিংয়ের জন্য কম সময় ব্যবহার করে। ব্ল্যাক বক্স পরীক্ষার ক্ষেত্রে ব্যয় হোয়াইট বক্স পরীক্ষার ক্ষেত্রে বিকাশের তুলনায় কম। ব্ল্যাক বক্স পরীক্ষার প্রধান ত্রুটি হল প্রোগ্রামটির কতটা পরীক্ষা করা হচ্ছে তা অজানা। এছাড়াও, কিছু ত্রুটি সনাক্ত করা যায় না। হোয়াইট-বক্স হোয়াইট-বক্স টেস্টিং মূলত ডাটাবেসের অভ্যন্তরীণ কাঠামো নিয়ে কাজ করে। নির্দিষ্টকরণের বিবরণ ব্যবহারকারীর কাছ থেকে লুকিয়ে রাখা হয়। এটি ডাটাবেস ট্রিগার এবং যৌক্তিক দৃষ্টিভঙ্গির পরীক্ষার সাথে জড়িত যা ডাটাবেস রিফ্যাক্টরিংকে সমর্থন করতে চলেছে। এটি ডাটাবেস ফাংশন, ট্রিগার, ভিউ, এসকিউএল প্রশ্ন ইত্যাদির মডিউল পরীক্ষা করে। এটি ডাটাবেস টেবিল, ডেটা মডেল, ডাটাবেস স্কিমা ইত্যাদি যাচাই করে। এটি রেফারেন্সিয়াল অখণ্ডতার নিয়মগুলি পরীক্ষা করে। এটি ডেটাবেসের সামঞ্জস্য পরীক্ষা করার জন্য ডিফল্ট টেবিলের মান নির্বাচন করে। হোয়াইট বক্স পরীক্ষায় ব্যবহৃত কৌশলগুলি হল কন্ডিশন কভারেজ, ডিসিশন কভারেজ, স্টেটমেন্ট কভারেজ, সাইক্লোম্যাটিক জটিলতা। ডাটাবেজ পরীক্ষায় হোয়াইট বক্স পরীক্ষার প্রধান সুবিধা হল কোডিং ত্রুটিগুলি সনাক্ত করা হয়, যাতে ডাটাবেসের অভ্যন্তরীণ বাগগুলি নির্মূল করা যায়। সাদা বাক্স পরীক্ষার সীমাবদ্ধতা হল যে এসকিউএল বিবৃতিগুলি অন্তর্ভুক্ত নয়। ডাটাবেজ পরীক্ষার জন্য পরীক্ষার কেস তৈরি করার সময়, পরীক্ষার ক্ষেত্রে এসকিউএল বিবৃতির শব্দার্থবিদ্যা প্রতিফলিত হওয়া প্রয়োজন। সেই উদ্দেশ্যে, হোয়াইট বক্স ডাটাবেস অ্যাপ্লিকেশন টেকনিক (হুডেট) নামে একটি কৌশল ব্যবহার করা হয়। চিত্রে যেমন দেখানো হয়েছে, এসকিউএল বিবৃতিগুলি স্বাধীনভাবে জিপিএল বিবৃতিতে রূপান্তরিত হয়, তারপরে পরীক্ষার ক্ষেত্রে তৈরি করার জন্য ঐতিহ্যবাহী সাদা বাক্স পরীক্ষা করা হয় যার মধ্যে এসকিউএল শব্দার্থবিদ্যা অন্তর্ভুক্ত রয়েছে। চারটি পর্যায় সেট ফিক্সচার টেস্ট রান ফলাফল যাচাইকরণ একটি সেট ফিক্সচার পরীক্ষায় প্রবেশের আগে ডাটাবেসের প্রাথমিক অবস্থা বর্ণনা করে। ফিক্সচার সেট করার পরে, সংজ্ঞায়িত পরীক্ষার ক্ষেত্রে ডাটাবেস আচরণ পরীক্ষা করা হয়। ফলাফলের উপর নির্ভর করে, পরীক্ষার কেসগুলি হয় সংশোধন করা হয় বা যেমন আছে তেমন রাখা হয়। "টিয়ার ডাউন" পর্যায়টি হয় পরীক্ষার সমাপ্তি ঘটায় অথবা অন্যান্য পরীক্ষার ক্ষেত্রে অব্যাহত থাকে। সফল ডাটাবেস পরীক্ষার জন্য প্রতিটি একক পরীক্ষার দ্বারা সম্পাদিত নিম্নলিখিত কর্মপ্রবাহ সাধারণত কার্যকর করা হয়ঃ ডাটাবেস পরিষ্কার করুনঃ যদি পরীক্ষামূলক তথ্য ইতিমধ্যে ডাটাবেসে উপস্থিত থাকে, তবে ডাটাবেসটি খালি করতে হবে। ফিক্সচার সেট আপ করুনঃ পিএইচপিইউনিটের মতো একটি সরঞ্জাম তারপর ফিক্সচারের উপর পুনরাবৃত্তি করবে এবং ডাটাবেসে সন্নিবেশ করবে। পরীক্ষা চালান, ফলাফল যাচাই করুন এবং তারপরে ছিঁড়ে ফেলুনঃ ডাটাবেসটি খালি করার জন্য পুনরায় সেট করার পরে এবং ফিক্সচারগুলি তালিকাভুক্ত করার পরে, পরীক্ষাটি চালানো হয় এবং আউটপুট যাচাই করা হয়। যদি আউটপুট প্রত্যাশিত হিসাবে হয়, তাহলে টিয়ার ডাউন প্রক্রিয়াটি অনুসরণ করা হয়, অন্যথায় পরীক্ষার পুনরাবৃত্তি করা হয়। মাইক্রোসফ্ট এসকিউএল সার্ভার ব্যবহার করার সময় মৌলিক কৌশল এসকিউএল প্রশ্ন বিশ্লেষক একটি সহায়ক সরঞ্জাম। একটি সাধারণভাবে ব্যবহৃত ফাংশন, ক্রিএট _ ইনপুট _ ডায়ালগ ["লেবেল"], ব্যবহারকারীর ইনপুট দিয়ে আউটপুট যাচাই করতে ব্যবহৃত হয়। স্বয়ংক্রিয় ডাটাবেস পরীক্ষার জন্য ফর্মগুলির নকশা, ফ্রন্ট-এন্ড এবং ব্যাক-এন্ড ফর্ম, ডাটাবেস রক্ষণাবেক্ষণ কর্মীদের জন্য সহায়ক। ডেটা লোড টেস্টিংঃ ডেটা লোড টেস্টিংয়ের জন্য সোর্স ডাটাবেস এবং গন্তব্য ডাটাবেস সম্পর্কে জ্ঞান প্রয়োজন। কর্মীরা ডিটিএস প্যাকেজ ব্যবহার করে উৎস ডাটাবেস এবং গন্তব্য ডাটাবেসের মধ্যে সামঞ্জস্যতা পরীক্ষা করে। উৎস ডাটাবেস আপডেট করার সময়, কর্মীরা লক্ষ্য ডাটাবেসের সাথে এটির তুলনা নিশ্চিত করে। ডাটাবেস লোড টেস্টিং প্রশ্নগুলি পরিচালনা করার জন্য ডাটাবেস সার্ভারের ক্ষমতা এবং সেইসাথে ডাটাবেস সার্ভার এবং ক্লায়েন্টের প্রতিক্রিয়া সময় পরিমাপ করে। ডাটাবেজ পরীক্ষায়, পারমাণবিকতা, ধারাবাহিকতা, বিচ্ছিন্নতা, স্থায়িত্ব, অখণ্ডতা, ট্রিগারগুলি কার্যকর করা এবং পুনরুদ্ধারের মতো বিষয়গুলি প্রায়শই বিবেচনা করা হয়। ডাটাবেস পরীক্ষার জন্য সেটআপ রক্ষণাবেক্ষণ করা ব্যয়বহুল এবং জটিল কারণ প্রত্যাশিত সন্নিবেশ, মুছে ফেলা এবং আপডেট ক্রিয়াকলাপের সাথে ডাটাবেস সিস্টেমগুলি ক্রমাগত পরিবর্তিত হচ্ছে। ডাটাবেজ লেনদেনের অবস্থা নির্ধারণের জন্য অতিরিক্ত ওভারহেড জড়িত। ডাটাবেস পরিষ্কার করার পরে, নতুন পরীক্ষার কেসগুলি ডিজাইন করতে হবে। এসকিউএল শব্দার্থকে ডাটাবেস পরীক্ষার ক্ষেত্রে অন্তর্ভুক্ত করার জন্য এসকিউএল বিবৃতিগুলিকে রূপান্তরিত করার জন্য একটি এসকিউএল জেনারেটরের প্রয়োজন হয়। আরও দেখুন ডাটাবেস নরমালাইজেশন সফ্টওয়্যার টেস্টিং ইউনিট টেস্টিং রেফারেন্স বাহ্যিক লিঙ্ক অধ্যায় 8। ডেটাবেজ টেস্টিং, পিএইচপিইউনিট ম্যানুয়াল থেকে রিলেশনাল ডেটাবেজ পরীক্ষার জন্য ডেটাসেট তৈরি করা এসকিউএল টেস্ট কভারেজ অ্যাকোলাইট ফ্রেমওয়ার্ক যা জে. ডি. বি. সি-কে ডেটাবেজ ইঞ্জিন ডেটাবেজ স্বাভাবিকীকরণের জন্য উপহাস করবে।