এর বেসিক দিয়ে শুরু করা যাক! দুটি সাধারণ পরীক্ষার মোড এবং তিনটি সাধারণ ধরনের পরীক্ষা অটোমেশন অন্বেষণ করা।
আমরা সবাই সেখানে ছিলাম: একটি পুনরাবৃত্তি কোডিং মেম কী যা বাস্তব জীবনে প্রায়শই ঘটে?
এই মেমে এটিকে বেশ সুন্দরভাবে তুলে ধরে: প্রতিটি ড্রয়ার পৃথকভাবে পুরোপুরি ভাল কাজ করে, কিন্তু অন্য ড্রয়ারের সাথে একত্রে, তারা একে অপরকে ব্লক করে এবং কাজ করতে ব্যর্থ হয়। আপনি উভয় ড্রয়ার একে অপরের সাথে ভালভাবে কাজ করতে চান এবং একই সময়ে পরিচালনা করতে চান।
ওয়েব ডেভেলপমেন্টে এটি প্রয়োগ করুন: আপনি কিছু পরীক্ষা লিখেছেন, এমনকি 100% পরীক্ষার কভারেজও অর্জন করেছেন, কিন্তু অন্যান্য অংশগুলি স্থানান্তরিত হয়ে গেলে আপনার অ্যাপ্লিকেশনটিকে এখনও কাজ করতে হবে। ইউনিটগুলি নিজেরাই ভাল কাজ করতে পারে তবে একে অপরের সাথে সম্পর্কযুক্ত নয়। কিছু পরীক্ষা লেখা অত্যন্ত গুরুত্বপূর্ণ কিন্তু এটি আপনার প্রকল্পের জন্য আদর্শ পরীক্ষা সেটআপের শুধুমাত্র একটি অংশ। একটি খুব প্রথম পদক্ষেপ হিসাবে, আপনাকে নিশ্চিত করতে হবে যে অ্যাপ্লিকেশনের গুণমানের কোন অংশগুলি আপনাকে নিশ্চিত করতে হবে এবং আপনি কীভাবে তা অর্জন করতে পারেন।
সহজ কথায়, আপনি প্রকৃত পরীক্ষার কোড লেখা শুরু করার আগে আপনার একটি পরিকল্পনা প্রয়োজন। কীভাবে ব্যবহারিকভাবে পরীক্ষা করা যায় সেই বিষয়ে যোগাযোগ করতে, আসুন একটি পরিষ্কার স্লেট দিয়ে শুরু করি এবং দুটি মৌলিক প্রশ্নের উত্তর দেওয়া যাক:
- আপনি কিভাবে পরীক্ষা করতে চান?
- আপনি কি পরীক্ষা করতে চান?
এই নিবন্ধটি প্রথম প্রশ্নের উত্তর দেওয়ার জন্য আপনাকে যে সাধারণ বিষয়গুলি জানতে হবে তার উপর ফোকাস করে৷ একটি সাধারণ গ্রাউন্ড থেকে শুরু করার জন্য, আসুন প্রথমে শিখে নেওয়া যাক কোন টেস্টিং মোড বিদ্যমান এবং তারপরে সাধারণ ধরনের পরীক্ষার উপর ফোকাস করি। পরবর্তী নিবন্ধগুলিতে, আমরা দ্বিতীয় প্রশ্নের উত্তর দেব, উত্তরগুলি একত্রিত করব এবং আপনার প্রকল্পের জন্য সবচেয়ে ভাল কাজ করে এমন পরীক্ষার কৌশল খুঁজে বের করব। চলো যাই! 🙌
বেসিক দিয়ে শুরু করুন: সাধারণ পরীক্ষার মোড
কিভাবে পরীক্ষা করা যায় এই প্রশ্নের উত্তর দেওয়ার সময়, প্রথম বিন্দুটি স্পষ্ট করার জন্য খুবই বিমূর্ত। আপনার কি ম্যানুয়ালি পরীক্ষা করা উচিত বা একটি কম্পিউটার গ্রহণ করা উচিত? এটা গুরুত্বপূর্ণ, তবে, এখানে বাইনারি চিন্তা মধ্যে পড়া না.
ম্যানুয়াল টেস্টিং বনাম স্বয়ংক্রিয় পরীক্ষা
আপনি যদি মানের নিশ্চয়তা প্রকৌশলীদের পরীক্ষার সংজ্ঞায়িত করতে বলেন, তারা সম্ভবত প্রথমে এটিকে দুটি "মোড"-এ ভেঙ্গে ফেলবে:
- ম্যানুয়াল টেস্টিং । এটি প্রকৃত মানুষের দ্বারা পরিচালিত একটি সাধারণ পরীক্ষার পদ্ধতি। একজন গুণগত নিশ্চয়তা প্রকৌশলী অ্যাপ্লিকেশনটির মাধ্যমে ক্লিক করুন, এটি কাজ করে কিনা তা পরীক্ষা করুন এবং একই সময়ে, এটি ভাঙার চেষ্টা করুন। সবচেয়ে সাধারণ উপায় হল অনুসন্ধানমূলক পরীক্ষা, যেখানে প্রকৌশলী একটি পূর্বনির্ধারিত পথ বা চেকলিস্টের বিরুদ্ধে অ্যাপ্লিকেশন সম্পর্কে তাদের জ্ঞান ব্যবহার করে অ্যাপ্লিকেশনটি তদন্ত করে।
- স্বয়ংক্রিয় পরীক্ষা । এটি একটি কম্পিউটার দ্বারা পরিচালিত এক ধরনের পরীক্ষা। গুণগত নিশ্চয়তা প্রকৌশলীরা পুনরাবৃত্তিমূলক এবং একঘেয়ে পরীক্ষাগুলিকে স্বয়ংক্রিয় করতে এটি প্রয়োগ করে।
গাইডের এই সিরিজগুলি বেশিরভাগই স্বয়ংক্রিয় পরীক্ষার উপর ফোকাস করবে। যাইহোক, আপনার শুধুমাত্র পরীক্ষার একটি উপায়ে ফোকাস করা উচিত নয়। এমনকি যদি অটোমেশন অনেক সময় এবং প্রচেষ্টা সাশ্রয় করে, মানুষ এবং ম্যানুয়াল পরীক্ষা সবসময় একটি গুরুত্বপূর্ণ ভূমিকা পালন করবে। বরং, পরীক্ষার স্বয়ংক্রিয়তা মানুষকে অন্বেষণমূলক পরীক্ষা এবং সৃজনশীল সমস্যা সমাধানে ফোকাস করার জন্য মুক্ত করা উচিত। উদাহরণস্বরূপ, ব্যবহারকারীর অভিজ্ঞতার গুণমান নিশ্চিত করা বা উচ্চ-ঝুঁকিপূর্ণ ব্যবসায়িক যুক্তি রক্ষা করা। অন্য কথায়, অটোমেশন আপনার পিছনে আছে. ❤️
অস্বচ্ছ বাক্স বনাম পরিষ্কার বাক্স
সুতরাং, আপনি পরীক্ষার সাধারণ মোড সংজ্ঞায়িত করেছেন। যাইহোক, এটি এখনও যথেষ্ট নয়। পরীক্ষার কৌশল পরিকল্পনা করার জন্য, আরও একটি প্রশ্নের উত্তর দিতে হবে: আপনার কি জানা উচিত যে আপনার অ্যাপ্লিকেশনটি কীভাবে কাজ করে বা এই জ্ঞান ছাড়াই পরীক্ষা করা ভাল? উত্তরের উপর নির্ভর করে, পরীক্ষার ক্ষেত্রে প্রাপ্ত এবং নির্বাচন করার জন্য দুটি পদ্ধতি বেছে নিতে হবে:
- অস্বচ্ছ বক্স পরীক্ষা (বা কালো বক্স পরীক্ষা)। এটি অভ্যন্তরীণ গঠন বিবেচনা না করে একটি উপাদান বা সিস্টেমের কার্যকরী বা অ-কার্যকর প্রয়োজনীয়তা (নির্দিষ্টকরণ) বিশ্লেষণের উপর ভিত্তি করে।
- ক্লিয়ার বক্স টেস্টিং (বা হোয়াইট বক্স টেস্টিং) হল একটি পদ্ধতি যা উক্ত বক্সের অভ্যন্তরীণ গঠনকে বিবেচনা করে। অন্য কথায়, কিভাবে আপনার আবেদন ফণা অধীনে কাজ করে.
উভয় পদ্ধতি ম্যানুয়াল এবং স্বয়ংক্রিয় পরীক্ষার জন্য প্রয়োগ করা যেতে পারে। যাইহোক, সাধারণ পরীক্ষার মোডগুলির কিছু দিক দুটির মধ্যে একটিতে আরও বেশি ফোকাস করতে পারে - আমরা পরে তা কভার করব। আপাতত, পরীক্ষা অটোমেশনকে আরও ভাগে ভাগ করা যাক।
পরীক্ষা অটোমেশন প্রকার: আপনি কিভাবে পরীক্ষা করতে চান?
আপনি "কিভাবে" প্রশ্নের উত্তর দেওয়ার কাছাকাছি গেলে, আপনি ইতিমধ্যে কিছু ম্যানুয়াল পরীক্ষা করার সিদ্ধান্ত নিয়েছেন। যাইহোক, পরীক্ষার অটোমেশন প্রকারগুলি বেছে নেওয়া এবং প্রয়োগ করা একটু বেশি চ্যালেঞ্জিং। অটোমেশন পরীক্ষার প্রকারগুলি আপনি আপনার প্রকল্পগুলিতে যে মেট্রিকগুলি তৈরি করতে চান তার সাথে ঘনিষ্ঠভাবে সম্পর্কিত৷ সুতরাং এর সবচেয়ে গুরুত্বপূর্ণ এক ঘনিষ্ঠভাবে তাকান যাক.
পূর্বে উল্লিখিত মেমে যেমন চিত্রিত হয়েছে, আপনি ইতিমধ্যে দুটি প্রকারের মধ্যে এসেছেন: ইউনিট টেস্টিং এবং ইন্টিগ্রেশন টেস্টিং। এন্ড-টু-এন্ড টেস্টিং বিবেচনা করা তৃতীয় গুরুত্বপূর্ণ। কিন্তু যে এখনও তাদের সব না. এর একটি ঘনিষ্ঠ কটাক্ষপাত করা যাক.
অংশ পরিক্ষাকরণ
ইউনিট টেস্টিং হল একটি টেস্টিং টাইপ যেখানে একটি অ্যাপ্লিকেশনের ছোটখাট পরীক্ষাযোগ্য অংশ বা ইউনিটগুলি সঠিকভাবে পরিচালনার জন্য পৃথকভাবে এবং স্বাধীনভাবে পরীক্ষা করা হয়। এই ইউনিটগুলি ফাংশন, ক্লাস, বা ইন্টারফেস থেকে পরিষেবা বা সম্পূর্ণ উপাদানগুলিতে পরিবর্তিত হতে পারে। তাদের প্রাথমিক বৈশিষ্ট্যগুলি হল মৃত্যুদন্ডের গতি, বিচ্ছিন্নতা এবং আরামদায়ক রক্ষণাবেক্ষণযোগ্যতা। আপনি যদি ইউনিট পরীক্ষায় আরও গভীরে যেতে চান তবে ইউনিট পরীক্ষার এই নির্দেশিকাটিতে যান।
ইন্টিগ্রেশন টেস্টিং
ইন্টিগ্রেশন টেস্টিং উপাদান বা সিস্টেমের মধ্যে মিথস্ক্রিয়া উপর দৃষ্টি নিবদ্ধ করে। অন্য কথায়, তারা একসাথে কতটা ভাল কাজ করে। ইন্টিগ্রেশন পরীক্ষার সাধারণ উদাহরণ হল API বা উপাদান পরীক্ষা।
এন্ড-টু-এন্ড টেস্টিং
এই পরীক্ষাগুলিকে প্রায়ই UI পরীক্ষা বলা হয় এবং এই নামটি তাদের কার্যকারিতা আরও ভালভাবে ব্যাখ্যা করে। এই পরীক্ষাগুলি সম্পূর্ণ অ্যাপ্লিকেশন স্ট্যাক সহ আপনার অ্যাপ্লিকেশনের UI এর সাথে ইন্টারঅ্যাক্ট করে এবং আপনার অ্যাপ্লিকেশনটি এক প্রান্ত থেকে অন্য প্রান্তে পরীক্ষা করে৷
আপনি যদি গুণমান নিশ্চিতকরণের তত্ত্বটি উল্লেখ করেন তবে সেগুলি একটি সিস্টেম পরীক্ষার অনুরূপ। এই পরীক্ষাগুলি একজন প্রকৃত ব্যবহারকারী এবং তাদের মিথস্ক্রিয়া অনুকরণ করে। এন্ড-টু-এন্ড পরীক্ষাগুলি আরও রানটাইম নেয় কারণ তারা পুরো সিস্টেমকে জড়িত করে এবং আরও রানটাইমের জন্য আরও কম্পিউটিং শক্তি প্রয়োজন। ফলস্বরূপ, এই অতিরিক্ত প্রচেষ্টার ফলে উচ্চ রক্ষণাবেক্ষণ খরচ হয়।
ভিজ্যুয়াল UI পরীক্ষা
UI পরীক্ষার একটি আকর্ষণীয় উপশ্রেণি হল ভিজ্যুয়াল পরীক্ষা। এই পরীক্ষাগুলি হল বর্ধিত এন্ড-টু-এন্ড পরীক্ষা যা একটি অ্যাপ্লিকেশনের দৃশ্যমান আউটপুট যাচাই করার একটি উপায় প্রদান করে। এই ধরনের পরীক্ষা একটি পরিবর্তনের পরে একটি স্ক্রিনশট নেয় এবং "স্থিতাবস্থা" (বা গোল্ডেন ফাইল) সম্বলিত আরেকটি স্ক্রিনশট নেয়, তারপর সেই ফলাফলগুলি একজন মানব পর্যালোচককে পরিদর্শন ও পরীক্ষা করার জন্য প্রদান করে। অন্য কথায়, এটি একটি পৃষ্ঠার উপস্থিতিতে "ভিজ্যুয়াল বাগ" খুঁজে পেতে সাহায্য করে, বিশুদ্ধভাবে কার্যকরী বাগগুলির বাইরে এবং স্পষ্টভাবে দাবিতে লেখা নয়।
স্ট্যাটিক বিশ্লেষণ
এখানে পরিচয় করিয়ে দেওয়ার জন্য আরও একটি জিনিস রয়েছে: স্ট্যাটিক বিশ্লেষণ। এটি পাঠ্যপুস্তকের অর্থে একটি পরীক্ষার ধরন নয়। যাইহোক, এটি পরে গুণমান নিশ্চিতকরণ কৌশলগুলির একটি অপরিহার্য দিক হবে। আপনি কল্পনা করতে পারেন যে এটি একটি বানান চেক ফাংশনের মতো কাজ করে: এটি প্রোগ্রামটি না চালিয়ে আরও উল্লেখযোগ্য ত্রুটি এবং সিনট্যাক্স ত্রুটির জন্য আপনার কোড স্ক্যান করে, এইভাবে কোড শৈলী সমস্যা সনাক্ত করে। এই সহজ পরিমাপ অনেক বাগ প্রতিরোধ করতে পারেন. স্ট্যাটিক অ্যানালাইসিস সম্পর্কে জানার জন্য এটি একটি ভাল পয়েন্ট যদি আপনি এটি আরও বিশদে জানতে চান।
সমস্ত আকারে পরীক্ষা করা: কিভাবে এই সব একসাথে কাজ করে?
এই সমস্ত প্রশ্নের উত্তর অনুসন্ধান করার সময়, আপনি কিছু উপমায় একটি সম্ভাব্য সমাধান খুঁজে পেতে পারেন। ওয়েব এবং পরীক্ষামূলক সম্প্রদায়গুলিতে বিশেষত, বিকাশকারীরা এই উপমাগুলি ব্যবহার করে আপনাকে একটি ধারণা দেওয়ার জন্য যে আপনি কোন ধরণের কতগুলি পরীক্ষা ব্যবহার করবেন।
এই ছবিতে দেখানো নিম্নলিখিত পাঁচটি কৌশল সবচেয়ে সাধারণ:
- পরীক্ষা পিরামিড
- টেস্ট ডায়মন্ড
- টেস্ট আইস কোন (টেস্ট পিজা নামেও পরিচিত)
- মধুচক্র পরীক্ষা করুন
- টেস্ট ট্রফি
এটি প্রক্রিয়া করার জন্য সত্যিই অনেক তথ্য। এই সবের উপর ভিত্তি করে আপনি কিভাবে একটি ম্যাচিং টেস্ট কৌশল নির্ধারণ করবেন? চিন্তা করবেন না, আমরা আপনাকে কভার করেছি। পরবর্তী নিবন্ধে, আমরা এই বিভিন্ন কৌশলগুলিকে আরও বিশদে আলোচনা করব এবং ব্যাখ্যা করব কীভাবে আপনার প্রকল্পের জন্য সর্বোত্তম মানানসই নির্বাচন করবেন৷ সাথে থাকুন! 🔥