সফটওয়্যার টেস্টিং

সফ্টওয়্যার টেস্টিং আর্টিফ্যাক্ট - বিস্তারিত গাইড

30 অক্টোবর, 2021

সুচিপত্র

  • সফ্টওয়্যার পরীক্ষা নিদর্শন
  • 1. পরীক্ষার পরিকল্পনা
  • টেস্ট প্ল্যানের প্রকারভেদ
  • টেস্ট প্ল্যান টেমপ্লেট
  • পরীক্ষা পরিকল্পনা নির্দেশিকা
  • 2. টেস্ট স্যুট
  • একটি টেস্ট স্যুট কি?
  • স্যুট মানে কি? উদাহরণ দ্বারা ব্যাখ্যা করা হয়েছে
  • টেস্ট স্যুটের প্রকারভেদ
  • টেস্ট স্যুট এর বৈশিষ্ট্য
  • টেস্ট স্যুট টেমপ্লেট
  • পরীক্ষার দৃশ্য, টেস্ট স্যুট, টেস্ট প্ল্যান এবং টেস্ট কেসের মধ্যে পার্থক্য
  • উপসংহার
  • 3. টেস্ট কেস
  • একটি টেস্ট কেস কি?
  • কিভাবে ভাল পরীক্ষার ক্ষেত্রে লিখতে হয়?
  • টেস্ট কেস টেমপ্লেট
  • টেস্ট কেস স্ট্যান্ডার্ড টেস্ট কেসের উদাহরণ ফর্ম্যাট
  • টেস্ট কেস ম্যানেজমেন্ট টুলস
  • 4. টেস্ট স্ক্রিপ্ট
  • টেস্ট স্ক্রিপ্ট কি?
  • উদাহরণ সহ স্ক্রিপ্ট ভাষা পরীক্ষা করুন
  • কি ধরনের কোড ব্যবহার করা হয়?
  • কিভাবে একটি টেস্ট স্ক্রিপ্ট তৈরি করবেন?
  • কিভাবে একটি টেস্ট স্ক্রিপ্ট চালান?
  • 5. টেস্ট ডেটা
  • টেস্ট ডেটা কি?
  • টেস্ট ডেটার গুরুত্ব
  • টেস্ট ডেটার ধরন
  • টেস্টিং এ টেস্ট ডেটা
  • ভাল পরীক্ষা ডেটা বৈশিষ্ট্য
  • পরীক্ষার ডেটা তৈরি বা তৈরি করার কৌশল
  • ডেটা জেনারেশন পরীক্ষা করার পদ্ধতি
  • টেস্ট ডেটা জেনারেশন টুলস
  • টেস্ট ডেটা ম্যানেজমেন্ট (TDM)
  • টেস্ট ডেটার সীমাবদ্ধতা
  • উপসংহার
  • প্রস্তাবিত প্রবন্ধ

4. টেস্ট স্ক্রিপ্ট

টেস্ট স্ক্রিপ্ট কি?

img 617dd4e96d22c

পরীক্ষার স্ক্রিপ্টকে মানুষের (ম্যানুয়াল) বা স্ক্রিপ্টিং/প্রোগ্রামিং (স্বয়ংক্রিয়) ভাষায় লিখিত নির্দেশাবলীর একটি সেট হিসাবে সংজ্ঞায়িত করা হয় যাতে পরীক্ষার অধীনে সিস্টেমটি প্রত্যাশিতভাবে কাজ করে কিনা।

এটি একটি পরীক্ষার ক্ষেত্রের একটি অংশ যাতে একাধিক পরীক্ষার স্ক্রিপ্ট থাকতে পারে।

একটি টেস্ট এক্সিকিউশন ইঞ্জিন, টেস্ট স্ক্রিপ্টের ভান্ডার সহ তাকে টেস্ট জোতা বলা হয়।

