Software Testing VS Quality Assurance

Software Testing VS Quality Assurance

সফ্টওয়্যার টেস্টিং (Software Testing) কী?

সফ্টওয়্যার টেস্টিং (Software Testing) হল একটি সফ্টওয়্যার অ্যাপ্লিকেশন বা সিস্টেম সঠিকভাবে নির্দিষ্ট প্রয়োজনীয়তা এবং ফাংশনগুলি পূরণ করে তা মূল্যায়ন এবং যাচাই করার প্রক্রিয়া। আর এই মূল্যায়ন এবং যাচাই করার মূল উদ্দেশ্য হল সফ্টওয়্যারটি ডেপ্লয় করার পূর্বে এর  বাগ বা ত্রুটি গুলি খুঁজে বের করা এবং কোনো রিকোয়ারমেন্ট মিসিং হলো কিনা তা সনাক্ত করা এবং ঠিক করা, এটি নিশ্চিত করা যে এটি নির্ভরযোগ্য (reliable), সুরক্ষিত (secure) এবং প্রত্যাশিতভাবে কাজ করে।

Software Quality Assurance (SQA) কী?

Software Quality Assurance (SQA) হল একটি পদ্ধতিগত প্রক্রিয়া যা software development lifecycle এ সফ্টওয়্যার পণ্য এবং পরিষেবার গুণমান নিশ্চিত করার জন্য ডিজাইন করা হয়েছে। এটি সফ্টওয়্যার তৈরি করতে ব্যবহৃত প্রক্রিয়াগুলিকে উন্নত করার লক্ষ্যে একটি সিরিজ এবং অনুশীলন জড়িত, যার ফলে ত্রুটিগুলি প্রতিরোধ করা এবং ফাইনাল পণ্যটি নির্দিষ্ট রিকোয়ারমেন্ট এবং কোয়ালিটি স্ট্যান্ডার্ড পূরণ করে তা নিশ্চিত করা।

Software Testing এবং Software Quality Assurance এর মধ্যে পার্থক্য কী?

সফ্টওয়্যার টেস্টিং এবং সফ্টওয়্যার কোয়ালিটি অ্যাসুরেন্স (SQA) উভয়ই software development lifecycle এর গুরুত্বপূর্ণ উপাদান, তবে তারা ভিন্ন দিকের বা পরিপ্রেক্ষিতের উপর ফোকাস করে এবং স্বতন্ত্র উদ্দেশ্যগুলি পরিবেশন করে। নিম্নে এই দুটি বিষয়ের মূল পার্থক্য গুলো বর্ণনা করা হলো:

১.ফোকাস

Software Testing:

  • Objective (উদ্দেশ্য): সফ্টওয়্যারটি তৈরি হওয়ার পরে ত্রুটিগুলি বা বাগগুলি সনাক্ত করা৷

  • Scope (ব্যাপ্তি): সফ্টওয়্যারটির কার্যকারিতা যাচাই করার উপর মনোনিবেশ করে, এটি নির্দিষ্ট রিকোয়ারমেন্ট বা চাহিদা পূরণ করে তা নিশ্চিত করে।

  • Nature (প্রকৃতি): এটি রিএক্টিভ বা সক্রিয় প্রক্রিয়া যা ডেভেলপকৃত সফ্টওয়্যারে সমস্যাগুলি খুঁজে বের করে এবং সমাধান করে।

Software Quality Assurance:

  • Objective (উদ্দেশ্য): এটি নিশ্চিত করে যেসব সফটওয়্যার ডেলিভারি হবে সে গুলো পরিচালনা এবং তৈরি করতে ব্যবহৃত প্রক্রিয়াগুলি কার্যকর এবং স্ট্যান্ডার্ড (মান) গুলি অনুসরণ করে৷

  • Scope (ব্যাপ্তি): এটি সফটওয়্যার ডেভেলপমেন্ট প্রসেসকে উন্নত করার জন্য এর স্ট্যান্ডার্ড (মান) এবং পদ্ধতিগুলো বাস্তবায়নের সাথে যুক্ত সমস্ত ক্রিয়াকলাপ কভার করে।

  • Nature (প্রকৃতি): এটি একটি সক্রিয় প্রক্রিয়া যা সফ্টওয়্যার ডেভেলপমেন্টে ব্যবহৃত প্রক্রিয়াগুলিকে উন্নত এবং পর্যবেক্ষণ করে ত্রুটিগুলি প্রতিরোধ করে।

২.Activities (কার্যক্রম)

Software Testing:

  • Software Testing এর কাজ: এর কাজ হচ্ছে Unit testing, integration testing, system testing, acceptance testing, performance testing, security testing ইত্যাদি। 
  • Software Testing এর সময়: সাধারণত কোড লেখার পরে Software Testing এর কাজ শুরু হয়, অর্থাৎ ডেভেলপমেন্ট পেজের সময় এবং পরে।
  • Software Testing এর Technique গুলো: Manual testing, automated testing, black-box testing, white-box testing ইত্যাদি।  

