একটি ওয়েব অ্যাপ্লিকেশনের ব্যাকএন্ড পরীক্ষা করা উন্নয়ন প্রক্রিয়া এবং যেকোনো চলমান পর্যবেক্ষণের একটি গুরুত্বপূর্ণ অংশ। এছাড়াও, ফ্রন্টএন্ডের জন্য পরীক্ষা দেখুন।
গবেষণা বা পরীক্ষা চালিত উন্নতি
টেস্ট-ড্রাইভেন ডেভেলপমেন্ট (টিডিডি) তে, একটি অ্যাপ্লিকেশন সম্পূর্ণরূপে বাস্তবায়িত হওয়ার আগে আবেদনের প্রয়োজনীয়তাগুলি পরীক্ষার ক্ষেত্রে অনুবাদ করা হয়। বিকাশের সময়, এই পরীক্ষাগুলি প্রথমে লেখা হয় এবং অ্যাপ্লিকেশন তৈরি হওয়ার সাথে সাথে ধারাবাহিকভাবে প্রয়োগ করা হয়। পরিষ্কার প্রয়োজনীয়তা (যেমন পরীক্ষার ক্ষেত্রে) নিশ্চিত করে যে চূড়ান্ত কোডটি সুগঠিত, সমস্ত প্রয়োজনীয়তা পূরণ করে এবং সঠিক, যা বিকাশের প্রাথমিক পর্যায়ে বিশেষভাবে গুরুত্বপূর্ণ।
ক্রমাগত ইন্টিগ্রেশন এবং স্বয়ংক্রিয় পরীক্ষা
ক্রমাগত ইন্টিগ্রেশন (CI) পরীক্ষা স্বয়ংক্রিয়ভাবে যেকোন কোড পরিবর্তনের বিরুদ্ধে পরীক্ষা চালায়, যেমন কোড পর্যালোচনার সময় বা যখন কোড আপনার কোড রিপোজিটরিতে মার্জ করা হয়। স্বয়ংক্রিয় পরীক্ষাগুলি বিকাশের সময় ভাঙ্গন বা রিগ্রেশনের ঝুঁকি হ্রাস করে জমা দেওয়া কোডের সামগ্রিক গুণমান এবং আস্থা উন্নত করে। আপনার আবেদনের স্বাস্থ্য নিশ্চিত করতে আপনার পরিবেশের জন্য একটি স্বয়ংক্রিয় পরীক্ষার সিস্টেম সেট আপ করার পরামর্শ দেওয়া হচ্ছে। আপনার স্থাপত্য, প্ল্যাটফর্ম এবং ভাষা দ্বারা সমর্থিত একটি সিস্টেম ব্যবহার করুন এবং আপনার বিকাশ পাইপলাইনে নির্বিঘ্নে একত্রিত করুন; উদাহরণস্বরূপ, একটি CI ওয়ার্কফ্লো বা আপনার কনফিগারেশনের জন্য কাস্টমাইজ করা ক্লাউড বিল্ট-ইন একটি কাস্টম CI পাইপলাইনের জন্য GitHub অ্যাকশন ব্যবহার করুন।
স্বয়ংক্রিয় পরীক্ষার পিছনের নীতিগুলি এবং কীভাবে আপনার পরীক্ষাগুলি উন্নত করা যায় সে সম্পর্কে আরও জানুন। ক্রমাগত একীকরণ পরীক্ষা এবং বাস্তবায়ন, সেট আপ এবং সাফল্য পরিমাপের জন্য সর্বোত্তম অনুশীলন সম্পর্কে আরও জানুন।
পরবর্তী পদক্ষেপ হিসাবে, আপনার অ্যাপ্লিকেশনে পরিবর্তন এবং আপডেটগুলি স্বয়ংক্রিয়ভাবে স্থাপন করতে একটি স্বয়ংক্রিয় ধারাবাহিক বিতরণ (CD) পাইপলাইন বিবেচনা করুন৷
অংশ পরিক্ষাকরণ
ইউনিট টেস্টিং কোডের ছোট, স্বয়ংসম্পূর্ণ অংশগুলিকে বিচ্ছিন্নভাবে পরীক্ষা করা বোঝায়। একটি ইউনিট টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করুন যা আপনার ব্যাকএন্ড ভাষা বা ফ্রেমওয়ার্কের জন্য প্রস্তাবিত এবং জনপ্রিয়। উদাহরণস্বরূপ, একটি মনোলিথিক জাভা-ভিত্তিক অ্যাপ্লিকেশনের জন্য, JUnit ব্যবহার করুন, বা একটি জাভাস্ক্রিপ্ট-ভিত্তিক সার্ভারহীন অ্যাপ্লিকেশনের জন্য (ডার্ট বা টাইপস্ক্রিপ্ট সহ), জাভাস্ক্রিপ্ট পরীক্ষার জন্য নির্মিত একটি কাঠামো ব্যবহার করুন, যেমন জেস্ট ।
বেশিরভাগ আধুনিক ব্যাকএন্ড ফ্রেমওয়ার্কগুলিতে পরীক্ষার জন্য উত্সর্গীকৃত সংস্থান রয়েছে। স্বয়ংক্রিয় পরীক্ষা করার জন্য আপনার CI পাইপলাইনে এই বৈশিষ্ট্যগুলিকে একীভূত করার কথা বিবেচনা করুন। নিশ্চিত করুন যে আপনার ইউনিট পরীক্ষা আপনার অ্যাপ্লিকেশনের ভাল কোড কভারেজ প্রদান করে। বেশিরভাগ টেস্টিং ফ্রেমওয়ার্ক আপনার পরীক্ষার কভারেজ বিশ্লেষণ এবং রিপোর্ট করার বৈশিষ্ট্যগুলি প্রদান করে এবং আপনার বিল্ড পাইপলাইনে একীকরণের অনুমতি দেয়।
ইন্টিগ্রেশন টেস্টিং
ইন্টিগ্রেশন টেস্টিং বৃহত্তর মডিউল বা আপনার অ্যাপ্লিকেশনের অংশ একসাথে পরীক্ষা করা বোঝায়। ইউনিট পরীক্ষার তুলনায় (যা কোডের পৃথক অংশগুলিতে ফোকাস করে), ইন্টিগ্রেশন টেস্টিং আপনার আর্কিটেকচারের পৃথক অংশগুলির একীকরণের উপর ফোকাস করে। এটি অ্যাপ্লিকেশন জুড়ে একাধিক ধাপ এবং মডিউল কভার করে এন্ড-টু-এন্ড প্রবাহও অন্তর্ভুক্ত করতে পারে।
ইন্টিগ্রেশন পরীক্ষাগুলি আপনার অ্যাপ্লিকেশনের বিভিন্ন মডিউলগুলিকে কভার করতে পারে যার জন্য বাহ্যিক পরিষেবাগুলির সাথে ইন্টারঅ্যাকশনের প্রয়োজন হতে পারে, যেমন ডেটা স্টোরেজ, ফাইল সিস্টেম বা অর্থপ্রদান। নির্ভরতা ইনজেকশন বা আপনার ব্যাকএন্ড ফ্রেমওয়ার্ক দ্বারা প্রদত্ত অনুরূপ বৈশিষ্ট্যগুলির মাধ্যমে এই পরিষেবাগুলির জন্য বিমূর্ততা সমর্থন করার জন্য আপনার অ্যাপ্লিকেশনের গঠন বিবেচনা করুন।
আচরণ এবং কার্যকরী পরীক্ষা
একটি অস্বচ্ছ বাক্স হিসাবে ব্যাকএন্ড (বা স্বতন্ত্র মডিউল বা উপাদান) এর কাছে যাওয়া, কার্যকরী পরীক্ষা সিস্টেমের ইনপুট এবং আউটপুটের উপর ফোকাস করে। যদিও আচরণগত পরীক্ষা ফ্রন্টএন্ডের জন্য আরও সাধারণ হতে পারে, এটি একটি ব্যাকএন্ড সিস্টেমের এন্ড-টু-এন্ড অখণ্ডতা নিশ্চিত করতে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এই ধরনের পরীক্ষাগুলি নিশ্চিত করে যে সিস্টেমটি বিভিন্ন ইনপুটগুলিতে প্রত্যাশিতভাবে প্রতিক্রিয়া দেখায় এবং আচরণ করে।
রিগ্রেশন টেস্টিং
রিগ্রেশন টেস্টিং সেই পরীক্ষাগুলিকে বোঝায় যা নিশ্চিত করে যে অ্যাপ্লিকেশনটি এখনও প্রত্যাশিতভাবে আচরণ করে। পূর্বে সফলভাবে সম্পন্ন করা পরীক্ষাগুলি যেকোনও নতুন পরিবর্তনের জন্য পুনরায় চালানো হয় যাতে নিশ্চিত করা যায় যে পরিবর্তনগুলি পূর্ববর্তী কোন সমস্যাগুলিকে পুনরায় প্রবর্তন করেনি। একটি অ্যাপ্লিকেশনে বাগ সংশোধন করা হলে, বাগ পুনরাবৃত্তি না হয় তা নিশ্চিত করার জন্য ইউনিট বা ইন্টিগ্রেশন পরীক্ষা যোগ করা উচিত। রিগ্রেশন পরীক্ষাগুলিকে সাধারণ পরীক্ষার মধ্যে একত্রিত করা উচিত এবং পাইপলাইন তৈরি করা উচিত।
ধোঁয়া পরীক্ষা
স্মোক টেস্টিং , যাকে বিল্ড ভেরিফিকেশন টেস্টিংও বলা হয়, আপনার ব্যাকএন্ড অ্যাপ্লিকেশনের সবচেয়ে গুরুত্বপূর্ণ ফাংশন যাচাই করার উপর ফোকাস করে। ইন্টিগ্রেশন পরীক্ষার বাইরেও প্রসারিত, যা কিছু বৈশিষ্ট্য এবং বাহ্যিক নির্ভরতাকে বিমূর্ত করে, ধোঁয়া পরীক্ষা আপনার অ্যাপ্লিকেশনের জন্য গুরুত্বপূর্ণ ব্যবহারের ক্ষেত্রে কভার করে। সঠিক আচরণ নিশ্চিত করার জন্য একটি অ্যাপ্লিকেশন স্টেজিং পরিবেশে উন্নীত হওয়ার আগে স্মোক টেস্টিং যাচাইকরণের একটি অতিরিক্ত স্তর হিসাবে কাজ করতে পারে। ধোঁয়া পরীক্ষায় একটি QA দল দ্বারা পরিচালিত স্বয়ংক্রিয় ইউনিট পরীক্ষা বা ম্যানুয়াল কার্যকরী পরীক্ষাগুলি থাকতে পারে।
উত্পাদন এবং স্টেজিং পরিবেশ
একটি স্টেজিং এনভায়রনমেন্ট হল আপনার প্রোডাকশন এনভায়রনমেন্টের একটি কপি, পরীক্ষার সুবিধার্থে স্যান্ডবক্স করা। একটি উত্সর্গীকৃত স্থাপনা উত্পাদন পরিবেশের সাথে সমস্যার ঝুঁকি হ্রাস করে এবং গুণমানের নিশ্চয়তা পরিচালনা করা সহজ করে তোলে। স্টেজিং পরিবেশ আপনাকে লাইভ উত্পাদন পরিবেশের কাছাকাছি একটি সিস্টেম পরীক্ষা করতে দেয়।
খরচ বা ব্যাকএন্ড আর্কিটেকচারের জটিলতার কারণে উৎপাদন পরিবেশের 1-এর জন্য-1 কপি থাকা সম্ভব নয়। ব্যাকএন্ডের কোন অংশগুলি সবচেয়ে গুরুত্বপূর্ণ তা বিবেচনা করুন এবং স্টেজিং পরিবেশের জন্য সেগুলিকে অপ্টিমাইজ করুন৷
প্রোডাকশনে ব্যবহৃত ডেটার বিরুদ্ধে পরীক্ষা বাস্তব-বিশ্বের ডেটার সাথে অ্যাপ্লিকেশন কীভাবে আচরণ করে তা পরীক্ষা করার জন্য একটি দুর্দান্ত সুবিধা দেয়। এই ধরনের স্টেজিং এনভায়রনমেন্টের জন্য গোপনীয়তার প্রভাব এবং ডেটা স্টোরেজের প্রয়োজনীয়তা বিবেচনা করতে ভুলবেন না এবং আপনার ব্যাকএন্ড সিস্টেম দ্বারা ব্যবহৃত ডেটা সাবধানে ডিজাইন করুন। এই ধরনের পরিবেশে অ্যাক্সেস শক্তভাবে নিয়ন্ত্রিত করা উচিত, বিশেষ করে যদি উৎপাদন ডেটা ব্যবহার করা হয়।
আপনার সিস্টেমের স্কেল বিবেচনা করুন এবং একটি স্থায়ী পরিবেশ আপনার অ্যাপ্লিকেশনের জন্য উপযুক্ত কিনা। রোলিং স্টেজিং এনভায়রনমেন্ট যা একটি ক্রমাগত ডেলিভারি সিস্টেমের মাধ্যমে স্বয়ংক্রিয়ভাবে স্থাপন করা যেতে পারে তারা দৈনিক বা সাপ্তাহিক বিল্ডগুলি পরীক্ষা করার অতিরিক্ত সুযোগ দেয় এবং মুক্তির আগে তাদের অতিরিক্ত যাচাই-বাছাই করে।
আরেকটি পদ্ধতি হল সম্পূর্ণরূপে নিয়োজিত স্টেজিং পরিবেশের পরিবর্তে ক্রমাগত ইন্টিগ্রেশন পরীক্ষা এবং স্বয়ংক্রিয় সিস্টেমের উপর বেশি নির্ভর করা। আপনার দলের কর্মপ্রবাহ, সিস্টেম স্বাস্থ্য, কোড কভারেজ, এবং প্রযুক্তিগত প্রয়োজনীয়তা বিবেচনা করুন।