একটি একক পরীক্ষার ক্ষেত্রে একাধিক পরীক্ষার স্ক্রিপ্ট থাকতে পারে যখন:

  • টেস্ট কেস ম্যানুয়াল হতে পারে এবং স্বয়ংক্রিয় স্ক্রিপ্ট ব্যবহার করে।
  • প্রতিটি পরীক্ষার স্ক্রিপ্ট পরীক্ষার ক্ষেত্রে পরীক্ষা করার জন্য একটি ভিন্ন পরীক্ষার দৃশ্যকল্প প্রদান করে।

একটি পরীক্ষার স্ক্রিপ্ট কোড সাধারণত নিম্নলিখিত এক বা দুই বার সম্পাদন করবে:

  1. UI থেকে ইনপুট উপাদান সনাক্ত করুন
  2. UI উপাদানে নেভিগেট করুন এবং প্রদর্শিত ইনপুট উপাদানগুলি অপেক্ষা করুন এবং যাচাই করুন৷
  3. ব্যবহারকারীর ইনপুট সিমুলেশন।
  4. আউটপুট উপাদান সনাক্তকরণ
  5. অপেক্ষা করুন এবং ফলাফল প্রদর্শন করতে আউটপুট উপাদান যাচাই করুন.
  6. আউটপুট উপাদান ফলাফল পড়ুন.
  7. প্রত্যাশিত মানের সমান আউটপুট মানের দাবী।

উদাহরণ সহ স্ক্রিপ্ট ভাষা পরীক্ষা করুন

স্বয়ংক্রিয় পরীক্ষা নিম্নলিখিত ভাষা ব্যবহার করে করা যেতে পারে:

  • টিসিএল
  • পাইথন
  • জাভাস্ক্রিপ্ট
  • ভিবিএসস্ক্রিপ্ট
  • পার্ল
  • রুবি
  • ইউনিক্স শেল স্ক্রিপ্ট

কিছু টেস্ট অটোমেশন টুল বা ফ্রেমওয়ার্কের স্ক্রিপ্টিং ল্যাঙ্গুয়েজ প্রকৃত কোডিং ছাড়াই টেস্ট স্ক্রিপ্ট তৈরি করতে পারে।

উদাহরণ: সিকুলি, যা একটি GUI স্বয়ংক্রিয় সরঞ্জাম, পরীক্ষার ক্ষেত্রে পরীক্ষা করার জন্য পাইথন ব্যবহার করে। উদাহরণস্বরূপ, নিম্নলিখিতটি পাইথনে একটি পরীক্ষা স্ক্রিপ্টের উদাহরণ:

|_+_|

একটি পরীক্ষা স্ক্রিপ্ট উদাহরণ

আসুন আমরা একটি ই-কমার্স ওয়েবসাইটে অ্যাড ফাংশনের জন্য স্বয়ংক্রিয় পরীক্ষা বিবেচনা করি। ওয়েবসাইটের জন্য পরীক্ষার স্ক্রিপ্ট নিম্নলিখিত কাজ করবে:

  1. কার্ট পৃষ্ঠা থেকে কার্টে পণ্য যোগ করুন বোতামটি কীভাবে সনাক্ত করবেন তা নির্দিষ্ট করুন। যেমন CSS উপাদান আইডি ব্যবহার করে।
  2. ওয়েবসাইটের হোম পেজটি লোড করুন, কার্ট আইকনে ক্লিক করুন, কার্ট পৃষ্ঠাটি উপস্থিত হয়েছে কিনা তা যাচাই করুন এবং কার্টটি খালি স্ক্রীন দেখান।
  3. পণ্য ক্যাটালগ থেকে যেকোনো আইটেম অনুসন্ধান করুন. যেমন, একটি পোশাক যোগ করুন। তারপর Add to cart টিপুন।
  4. কার্টে যোগ করা আইটেমটি ব্যবহারকারীর কাছে কীভাবে প্রদর্শিত হবে তা উল্লেখ করুন।
  5. অপেক্ষা করুন এবং কার্ট স্ক্রিনে দৃশ্যমান পর্যাপ্ত বিবরণ সহ আইটেমটি সফলভাবে যোগ করা হয়েছে কিনা তা যাচাই করুন।
  6. কার্ট পাতা পড়ুন.
  7. নিশ্চিত করুন যে পণ্যের নাম এবং এর বিবরণ দৃশ্যমান