Software Quality Assurance (SQA):

  • SQA এর কাজ: এর কাজ হচ্ছে সফটওয়্যার ডেভেলপমেন্ট এর প্রক্রিয়া সংজ্ঞায়িত করা এবং বাস্তবায়ন, অডিট, প্রশিক্ষণ, ডকুমেন্টেশন, প্রক্রিয়া উন্নতি করা, কমপ্লায়েন্স চেক করা। 
  • সময় (Timing): SQA এর কাজ সাধারণত প্রজেক্টের  শুরুতে শুরু হয় এবং software development lifecycle জুড়ে চলতে থাকে।
  • Software Testing এর Technique গুলো: Process checklists, project audits, methodology reviews, software development standards, metrics analysis ইত্যাদি। 

৩.Goals (লক্ষ্য)

Software Testing:

  • প্রাথমিক লক্ষ্য (Primary Goal): সফ্টওয়্যারের ত্রুটিগুলি চিহ্নিত করা এবং ঠিক করা।

  • ফলাফল (Outcome): নিশ্চিত করে যে সফ্টওয়্যারটি নির্দিষ্ট অবস্থার অধীনে প্রত্যাশিতভাবে আচরণ করে।

Software Quality Assurance:

  • প্রাথমিক লক্ষ্য (Primary Goal): ডেভেলপমেন্ট প্রসেস এবং চূড়ান্ত পণ্যের সামগ্রিক গুণমান নিশ্চিত করা।

  • ফলাফল (Outcome): সফ্টওয়্যার ডেভেলপমেন্ট এবং রক্ষণাবেক্ষণের সময় অনুসরণ করা মান এবং অনুশীলনের একটি ফ্রেমওয়ার্ক অর্থাৎ কাঠামো তৈরি করে।

৪.Responsibility

Software Testing:

  • দায়িত্ব (Responsibility): সাধারণত testers (পরীক্ষক), কোয়ালিটি কন্ট্রোল এনালিস্টস বা ডেভেলপারদের দ্বারা পরীক্ষার উপর ফোকাস করা হয়।

  • দল (Team): প্রায়শই ডেভেলপমেন্ট সংস্থার মধ্যে একটি ডেডিকেটেড testing team বা QA team থাকে।

Software Quality Assurance:

  • দায়িত্ব (Responsibility): সাধারণত এই কাজ কোয়ালিটি আসুরেন্স স্পেশালিস্টস, প্রসেস ইঞ্জিনিয়ার্স,  বা পরিচালকদের দ্বারা পরিচালিত হয় যারা নিশ্চিত করে যে প্রক্রিয়াগুলি অনুসরণ করা হয়েছে।

  • দল (Team): ম্যানেজমেন্ট, ডেভেলপার , টেস্টার এবং অন্যান্য স্টেকহোল্ডার সহ ক্রস-ফাংশনাল দলগুলিকে এই কাজে জড়িত থাকে৷

উদাহরণ

Software Testing:

যেমন: একটি login function সঠিকভাবে valid credentials সহ ইউজারদের অথেনটিকেশন যাচাই করার জন্য একটি টেস্ট কেস চালানো।

Software Quality Assurance:

যেমন: ইউজারের সমস্ত চাহিদা সঠিকভাবে ক্যাপচার করা এবং নথিভুক্ত করা হয়েছে তা নিশ্চিত করার জন্য রিকোয়ারমেন্ট গুলো সংগ্রহের প্রক্রিয়া পর্যালোচনা এবং উন্নত করা।

পরিশেষে :

Software Testing একটি সফ্টওয়ারের ত্রুটিগুলি সনাক্তকরণ এবং সংশোধন করার উপর ফোকাস করে, অন্যদিকে Software Quality Assurance এর লক্ষ্য সফ্টওয়্যার তৈরির জন্য ব্যবহৃত প্রক্রিয়াগুলিকে উন্নত এবং অপ্টিমাইজ করা, ত্রুটিগুলি প্রতিরোধ করা এবং প্রোডাক্ট এবং ডেভেলপমেন্ট প্রাকটিস উভয়ের সামগ্রিক গুণমান নিশ্চিত করা। উভয়ই উন্নত-মানের সফ্টওয়্যার সরবরাহের জন্য অপরিহার্য, তবে তারা software development lifecycle এর বিভিন্ন স্তর এবং পর্যায়ে কাজ করে।

আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ১৫ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller, Amarbebsha Ltd সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ডেটা সাইন্স, মেশিন লার্নিং, বিগ ডেটা, ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। এছাড়াও বাংলাদেশের ১৮৫ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ১২০ এরও অধিক ছাত্র আমার হাতে জেন্ড সার্টিফাইড ইঞ্জিনিয়ার হয়েছেন। বর্তমানে w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -8.2 Engineering, Laravel Mastering Course with ReactJS, Python Beginning To Advance with Blockchain, Machine Learning and Data Science, Professional WordPress Plugin Development Beginning to Advance কোর্স করাই। আর অবসর সময়ে w3programmers.com এ ওয়েব টেকনোলজি নিয়ে লেখালেখি করি।

Leave a Reply