সফ্টওয়্যার পরীক্ষা, বা সফ্টওয়্যার পরীক্ষা, অ্যাপ্লিকেশন পরীক্ষা হিসাবেও পরিচিত।
সফ্টওয়্যার পরীক্ষা প্রাথমিকভাবে বেশ কয়েকটি আন্তঃসংযুক্ত প্রক্রিয়া দ্বারা গঠিত একটি বড় প্রক্রিয়া। সফ্টওয়্যার পরীক্ষার মূল উদ্দেশ্য হল সফ্টওয়্যারটির মৌলিক প্রয়োজনীয়তার পরিপ্রেক্ষিতে এর সম্পূর্ণতা সহ এর অখণ্ডতা পরিমাপ করা। সফ্টওয়্যার পরীক্ষায় বিভিন্ন পরীক্ষার প্রক্রিয়ার মাধ্যমে সফ্টওয়্যার পরীক্ষা এবং পরীক্ষা করা জড়িত। এই প্রক্রিয়াগুলির উদ্দেশ্য অন্তর্ভুক্ত হতে পারে:
কার্যকরী/ব্যবসায়িক প্রয়োজনীয়তার বিরুদ্ধে সফ্টওয়্যার সম্পূর্ণতা যাচাই
বাগ/প্রযুক্তিগত ত্রুটি সনাক্ত করা এবং সফ্টওয়্যারটি ত্রুটি-মুক্ত তা নিশ্চিত করা
ব্যবহারযোগ্যতা, কর্মক্ষমতা, নিরাপত্তা, স্থানীয়করণ, সামঞ্জস্য এবং ইনস্টলেশনের মূল্যায়ন
পরীক্ষিত সফ্টওয়্যার সম্পূর্ণ বা ব্যবহারের জন্য উপযুক্ত হতে সমস্ত পরীক্ষা পাস করতে হবে। বিভিন্ন ধরনের সফ্টওয়্যার পরীক্ষার পদ্ধতির মধ্যে রয়েছে হোয়াইট বক্স টেস্টিং, ব্ল্যাক বক্স টেস্টিং এবং গ্রে বক্স টেস্টিং। উপরন্তু, সফ্টওয়্যারটি সামগ্রিকভাবে, উপাদান/ইউনিট বা একটি লাইভ সিস্টেমের মধ্যে পরীক্ষা করা যেতে পারে।
ব্ল্যাক বক্স টেস্টিং হল একটি সফ্টওয়্যার টেস্টিং কৌশল যা সিস্টেমের অভ্যন্তরীণ কাজের ক্ষেত্রে সফ্টওয়্যারের কার্যকারিতা বিশ্লেষণের উপর দৃষ্টি নিবদ্ধ করে। ব্ল্যাক বক্স টেস্টিং গ্রাহকের প্রয়োজনীয়তা, স্পেসিফিকেশন এবং উচ্চ-স্তরের নকশা কৌশল বিশ্লেষণ করার জন্য একটি পদ্ধতি হিসাবে তৈরি করা হয়েছিল।
একটি ব্ল্যাক বক্স টেস্টিং পরীক্ষক বৈধ এবং অবৈধ কোড এক্সিকিউশন এবং ইনপুট শর্তগুলির একটি সেট নির্বাচন করে এবং বৈধ আউটপুট প্রতিক্রিয়াগুলির জন্য পরীক্ষা করে।
ব্ল্যাক বক্স টেস্টিং ফাংশনাল টেস্টিং বা ক্লোজড বক্স টেস্টিং নামেও পরিচিত।
একটি সার্চ ইঞ্জিন একটি অ্যাপ্লিকেশনের একটি সাধারণ উদাহরণ যা ব্ল্যাক বক্স পরীক্ষার বিষয়। একজন সার্চ ইঞ্জিন ব্যবহারকারী একটি ওয়েব ব্রাউজারের সার্চ বারে পাঠ্য প্রবেশ করান। অনুসন্ধান ইঞ্জিন তারপর ব্যবহারকারীর ডেটা ফলাফল (আউটপুট) সনাক্ত করে এবং পুনরুদ্ধার করে।
ব্ল্যাক বক্স পরীক্ষার সুবিধার মধ্যে রয়েছে:
ব্ল্যাক বক্স টেস্টিং এর কিছু অসুবিধাও আছে, নিম্নরূপ:
সাদা-বক্স পরীক্ষার সময়, পূর্ব-নির্বাচিত আউটপুট মানগুলিকে যাচাই করতে পূর্ব-নির্বাচিত ইনপুট মানগুলির সাথে কোড চালানো হয়। হোয়াইট-বক্স পরীক্ষায় প্রায়ই স্টাব কোড লেখার সাথে জড়িত থাকে (কোডের একটি অংশ যা একটি নির্দিষ্ট বৈশিষ্ট্য প্রতিস্থাপন করতে ব্যবহৃত হয়। একটি স্টাব বিদ্যমান কোডের আচরণকে অনুকরণ করতে পারে, যেমন একটি দূরবর্তী মেশিনে একটি পদ্ধতি।) এবং ড্রাইভারও।
সাদা-বক্স পরীক্ষার সুবিধার মধ্যে রয়েছে:
অসুবিধাগুলির মধ্যে রয়েছে:
একটি ইউনিট পরীক্ষা হল সফ্টওয়্যার ডেভেলপমেন্ট লাইফ সাইকেল (SDLC) এর একটি উপাদান যেখানে পছন্দসই উপযুক্ততা বা আচরণের জন্য একটি সফ্টওয়্যার প্রোগ্রামের ক্ষুদ্রতম অংশগুলিতে একটি ব্যাপক পরীক্ষা পদ্ধতি পৃথকভাবে প্রয়োগ করা হয়।
একটি ইউনিট পরীক্ষা হল একটি গুণমান পরিমাপ এবং মূল্যায়ন পদ্ধতি যা বেশিরভাগ এন্টারপ্রাইজ সফ্টওয়্যার উন্নয়ন কার্যক্রমে প্রয়োগ করা হয়। সাধারণভাবে, একটি ইউনিট পরীক্ষা মূল্যায়ন করে যে কীভাবে সফ্টওয়্যার কোডটি সফ্টওয়্যার/অ্যাপ্লিকেশন/প্রোগ্রামের সামগ্রিক লক্ষ্যের সাথে সামঞ্জস্য করে এবং কীভাবে এর উপযুক্ততা অন্যান্য ছোট ইউনিটকে প্রভাবিত করে। ইউনিট পরীক্ষাগুলি ম্যানুয়ালি করা যেতে পারে - এক বা একাধিক বিকাশকারী দ্বারা - বা একটি স্বয়ংক্রিয় সফ্টওয়্যার সমাধানের মাধ্যমে।
পরীক্ষার সময়, প্রতিটি ইউনিট প্রধান প্রোগ্রাম বা ইন্টারফেস থেকে বিচ্ছিন্ন করা হয়। ইউনিট পরীক্ষাগুলি সাধারণত বিকাশের পরে এবং স্থাপনার আগে সঞ্চালিত হয়, এইভাবে একীকরণ এবং প্রাথমিক সমস্যা সনাক্তকরণ সহজতর করে। প্রোগ্রামিং ভাষা, সফ্টওয়্যার অ্যাপ্লিকেশন এবং পরীক্ষার লক্ষ্যগুলির উপর নির্ভর করে একটি ইউনিটের আকার বা সুযোগ পরিবর্তিত হয়।
কার্যকরী পরীক্ষা হল সফ্টওয়্যার বিকাশের মধ্যে ব্যবহৃত একটি পরীক্ষামূলক প্রক্রিয়া যেখানে সফ্টওয়্যারটি সমস্ত প্রয়োজনীয়তা মেনে চলছে তা নিশ্চিত করার জন্য পরীক্ষা করা হয়। এটি সফ্টওয়্যারটি তার কার্যকরী প্রয়োজনীয়তাগুলিতে নির্দিষ্ট সমস্ত প্রয়োজনীয় কার্যকারিতা রয়েছে তা নিশ্চিত করার জন্য এটি পরীক্ষা করার একটি উপায়।
কার্যকরী পরীক্ষা প্রধানত যাচাই করতে ব্যবহৃত হয় যে সফ্টওয়্যারের একটি অংশ শেষ ব্যবহারকারী বা ব্যবসার দ্বারা প্রয়োজনীয় একই আউটপুট প্রদান করে। সাধারণত, কার্যকরী পরীক্ষায় ব্যবসার প্রয়োজনীয়তার সাথে প্রতিটি সফ্টওয়্যার ফাংশন মূল্যায়ন এবং তুলনা করা জড়িত। সফ্টওয়্যারটিকে কিছু সম্পর্কিত ইনপুট দিয়ে পরীক্ষা করা হয় যাতে আউটপুটটি মূল্যায়ন করা যায় যে এটি কীভাবে তার মৌলিক প্রয়োজনীয়তার সাথে সামঞ্জস্যপূর্ণ, সম্পর্কিত বা পরিবর্তিত হয়। তদ্ব্যতীত, কার্যকরী পরীক্ষাগুলি সফ্টওয়্যারটির ব্যবহারযোগ্যতাও পরীক্ষা করে, উদাহরণস্বরূপ নিশ্চিত করা যে নেভিগেশন ফাংশনগুলি প্রয়োজনীয় হিসাবে কাজ করে।
রিগ্রেশন টেস্টিং হল এক ধরনের সফটওয়্যার টেস্টিং যা নতুন সমস্যা সফ্টওয়্যার পরিবর্তনের ফলাফল কিনা তা নির্ধারণ করতে ব্যবহৃত হয়।
একটি পরিবর্তন প্রয়োগ করার আগে, একটি প্রোগ্রাম পরীক্ষা করা হয়। একটি পরিবর্তন প্রয়োগ করার পরে, পরিবর্তনটি নতুন বাগ বা সমস্যা তৈরি করেছে কিনা বা প্রকৃত পরিবর্তনটি তার অভিপ্রেত উদ্দেশ্য পূরণ করেছে কিনা তা সনাক্ত করতে নির্বাচিত অঞ্চলে প্রোগ্রামটি পুনরায় পরীক্ষা করা হয়।
রিগ্রেশন টেস্টিং বড় সফ্টওয়্যার অ্যাপ্লিকেশনের জন্য অপরিহার্য, কারণ সমস্যাটির একটি অংশ পরিবর্তন করা অ্যাপ্লিকেশনটির একটি ভিন্ন অংশের জন্য একটি নতুন সমস্যা তৈরি করেছে কিনা তা জানা প্রায়ই কঠিন। উদাহরণস্বরূপ, একটি ব্যাঙ্কের আবেদন লোন ফর্মে পরিবর্তনের ফলে একটি মাসিক লেনদেন রিপোর্ট ব্যর্থ হতে পারে। বেশিরভাগ ক্ষেত্রে, সমস্যাগুলি সম্পর্কহীন বলে মনে হতে পারে, কিন্তু তারা আসলে অ্যাপ্লিকেশন বিকাশকারীদের মধ্যে হতাশার কারণ হতে পারে।
রিগ্রেশন পরীক্ষার প্রয়োজন হয় এমন অন্যান্য পরিস্থিতিতে নির্দিষ্ট পরিবর্তনগুলি একটি নির্দিষ্ট লক্ষ্য অর্জন করে কিনা তা সনাক্ত করা বা সমস্যা ছাড়াই একটি নির্দিষ্ট সময়ের পরে পুনরায় উদ্ভূত সমস্যাগুলির সাথে সম্পর্কিত নতুন বিপদগুলির জন্য পরীক্ষা করা অন্তর্ভুক্ত।
আধুনিক রিগ্রেশন টেস্টিং প্রাথমিকভাবে বিশেষ বাণিজ্যিক পরীক্ষার সরঞ্জামগুলির মাধ্যমে পরিচালিত হয় যা বিদ্যমান সফ্টওয়্যারগুলির স্ন্যাপশট নেয় যা একটি নির্দিষ্ট পরিবর্তন প্রয়োগ করার পরে তুলনা করা হয়। মানব পরীক্ষকদের পক্ষে স্বয়ংক্রিয় সফ্টওয়্যার পরীক্ষকদের মতো দক্ষতার সাথে একই কাজ সম্পাদন করা প্রায় অসম্ভব। এটি বিশেষ করে বৃহৎ এবং জটিল সফ্টওয়্যার অ্যাপ্লিকেশনগুলির ক্ষেত্রে বৃহৎ আইটি পরিবেশ যেমন ব্যাঙ্ক, হাসপাতাল, উত্পাদনকারী সংস্থা এবং বড় খুচরা বিক্রেতাদের ক্ষেত্রে সত্য।
স্ট্রেস টেস্টিং বলতে বোঝায় সফ্টওয়্যার বা হার্ডওয়্যারের কার্যকারিতা চরম এবং প্রতিকূল পরিস্থিতিতে সন্তোষজনক কিনা তা নির্ধারণ করতে যা ভারী নেটওয়ার্ক ট্রাফিক, প্রক্রিয়া লোডিং, আন্ডারক্লকিং, ওভারক্লকিং এবং সম্পদের সর্বোচ্চ ব্যবহারের চাহিদার ফলে ঘটতে পারে।
বেশিরভাগ সিস্টেম স্বাভাবিক অপারেটিং অবস্থার অনুমান করে তৈরি করা হয়। অতএব, এমনকি যদি একটি সীমা অতিক্রম করা হয়, যদি সিস্টেমটি বিকাশের সময় চাপ পরীক্ষা করা হয় তবে ত্রুটিগুলি নগণ্য।
স্ট্রেস টেস্টিং নিম্নলিখিত প্রসঙ্গে ব্যবহৃত হয়:
স্বয়ংক্রিয় পরীক্ষা (সফ্টওয়্যার টেস্ট অটোমেশন) হল কোড পরীক্ষার একটি পদ্ধতি যা বিশেষ সফ্টওয়্যার সরঞ্জাম ব্যবহার করে যা স্বয়ংক্রিয়ভাবে পরীক্ষা চালায় এবং তারপরে প্রত্যাশিত ফলাফলের সাথে প্রকৃত পরীক্ষার ফলাফলের তুলনা করে।
অটোমেটেড টেস্টিং কন্টিনিউয়াস ডেলিভারি (CD), কন্টিনিউয়াস ইন্টিগ্রেশন (CI), DevOps এবং DevSecOps-এ গুরুত্বপূর্ণ ভূমিকা পালন করে। স্বয়ংক্রিয় পরীক্ষার প্রধান সুবিধাগুলির মধ্যে রয়েছে:
সফ্টওয়্যার ডেভেলপমেন্টে, বিল্ড প্রক্রিয়া চলাকালীন স্বয়ংক্রিয় পরীক্ষাগুলি সম্পাদন করা বিশেষভাবে উপযোগী হয় যাতে নিশ্চিত করা যায় যে একটি অ্যাপ্লিকেশন বিল্ড ত্রুটি থেকে মুক্ত এবং এর উদ্দেশ্যমূলক কার্য সম্পাদন করে।
সফ্টওয়্যার পরীক্ষা স্বয়ংক্রিয় করতে সময় নেওয়া শেষ পর্যন্ত বিকাশকারীদের সময় বাঁচাবে ঝুঁকি হ্রাস করে যে কোড পরিবর্তন বিদ্যমান কার্যকারিতা ভেঙে দেবে।
পরীক্ষা উন্নয়ন প্রক্রিয়ার একটি অত্যন্ত গুরুত্বপূর্ণ পর্যায়। নিশ্চিত করে যে সমস্ত বাগ সংশোধন করা হয়েছে এবং পণ্য, সফ্টওয়্যার বা হার্ডওয়্যার যতটা সম্ভব লক্ষ্যমাত্রার পারফরম্যান্সের মতো বা যতটা কাছাকাছি কাজ করে। স্বয়ংক্রিয় পরীক্ষা, ম্যানুয়াল পরীক্ষার পরিবর্তে, ক্রমাগতভাবে ব্যয়-কার্যকর সফ্টওয়্যার সরবরাহ করার জন্য অপরিহার্য যা ন্যূনতম ত্রুটিগুলির সাথে সময়মত ব্যবহারকারীর চাহিদা পূরণ করে।
উন্নয়নের সময় বিভিন্ন সময়ে ম্যানুয়াল টেস্টিং করা হয়, তবে এটি বেশিরভাগই ডেভেলপার বা হার্ডওয়্যার ইঞ্জিনিয়ারদের দ্বারা করা হয় যাতে তারা যে পরিবর্তনগুলি করেছে তা কাঙ্খিত প্রভাব ফেলেছে কিনা তা দ্রুত দেখতে।
Ercole Palmeri
অ্যাপল ভিশন প্রো কমার্শিয়াল ভিউয়ার ব্যবহার করে ক্যাটানিয়া পলিক্লিনিকে একটি চক্ষুরোগ অপারেশন করা হয়েছিল...
রঙের মাধ্যমে সূক্ষ্ম মোটর দক্ষতার বিকাশ শিশুদের লেখার মতো জটিল দক্ষতার জন্য প্রস্তুত করে। রঙ…
নৌ সেক্টর একটি সত্যিকারের বৈশ্বিক অর্থনৈতিক শক্তি, যা 150 বিলিয়ন বাজারের দিকে নেভিগেট করেছে...
গত সোমবার, ফাইন্যান্সিয়াল টাইমস ওপেনএআই-এর সাথে একটি চুক্তি ঘোষণা করেছে। FT তার বিশ্বমানের সাংবাদিকতার লাইসেন্স দেয়...