কি ধরনের কোড ব্যবহার করা হয়?

একটি পরীক্ষার স্ক্রিপ্ট তৈরি করার জন্য কোডিং নিম্নলিখিত তিন ধরনের হতে পারে:

রেকর্ড/প্লেব্যাক

ব্যবহারকারীর ক্রিয়াকলাপ রেকর্ড করা হলে কোড লেখার দরকার নেই এবং স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে তৈরি হয়।

যাইহোক, যেহেতু স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে তৈরি হয়, তাই নির্মাতাকে প্রায়ই অটোমেশন আচরণ বা জিনিসগুলি ঠিক করার জন্য স্ক্রিপ্টটি পরীক্ষা করতে হতে পারে।

তবুও, এটি স্ক্র্যাচ থেকে স্ক্রিপ্ট লেখার চেয়ে সহজ কারণ স্ক্রিপ্টটি পরীক্ষকের সামনে থাকে এবং সাধারণত VBScript-এর মতো সরলীকৃত ভাষায় কোড করা হয়।

একটি বাস্তব প্রোগ্রামিং ভাষার কোড

এমনকি যদি পরীক্ষকের কোড রেকর্ড/প্লেব্যাক করার ক্ষমতা বা সাধারণ স্ক্রিপ্টিং কোড তৈরি করার ক্ষমতা থাকতে পারে, তবে পরীক্ষকদের শেষ পর্যন্ত তাদের নিজেরাই কীভাবে কোড করতে হয় তা শিখতে হবে।

পরীক্ষকরা সফ্টওয়্যার লেখার জন্য ব্যবহৃত প্রোগ্রামিং ভাষা নির্বিশেষে যেকোনো প্রোগ্রামিং ভাষা বেছে নিতে পারেন। উদাহরণস্বরূপ, প্রোগ্রামটি জাভাতে লেখা হলেও, কিন্তু পরীক্ষক পাইথনে সাবলীল, তারা পাইথন টেস্ট স্ক্রিপ্ট লিখতে পারে।

কীওয়ার্ড/ডেটা-চালিত স্ক্রিপ্টিং

পরীক্ষকরা, অন্তর্নিহিত কোড সম্পর্কে অজ্ঞ, সাধারণত কীওয়ার্ডের সাহায্যে পরীক্ষাগুলিকে সংজ্ঞায়িত করে। অন্যদিকে, বিকাশকারীরা কীওয়ার্ডগুলির জন্য পরীক্ষা স্ক্রিপ্ট কোড প্রয়োগ করে এবং তাদের আপডেট করে।

এই পদ্ধতিটি পরীক্ষকদের জন্য দরকারী কিন্তু স্বয়ংক্রিয়ভাবে পরীক্ষা করার জন্য নতুন কার্যকারিতাগুলির জন্য সংস্থানগুলি বিকাশের উপর অত্যন্ত নির্ভরশীল।

কিভাবে একটি টেস্ট স্ক্রিপ্ট তৈরি করবেন?

একটি পরীক্ষা স্ক্রিপ্ট তৈরি করার তিনটি উপায় আছে:

1. রেকর্ড/প্লেব্যাক

নতুনদের জন্য, HP এর মত টুল দ্রুত পরীক্ষা পেশাদার QA পেশাদারদের স্বয়ংক্রিয় পরীক্ষার স্ক্রিপ্ট তৈরি করতে সাহায্য করতে পারে।

এই সরঞ্জামগুলি একটি ওয়েবসাইট বা অ্যাপ্লিকেশনে ক্রিয়াগুলির একটি সেট সঞ্চালন করে, ব্যবহারকারীর ক্রিয়াকলাপ রেকর্ড করে এবং সেই ক্রিয়াকলাপগুলিকে স্বয়ংক্রিয়ভাবে পুনরায় চালানো বা পুনরাবৃত্তি করার জন্য পরীক্ষার স্ক্রিপ্ট তৈরি করে।

