STLC অথবা Software Testing Life Cycle এর সাথে পরিচিতি

গত পোস্ট এ আমরা SDLC অথবা Software Development Life Cycle এর সাথে পরিচিত হয়েছিলাম। আজকে আমরা জানবো

  • Requirement: Software Development Life Cycle এর মত Software Testing Life Cycle এও Requirement একদম প্রথম ধাপ। এই ধাপে আপনাকে জেনে নিতে হবে যে একটি সফটওয়্যার তৈরীর কারণ, এটার ব্যবহারকারী কারা হবেন, এর ভিতরে কি কি প্রক্রিয়া, ফিচার, ফাংশন থাকবে। এর মাঝে আর কোনরকম কন্ডিশন আছে কিনা, থাকলে তা নিয়েও পরবর্তীতে অ্যানালাইসিস করতে হবে তাই।
  • Test Planning: Software Development Life Cycle যেমন Analysis হচ্ছে সবচাইতে গুরুত্বপুর্ন ধাপ, তেমনি Software Testing Life Cycle এ Test Planning হচ্ছে সবচাইতে গুরুত্বপুর্ন ধাপ, কারণ এই ধাপে আপনাকে সম্পুর্ণ প্রজেক্ট এর ব্যপার মাথায় রেখে প্ল্যান করতে হবে।
  • Test Case Development: প্ল্যানিং সম্পুর্ণ করার পর সেই প্ল্যানিং কে কেন্দ্র করে আপনি Test Case Develop করবেন। Test Case হলো আপনি একটা ফিচার বা ফাংশন কে কিভাবে টেস্ট করবেন তা ধাপে ধাপে বর্ণনা করা। আর Test Case এর ভাষা টা এমন হবে যাতে যে কেউ পড়ার পর বুঝতে পারে। একটা Test Case এ সর্বনিম্ন যে বর্ণনা থাকে তা হলোঃ
    • Test Case ID,
    • Test Case Name,
    • Steps to execute the Test Case,
    • Expected Result
  • Test Environment setup: এখন যে Test Case Develop করলেন যা চালানোর পালা, তবে তার আগে আপনাকে খেয়াল রাখতে হবে যে Test করার জন্য Environment টা ঠিকমত সেটআপ করা আছে কিনা। যেমন আপনার সফটওয়্যার যদি ওয়েব ভিত্তিক হয় তাহলে ইন্টারনেট আছে কিনা, যদি সার্ভার এর সাথে সম্পর্কিত হয় তাহলে সার্ভার অন আছে কিনা, যেই সফটওয়্যার টেস্ট করবেন তার একেবারেই হালনাগাদ আছে কিনা ইত্যাদি।
  • Test Case Execution: এই ধাপে আপনি একজন পরিপুর্ন টেস্টার হিসাবে আগেই ডেভেলপ করা Test Case গুলাকে চালিয়ে দেখবেন যে Expected Result এর সাথে আপনার কাঙ্ক্ষিত রেজাল্ট মিলছে কিনা, যদি রেজাল্ট মিলে যায় তাহলে সেটা পাশ করা (Passed) টেস্ট কেস, নাহলে ফেল (Failed) টেস্ট কেস ।
  • Test Cycle Closure: Test Case Execution এর পরে আপনি একটা রিপোর্ট সাবমিট করবেন যেখানে আপনার টেস্টিং এর বর্ণনা থাকবে, যার মাধ্যমে বুঝা যাবে যে আপনি একটা সফটওয়্যার এর কোন কোন ফিচার বা ফাংশন টেস্ট করেছেন এবং তার রেজাল্ট কি।

আজ এ পর্যন্তই। আগামীতে আবার আরেকটি নতুন জিনিস নিয়ে আমরা আলোচনা করবো…

SDLC অথবা Software Development Life Cycle এর সাথে পরিচিতি

