আমি এখানে সুপরিচিত এবং বহুল ব্যবহৃত টেস্ট ডিজাইন কৌশল যেমন ইকুইভালেন্স ক্লাস, বাউন্ডারি ভ্যালু টেস্টিং এবং পেয়ারওয়াইজ টেস্টিং নিয়ে আলোচনা করা বাদ দেব, আমি অন্যান্য, কম সাধারণ কৌশল নিয়ে আলোচনা করব। আপনি কম্বিনেটরিয়াল টেস্ট ডিজাইন কৌশলগুলির সমস্যা সম্পর্কে আমার নিবন্ধটিও পড়তে পারেন।
ডিসিশন টেবিলগুলি প্রয়োজনীয়তা নথিভুক্ত করার জন্য এবং একটি অ্যাপ্লিকেশনের কার্যকারিতা বর্ণনা করার জন্য একটি চমৎকার হাতিয়ার। এই টেবিলগুলি অ্যাপ্লিকেশনটির ব্যবসায়িক যুক্তি বর্ণনা করার জন্য খুব সুবিধাজনক, এবং তা ছাড়াও, তারা পরীক্ষার কেস তৈরির জন্য একটি শক্ত ভিত্তি হিসাবে কাজ করতে পারে। যদি পরীক্ষিত অ্যাপ্লিকেশনটিতে যথাযথ ডকুমেন্টেশনের অভাব থাকে, তবে সিদ্ধান্ত টেবিলগুলি ব্যবহার করার এটি একটি ভাল কারণ। একটি কম্প্যাক্ট এবং সহজ আকারে প্রয়োজনীয়তা উপস্থাপন করা এটিকে পরীক্ষার ক্ষেত্রে তৈরি করা বেশ সহজ করে তোলে।
পদ্ধতি:
ডিসিশন টেবিলগুলি সিস্টেম স্টেটের সত্তা (বৈশিষ্ট্য/শর্ত) এর উপর ভিত্তি করে আবেদনের যুক্তি বর্ণনা করে। প্রতিটি সিদ্ধান্তের সারণী শুধুমাত্র সিস্টেমের একটি অবস্থা বর্ণনা করা উচিত।
| নিয়ম 1 | নিয়ম 2 | … | নিয়ম এন |
---|---|---|---|---|
সত্তা | | | | |
সম্পত্তি 1 | | | | |
… | | | | |
সম্পত্তি এম | | | | |
কর্ম | | | | |
কর্ম ঘ | | | | |
… | | | | |
অ্যাকশন পি | | | | |
1 থেকে M পর্যন্ত সত্তা (সম্পত্তি) সিস্টেমের বিভিন্ন বৈশিষ্ট্য উপস্থাপন করে; এগুলি টেবিলে ইনপুট ডেটা হিসাবে উপস্থাপন করা হয় যা সিস্টেমে প্রবেশ করা যেতে পারে। 1 থেকে P পর্যন্ত ক্রিয়াগুলি এমন ক্রিয়া যা সত্তার নির্দিষ্ট সংমিশ্রণে ঘটতে পারে। সত্তার সমস্ত ইনপুট ডেটার সংমিশ্রণের উপর নির্ভর করে, ক্রিয়াগুলি প্রয়োজনীয় মানগুলি গ্রহণ করে। প্রতিটি নিয়ম নির্দিষ্ট ক্রিয়া সম্পাদনের দিকে পরিচালিত করে এমন সমস্ত বৈশিষ্ট্যের জন্য ইনপুট ডেটার একটি অনন্য সেট সংজ্ঞায়িত করে।
সিদ্ধান্ত সারণী রচনা করার পর, সাধারনত সারণিটিকে সরলীকরণ করা সম্ভব, উদাহরণস্বরূপ, কিছু বা সমস্ত অসম্ভব পরিস্থিতিকে সরিয়ে দিয়ে। তারপরে, টেবিলটি পরীক্ষার ক্ষেত্রে রূপান্তরিত হতে পারে।
স্টেট-ট্রানজিশন টেস্টিং, যেমন ডিসিশন টেবিল টেস্টিং, প্রয়োজনীয়তা নথিভুক্ত করার জন্য এবং একটি সিস্টেমের গঠন ও নকশা বর্ণনা করার জন্য একটি মূল্যবান হাতিয়ার। ডিসিশন টেবিল টেস্টিং-এর বিপরীতে, যা একটি নির্দিষ্ট সিস্টেমের অবস্থা বর্ণনা করে, স্টেট-ট্রানজিশন টেস্টিং বর্ণনা করে যে কীভাবে সিস্টেমের এই অবস্থাগুলি পরিবর্তন হতে পারে। ডায়াগ্রামগুলি অ্যাপ্লিকেশনটির অপারেশন চলাকালীন ঘটে যাওয়া সমস্ত ইভেন্টগুলিকে সংজ্ঞায়িত করে এবং কীভাবে অ্যাপ্লিকেশনটি এই ইভেন্টগুলিতে প্রতিক্রিয়া জানায়৷
পদ্ধতি:
এই কৌশলটির দুটি ধরণের ভিজ্যুয়াল উপস্থাপনা রয়েছে:
একটি উদাহরণ হিসাবে, আসুন এয়ারলাইন টিকিটের রিজার্ভেশন বিবেচনা করা যাক। এটি মোটামুটিভাবে কাজ করে: প্রাথমিকভাবে, গ্রাহকরা এয়ারলাইনকে রিজার্ভেশনের তথ্য প্রদান করে - প্রস্থানের অবস্থান, গন্তব্য, তারিখ এবং প্রস্থানের সময়। একজন এয়ারলাইন কর্মচারী গ্রাহক এবং টিকিট রিজার্ভেশন সিস্টেমের মধ্যে ইন্টারফেস হিসেবে কাজ করে, গ্রাহকের দেওয়া তথ্য ব্যবহার করে রিজার্ভেশন তৈরি করে। এর পরে, গ্রাহকের সংরক্ষণ "তৈরি" অবস্থায় রয়েছে। অতিরিক্তভাবে, রিজার্ভেশন তৈরি করার পরে, সিস্টেমটি একটি টাইমার শুরু করে। যখন টাইমারের মেয়াদ শেষ হয়ে যায়, এবং সংরক্ষিত টিকিটের জন্য অর্থ প্রদান করা হয় না, সিস্টেমটি সেই টিকিটের জন্য সংরক্ষণ বাতিল করে।
বৃত্তটি এয়ারলাইন টিকিট রিজার্ভেশন সিস্টেম, "তৈরি" রাষ্ট্রের প্রতিনিধিত্ব করে। তীরটি "তৈরি" অবস্থায় একটি রূপান্তর নির্দেশ করে। তীর ("get_info") নীচের বিবরণটি সিস্টেমের বাইরে থেকে উদ্ভূত একটি ইভেন্ট। তীরের নীচের বর্ণনার কমান্ডটি ("/" এর পরে) নির্দেশ করে যে সিস্টেমটি ইভেন্টের প্রতিক্রিয়া হিসাবে কিছু ক্রিয়া সম্পাদন করেছে - এই ক্ষেত্রে, একটি টাইমার শুরু করা। কালো বৃত্ত ডায়াগ্রামের শুরু/প্রবেশ বিন্দু নির্দেশ করে।
যদি টাইমার মেয়াদ শেষ না হয়, এবং আমরা সংরক্ষিত টিকিটের জন্য অর্থ প্রদান করেছি, সিস্টেমটি "প্রদেয়" অবস্থায় প্রবেশ করে। এটি "payMoney" লেবেলযুক্ত তীর এবং "তৈরি" অবস্থা থেকে "প্রদান" অবস্থায় রূপান্তর দ্বারা চিত্রিত হয়েছে।
স্টেট-ট্রানজিশন টেবিল হল চারটি কলাম নিয়ে গঠিত টেবিল: বর্তমান অবস্থা, ইভেন্ট, অ্যাকশন এবং পরবর্তী অবস্থা।
স্টেট-ট্রানজিশন টেবিলের সুবিধা হল যে তারা সমস্ত সম্ভাব্য স্টেট-ট্রানজিশন পরিস্থিতি সংজ্ঞায়িত করে, শুধু সঠিক নয়। অতএব, রাষ্ট্র-পরিবর্তন সারণীগুলি প্রায়ই অনির্ধারিত, অপ্রমাণিত রাষ্ট্র-পরিবর্তন সংমিশ্রণগুলির আবিষ্কারের দিকে পরিচালিত করে, যা কোড লেখার আগে সনাক্ত করা ভাল।
"1" এবং "2" মানের জোড়ার জন্য কয়টি সমন্বয় বিদ্যমান? {1,1}, {1,2}, {2,1}, এবং {2,2}৷ একটি অর্থোগোনাল অ্যারে হল একটি বিশেষ বৈশিষ্ট্য সহ একটি দ্বি-মাত্রিক অ্যারে - অ্যারের যে কোনও দুটি কলামে, সেই কলামগুলিতে মানগুলির সমস্ত সমন্বয় উপস্থিত থাকে। অর্থাৎ, আপনি যদি অর্থোগোনাল অ্যারে থেকে যেকোনো দুটি কলাম নেন, যেখানে মান শুধুমাত্র "1" বা "2" হতে পারে, আপনি সেই কলামগুলির জন্য নিম্নলিখিত সারিগুলি পাবেন - {1,1}, {1,2}, { 2,1}, এবং {2,2}।
একটি উদাহরণ হিসাবে, তিনটি ইনপুট পরামিতি সহ একটি সিস্টেম বিবেচনা করুন, যার প্রতিটি বাইনারি (অর্থাৎ, "1" বা "2" মান নেয়)।
সারি | পরিবর্তনশীল 1 | পরিবর্তনশীল 2 | পরিবর্তনশীল 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 1 | 1 |
3 | 1 | 2 | 1 |
4 | 1 | 1 | 2 |
5 | 2 | 2 | 1 |
6 | 1 | 2 | 2 |
7 | 2 | 1 | 2 |
8 | 2 | 2 | 2 |
অর্থোগোনাল অ্যারেকে - L_4(2^3) হিসাবে উপস্থাপন করা হয়, যেখানে L_4 নির্দেশ করে যে অর্থোগোনাল অ্যারের চারটি সারি রয়েছে এবং (2^3) নির্দেশ করে যে অ্যারের তিনটি কলাম রয়েছে, যার মান "1" বা "2" হতে পারে "
সারি | পরিবর্তনশীল 1 | পরিবর্তনশীল 2 | পরিবর্তনশীল 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 |
3 | 2 | 1 | 2 |
4 | 2 | 2 | 1 |
L_4, যেখানে 4 হল সারির সংখ্যা
2^3, যেখানে 2 হল সর্বোচ্চ মান (== 2, 3, …, N) এবং 3 হল কলামের সংখ্যা
অর্থোগোনাল অ্যারে - নিম্নলিখিত বৈশিষ্ট্য সহ একটি দ্বি-মাত্রিক অ্যারে: অ্যারের যেকোনো দুটি কলাম চয়ন করুন এবং আপনি সেই কলামগুলিতে মানগুলির সমস্ত সমন্বয় পাবেন।
অর্থোগোনাল অ্যারে ব্যবহার করে:
AllPairs অ্যালগরিদমের সারমর্ম হল যে সমস্ত ভেরিয়েবলের জন্য মানগুলির সমস্ত সমন্বয় পরীক্ষা করার প্রয়োজন নেই। পরিবর্তে, এটি ভেরিয়েবলের প্রতিটি জোড়ার জন্য মানগুলির সমস্ত সমন্বয় পরীক্ষা করার উপর দৃষ্টি নিবদ্ধ করে।
একজন QA পেশাদার হিসাবে, এই সূক্ষ্মতা বোঝা গুরুত্বপূর্ণ। কিছু ক্ষেত্রে তাত্ত্বিক হলেও, সমন্বিত পরীক্ষার নকশা কৌশলগুলির জটিলতা বোঝা QA পেশাদারদের কার্যকরভাবে অ্যাপগুলির জটিল ব্যবসায়িক যুক্তি পরীক্ষা করতে এবং তাদের ব্যবহারকারীদের কাছে উচ্চ-মানের সফ্টওয়্যার সরবরাহ করতে দেয়।