তারা বস্তুগুলি নির্বাচন করে এবং তাদের অনুকরণ করার জন্য ব্যবহারকারীর ক্রিয়াগুলি নির্দিষ্ট করে পরীক্ষাগুলি সম্পাদনা এবং সংশোধন করা সম্ভব করে তোলে।

এই পদ্ধতিতে সিমুলেশন এবং বৈধতার মধ্যে পার্থক্য হল:

    অনুকরণ:রেকর্ড/প্লেব্যাক সিস্টেম ব্যবহার করে স্ক্রিপ্টের সিমুলেশন ক্যাপচার করা সহজ। পরীক্ষকরা ব্যবহারকারীর ক্রিয়া সম্পাদন করে এবং সিস্টেম VBScript-এর মতো সাধারণ স্ক্রিপ্টিং ভাষা ব্যবহার করে একটি আপেক্ষিক স্ক্রিপ্ট তৈরি করে।বৈধতা:একবার সিমুলেশন সম্পন্ন হলে, পরবর্তী ধাপ হল বৈধতা, যা সমস্যাযুক্ত। ইন্টারফেস উপাদানগুলি সনাক্ত করতে এবং প্রত্যাশিত এবং প্রকৃত মানগুলির তুলনা করার জন্য স্ক্রিপ্টে পদক্ষেপগুলির সুস্পষ্ট সংযোজন করা হয়। এই বৈধতাগুলি রেকর্ড করা যায় না কারণ সেগুলি অটোমেশন সিস্টেমের GUI ব্যবহার করে ক্রমানুসারে সঞ্চালিত হয়।

2. একটি বাস্তব প্রোগ্রামিং ভাষার কোড

উন্নত পরীক্ষকরা, রেকর্ড/প্লেব্যাক কার্যকারিতা ব্যবহার করার পরিবর্তে, তাদের কোড লিখতে পছন্দ করে। অ্যাপিয়াম, মাইক্রোসফ্ট কোডেড UI এবং সেলেনিয়ামের মতো ফ্রেমওয়ার্কগুলি পরীক্ষকদের জাভা, C++, PHP, বা জাভাস্ক্রিপ্টের মতো ভাষা ব্যবহার করে স্ক্র্যাচ থেকে পরীক্ষার স্ক্রিপ্ট লিখতে দেয়।

এই ভাষাগুলি পরীক্ষা করা অ্যাপ্লিকেশনটিতে ব্যবহৃত ভাষার অনুরূপ হতে পারে বা নাও হতে পারে৷

ফ্রেমওয়ার্কগুলি বিশেষ কমান্ডগুলি প্রদান করে যেমন স্ক্রীন উপাদানগুলি সনাক্ত করা, মেনু বিকল্পগুলি নির্বাচন করা, ক্লিক করা, টাইপ করা এবং আরও অনেক কিছু বর্তমানে পরীক্ষার অধীনে রয়েছে৷

বেশিরভাগ পরীক্ষার অটোমেশন ফ্রেমওয়ার্ক রেকর্ড/প্লেব্যাক স্ক্রিপ্টিংয়ের জন্য সমর্থন প্রদান করে।

এই পদ্ধতিতে সিমুলেশন এবং বৈধতার মধ্যে পার্থক্য হল:

    অনুকরণ:সেলেনিয়াম বস্তু নির্বাচন করতে, ক্লিক করতে, অপেক্ষা করতে বা অন্য কোনো UI অপারেশন করতে একক-লাইন কমান্ড অফার করে। সুতরাং, যদি পরীক্ষক ভাষাটি জানেন তবে এই অন্তর্নির্মিত কমান্ডগুলি ব্যবহার করে স্বয়ংক্রিয় করা তুলনামূলকভাবে সহজ।বৈধতা:রেকর্ড/প্লেব্যাকের মতো, লেখার কোড পদ্ধতিতেও, এই বিভাগটি চ্যালেঞ্জিং। যদিও সেলেনিয়াম সিস্টেমের আউটপুট অবজেক্ট ইন্টারফেস সনাক্ত করতে সাহায্য করে, দাবিগুলি সমর্থিত নয়। তার মানে প্রত্যাশিত মান পরীক্ষা করার জন্য পরীক্ষকদের তাদের নিজেরাই কোড লিখতে হবে। প্রতি ব্যবহারকারীর কর্মের জন্য শুধুমাত্র একবার সিমুলেশন বিকশিত এবং রক্ষণাবেক্ষণের বিপরীতে, প্রতিটি ইন্টারফেস উপাদান পরীক্ষা করার জন্য বৈধকরণ কোডের একাধিক অংশ রয়েছে।