আমরা তো সাধারণত বিভিন্ন সময়ে বিভিন্ন সফটওয়্যার ব্যবহার করি। তবে আমাদের ব্যবহারের উপযোগী হওয়ার আগে ও পরে (মূলত আগে) একটি সফটওয়্যার তৈরী হতে একে বিভিন্ন একের পর এক প্রক্রিয়ার মাধ্যমে পার হয়ে আসতে হয়।

SDLC অথবা Software Development Life Cycle হচ্ছে এমনই একটি প্রক্রিয়া। মূলত একটা সফটওয়্যার তৈরী হবার আগেই সফটওয়্যারটি ক্যামন হবে, কি জন্য হবে, কাদের জন্য হবে (মানে ব্যবহারকারী কারা হবেন), কি কি ফিচার ও ফাংশন থাকবে তা থেকে শুরু করে কেমন ডিজাইন, ল্যাঙ্গুয়েজ, আর্কিটেকচার নির্ধারণ করা, প্রোগ্রামার দের সহায়তায় ডেভেলপ করা, টেস্টার দের টেস্টিং হয়ে কাস্টমার বা আমাদের হাতে আসার পরও পরবর্তী সমস্যার জন্য প্রস্তুত থাকা এই সবই এই প্রক্রিয়ার অংশ। তাই SDLC অথবা Software Development Life Cycle এর ব্যপারে জানা আমাদের জন্য খুবই জরুরী, কারণ এতে করে আমরা একটু আমাদের কাজের উপযোগী ক্ষেত্র এর ব্যপারে জানতে পারবো।

তো আজকে আমরা জানবো যে SDLC অথবা Software Development Life Cycle প্রক্রিয়াতে কি কি ধাপ রয়েছে এবং একটি সফটওয়্যার তৈরীতে কোন কোন ধাপে কোন কাজগুলো সম্পন্ন হয়। ধাপগুলো হলোঃ

  • Requirement
  • Analysis
  • Design
  • Development
  • Testing 
  • Maintenance

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

Analysis: Requirement এর ধাপ পেরোনোর পর শুরু হয় Analysis যা কিনা SDLC অথবা Software Development Life Cycle এর সবচাইতে গুরুত্বপূর্ণ ধাপ। কারণ এই ধাপেই নির্ধারণ করা হয় যে সফটওয়্যার তৈরীর জন্য ডেভেলপমেন্ট, টেস্টিং টিম এর কেমন সময় লাগবে। যে Requirement ফাইনাল হয় তা পর্যবেক্ষন ও নিরীক্ষণ করা, ডেভেলপমেন্ট টিম এর জন্য ডায়াগ্রাম, ডিজাইন, ল্যাঙ্গুয়েজ, আর্কিটেকচার নির্ধারণ করা, আবার টেস্টিং টিম এর জন্য কোন টেস্টিং প্রক্রিয়া এবং এর সাথে সম্পর্কিত সকল সম্ভাব্য পজিটিভ ও নেগেটিভ ঘটনা সবকিছু আগে থেকে ধারণা ও তার জন্য কোন সমাধান থাকা উচিৎ তা আগে থেকেই নির্ধারণ করে রাখা হয়।

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

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

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

Maintenance: এই ধাপে মূলত কাজ হয় সফটওয়্যার মার্কেট এ আসার পর বা কাস্টমার এর কাছে যাবার পর। যদি এর পরে আর কোন নতুন ফিচার বা ফাংশন যোগ করা, অথবা নতুন কোনও ত্রুটি আসলে সেটা সমাধান করা এই ধরনের কাজগুলো হয়ে থাকে।

 

আজকে এই পর্যন্তই। আগামীতে আমরা জানবো STLC অথবা Software Testing Life Cycle এর ব্যপারে, যা আমরা যারা Software QA & Testing এর ব্যপারে আগ্রহী তাদের জন্য।

**** আমার সরাসরি কোর্স এ আগ্রহী হলে কোর্স এর ব্যপারে জানতে এখানে ক্লিক করুন