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