3. কীওয়ার্ড/ডেটা-চালিত স্ক্রিপ্টিং

কিছু টেস্টিং টুলে যেমন রোবট ফ্রেমওয়ার্ক, পরীক্ষকরা পছন্দসই ক্রিয়া সম্পাদনের জন্য পরীক্ষার অধীনে সিস্টেমের জন্য স্বয়ংক্রিয়ভাবে একটি স্ক্রিপ্ট তৈরি করার জন্য কীওয়ার্ডগুলি নির্দিষ্ট করে।

এই পদ্ধতির অনুরূপ বৈকল্পিক তথ্য-চালিত পদ্ধতি। একই পরীক্ষা বেশ কয়েকবার পুনরাবৃত্তি হয়, এবং প্রতিবার বিভিন্ন ডেটা মান বা ব্যবহারকারীর অপারেশন সহ। উদাহরণস্বরূপ, বিভিন্ন বিকল্পের সাথে প্রতিবার বিভিন্ন আইটেম ক্রয় করা এবং তারপর ফলাফল বিশ্লেষণ করা।

এই ক্ষেত্রে পরীক্ষকের দ্বারা একটি সারণী প্রদান করা হবে যা সংশ্লিষ্ট ক্রিয়াকলাপ এবং ডেটা সহ পরীক্ষার জটিল সেট উল্লেখ করে।

এই ধরনের টেস্ট স্ক্রিপ্ট জেনারেশনের প্রধান সুবিধা হল প্রতিটি টেস্ট স্ক্রিপ্টের জন্য বারবার ব্যবহারকারীর ক্রিয়াকলাপ অনুকরণ করার প্রয়োজন নেই। পরিবর্তে, পরীক্ষকের একাধিক পরীক্ষার স্ক্রিপ্টে ব্যবহার করার জন্য সেগুলি এক জায়গায় সংজ্ঞায়িত করা হয়েছে।

আমাদের একটি বিবেচনা করা যাক উদাহরণ ডেবিট কার্ড পেমেন্ট বিকল্প ব্যবহার করে চেকআউট করার জন্য:

কীওয়ার্ড চেকআউট সুনির্দিষ্ট করে যে স্ক্রিপ্টটি কার্ট পৃষ্ঠায় নেভিগেট করা উচিত এবং ব্যবহারকারীকে অর্থপ্রদানের বিবরণ লিখতে অনুমতি দেয়। একজন বিকাশকারী তারপর এই কার্যকারিতা বাস্তবায়নের জন্য কোড লেখেন। পরীক্ষক দ্বারা প্রদত্ত টেবিলটি হবে:

কার্ড নম্বর মেয়াদ শেষ সিভিভি কার্ডের ওপর নাম
অর্থপ্রদানের বিবরণ লিখুন 1234-1234-1234-12342/20***জন

পরীক্ষক পাঠ্যের লাইনও প্রদান করতে পারে যেমন:

  • কার্ট পৃষ্ঠা খুলুন এবং অর্থপ্রদানের বিবরণ ট্যাবে ক্লিক করুন।
  • কার্ড নম্বর লিখুন
  • কার্ডের মেয়াদ শেষ হওয়ার তারিখ লিখুন
  • CVV লিখুন
  • কার্ডে নাম লিখুন
  • পেমেন্ট গেটওয়েতে যান

একটি পরীক্ষা স্ক্রিপ্ট যা জানে কিভাবে পাঠ্যের উপরের লাইনগুলি বাস্তবায়ন করতে হয়।

এই পদ্ধতিতে সিমুলেশন এবং বৈধতার মধ্যে পার্থক্য হল:

    অনুকরণ:স্ক্রিপ্টের এই অংশটি ব্যবহারকারীর ক্রিয়া সংজ্ঞায়িত করে একটি কীওয়ার্ড দ্বারা সহজেই পরিচালনা করা যেতে পারে।বৈধতা:এই অংশটির জন্য একাধিক কীওয়ার্ড এবং প্রতিটি UI অংশের জন্য প্রত্যাশিত ডেটা মান প্রয়োজন যা অবশ্যই যাচাই করা উচিত। পরীক্ষকের পক্ষে বিভিন্ন কার্যকারিতার জন্য বিভিন্ন কীওয়ার্ড নির্দিষ্ট করা খুব কঠিন নয়, তবে এর অর্থ হল পরীক্ষকদের বৈধকরণের সীমিত বিকল্প থাকবে এবং আরও বিকল্প যোগ করার জন্য বিকাশের উপর নির্ভর করতে হবে।

কিভাবে একটি টেস্ট স্ক্রিপ্ট চালান?

একজন পরীক্ষক কোন অটোমেশন সিস্টেমে চালানোর জন্য একটি জেনেরিক টেস্ট স্ক্রিপ্ট তৈরি করতে পারে না বা পরীক্ষার কাঠামোর সাথে সামঞ্জস্য না করে একটি সিস্টেম থেকে অন্য সিস্টেমে পরীক্ষাগুলি পোর্ট করতে পারে না।

অটোমেশন ফ্রেমওয়ার্ক, কখনও কখনও টেস্ট হার্নেস বলা হয়, টেস্ট স্ক্রিপ্ট চালায়।

এই ফ্রেমওয়ার্কগুলি (সেলেনিয়াম, অ্যাপিয়াম, এইচপি কিউটিপি, এবং রোবট ফ্রেমওয়ার্ক) স্পেসিফিকেশন অনুযায়ী লিখিত একটি স্ক্রিপ্ট নিতে পারে এবং ব্যবহারকারী ইন্টারফেস লোড করতে পারে, ইন্টারফেসে ব্যবহারকারীর ক্রিয়াকলাপ অনুকরণ করতে পারে এবং ফলাফলগুলি রিপোর্ট করতে পারে।

পরীক্ষা চালানোর জন্য, নিম্নলিখিত পদ্ধতি ব্যবহার করা হয়:

    ক্রমাগত একীকরণ পরিবেশ:ডেভেলপাররা যদি জেনকিন্স বা টিমসিটির মতো টুল ব্যবহার করে স্বয়ংক্রিয়ভাবে সফ্টওয়্যার তৈরি করে, তাহলে স্বয়ংক্রিয় পরীক্ষার স্ক্রিপ্টগুলি বিল্ড প্রক্রিয়ার অংশ হিসাবে চালানো যেতে পারে।

সুতরাং, ব্যবহারকারী ইন্টারফেসের নির্দিষ্ট স্বয়ংক্রিয় পরীক্ষা চালানো হবে এবং প্রতিটি নতুন বিল্ডের ফলাফল রিপোর্ট করবে। এটি ইউনিট পরীক্ষার মতো হালকা ওজনের পরীক্ষার জন্য ব্যবহার করা যেতে পারে।

    GUI-ভিত্তিক কাঠামো:HP UFT-এর মতো একটি GUI-ভিত্তিক কাঠামোতে পরীক্ষকরা একটি তালিকা থেকে পরীক্ষা নির্বাচন করতে পারে এবং বিভিন্ন সময়ে চালানো বা সময়সূচী করতে একটি বোতামে ক্লিক করতে পারে।কোড-ভিত্তিক কাঠামো:কোড-ভিত্তিক ফ্রেমওয়ার্কগুলিতে, পরীক্ষকরা IDE খোলে (যেমন সেলেনিয়াম) , কম্পাইল করুন, এবং তারপর এটি চালান। কোডটি কার্যকর হলে, পরীক্ষার কাঠামোর অংশগুলি সক্রিয় করে এবং পরীক্ষার অধীনে ইন্টারফেসের প্রয়োজনীয় ক্রিয়াগুলি সম্পাদন করে।